You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
5.9 MiB
1 lines
5.9 MiB
{"version":3,"sources":["/home/dslak/Desktop/vds_quiz/vds-app/node_modules/metro-runtime/src/polyfills/require.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native/polyfills/console.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native/polyfills/error-guard.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native/polyfills/Object.es8.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo/AppEntry.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/interopRequireDefault.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo/build/launch/registerRootComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo/build/Expo.fx.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo/build/environment/validate.fx.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-constants/build/Constants.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/defineProperty.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/toPropertyKey.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/typeof.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/toPrimitive.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/invariant/browser.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/warnOnce.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/iterableToArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/classCallCheck.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/createClass.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/RendererProxy.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/RendererImplementation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Renderer/shims/ReactFabric.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInterface.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/BatchedBridge/BatchedBridge.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Performance/Systrace.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/stringifySafe.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/vendor/core/ErrorUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/ExceptionsManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/inherits.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/setPrototypeOf.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/assertThisInitialized.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/getPrototypeOf.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/wrapNativeSuper.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/isNativeFunction.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/construct.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/Devtools/parseErrorStack.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/Devtools/parseHermesStack.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/stacktrace-parser/dist/stack-trace-parser.cjs.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/NativeExceptionsManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/TurboModule/TurboModuleRegistry.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/BatchedBridge/NativeModules.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/slicedToArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/defineLazyObjectProperty.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/EventEmitter/RCTEventEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/TextInput/TextInputState.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeComponent/NativeComponentRegistry.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/getNativeComponentAttributes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/processAspectRatio.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/processColor.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/normalizeColor.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native/normalize-color/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/processFontVariant.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/processTransform.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/differ/sizesDiffer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/resolveAssetSource.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/AssetSourceResolver.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/PixelRatio.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/Dimensions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/NativeDeviceInfo.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/AssetUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native/assets/path-support.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native/assets/registry.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeModules/specs/NativeSourceCode.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/processColorArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/differ/insetsDiffer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/differ/matricesDiffer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/differ/pointsDiffer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/UIManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/BridgelessUIManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeComponent/NativeComponentRegistryUnstable.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/PaperUIManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/NativeUIManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/UIManagerProperties.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/verifyComponentAttributeEquivalence.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeComponent/PlatformBaseViewConfig.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeComponent/ViewConfigIgnore.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeComponent/StaticViewConfigValidator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeComponent/ViewConfig.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react/cjs/react.production.min.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/codegenNativeCommands.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/differ/deepDiffer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/flattenStyle.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/ReactFiberErrorDialog.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/RawEventEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Events/CustomEvent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Events/EventPolyfill.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/InitializeCore.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpGlobals.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpPerformance.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpErrorHandling.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/polyfillPromise.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/PolyfillFunctions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Promise.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/promise/setimmediate/es6-extensions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/promise/setimmediate/core.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/promise/setimmediate/finally.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpRegeneratorRuntime.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/FeatureDetection.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/regenerator-runtime/runtime.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpTimers.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/Timers/JSTimers.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/Timers/NativeTiming.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/Timers/immediateShim.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/Timers/queueMicrotask.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpXHR.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Network/XMLHttpRequest.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/get.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/superPropBase.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Blob/BlobManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Blob/NativeBlobModule.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Blob/Blob.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Blob/BlobRegistry.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/GlobalPerformanceLogger.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/createPerformanceLogger.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/infoLog.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Network/convertRequestBody.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/binaryToBase64.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/base64-js/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Network/FormData.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/event-target-shim/dist/event-target-shim.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Network/fetch.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/whatwg-fetch/dist/fetch.umd.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/WebSocket/WebSocket.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/WebSocket/NativeWebSocketModule.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/WebSocket/WebSocketEvent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Blob/File.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Blob/FileReader.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Blob/NativeFileReaderModule.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Blob/URL.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/abort-controller/dist/abort-controller.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpAlert.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Alert/Alert.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpNavigator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpBatchedBridge.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/HeapCapture/HeapCapture.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/HeapCapture/NativeJSCHeapCapture.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Performance/SamplingProfiler.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Performance/NativeJSCSamplingProfiler.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/RCTLog.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/HMRClientProdShim.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/setUpSegmentFetcher.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/AppRegistry.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/BugReporting/BugReporting.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeModules/specs/NativeRedBox.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/BugReporting/NativeBugReporting.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/BugReporting/dumpReactTree.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/SceneTracker.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/DisplayMode.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/HeadlessJsTaskError.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/renderApplication.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/PerformanceLoggerContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/AppContainer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/View/View.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Text/TextAncestor.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/AcessibilityMapping.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/View/ViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react/jsx-runtime.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react/cjs/react-jsx-runtime.production.min.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/RootTag.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/getCachedComponentWithDebugName.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/scheduler/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/scheduler/cjs/scheduler.production.min.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Renderer/shims/ReactNative.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/codegenNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/requireNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Renderer/shims/createReactNativeComponentClass.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Button.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Text/Text.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Pressability/PressabilityDebug.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/Rect.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Pressability/usePressability.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Pressability/Pressability.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Sound/SoundManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Sound/NativeSoundManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/ReactNativeFeatureFlags.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Pressability/HoverState.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Pressability/PressabilityPerformanceEventEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Text/TextNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedColorPropType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedEdgeInsetsPropType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/prop-types/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/prop-types/factoryWithThrowingShims.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/prop-types/lib/ReactPropTypesSecret.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedImagePropType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedImageSourcePropType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedImageStylePropTypes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedLayoutPropTypes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedShadowPropTypesIOS.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedTransformPropTypes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedStyleSheetPropType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/deprecatedCreateStrictShapeTypeChecker.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedViewPropTypes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedViewAccessibility.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedViewStylePropTypes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedPointPropType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedTextInputPropTypes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedTextPropTypes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/deprecated-react-native-prop-types/DeprecatedTextStylePropTypes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Touchable/TouchableOpacity.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/Animated.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/AnimatedImplementation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/AnimatedEvent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/NativeAnimatedHelper.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/NativeAnimatedModule.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/NativeAnimatedTurboModule.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedValue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Interaction/InteractionManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Interaction/TaskQueue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedInterpolation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedWithChildren.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedNode.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedValueXY.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/animations/DecayAnimation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/animations/Animation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/animations/SpringAnimation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedColor.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/SpringConfig.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/animations/TimingAnimation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/Easing.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/bezier.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/createAnimatedComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/setAndForwardRef.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/createAnimatedComponentInjection.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedProps.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedStyle.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedTransform.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedAddition.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedDivision.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedModulo.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedMultiplication.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedSubtraction.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/nodes/AnimatedTracking.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/AnimatedMock.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/components/AnimatedFlatList.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/FlatList.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/VirtualizedList.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/RefreshControl/RefreshControl.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Interaction/FrameRateLogger.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Interaction/NativeFrameRateLogger.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/splitLayoutProps.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/dismissKeyboard.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Keyboard/Keyboard.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/LayoutAnimation/LayoutAnimation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Keyboard/NativeKeyboardObserver.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/processDecelerationRate.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewCommands.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/useMergeRefs.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Interaction/Batchinator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/clamp.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/CellRenderMask.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/ChildListCollection.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/FillRateHelper.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/StateSafePureComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/ViewabilityHelper.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/VirtualizedListCellRenderer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/VirtualizedListContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/VirtualizeUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/memoize-one/dist/memoize-one.cjs.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/components/AnimatedImage.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@babel/runtime/helpers/asyncToGenerator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/ImageAnalyticsTagContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/ImageInjection.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/ImageViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/TextInlineImageNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/ImageSourceUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/ImageUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/components/AnimatedScrollView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/useAnimatedProps.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/useRefEffect.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/components/AnimatedSectionList.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/SectionList.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Lists/VirtualizedSectionList.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/components/AnimatedText.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/components/AnimatedView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/ImageBackground.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/TextInput/InputAccessoryView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Keyboard/KeyboardAvoidingView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Modal/Modal.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Modal/ModalInjection.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Modal/NativeModalManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Modal/RCTModalHostViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/I18nManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ReactNative/NativeI18nManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Pressable/Pressable.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Pressable/useAndroidRippleForView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Slider/Slider.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Slider/SliderNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Switch/Switch.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Switch/AndroidSwitchNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Switch/SwitchNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/TextInput/TextInput.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/nullthrows/nullthrows.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Touchable/Touchable.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Touchable/PooledClass.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Touchable/Position.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Touchable/TouchableHighlight.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/ActionSheetIOS/NativeActionSheetManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/Appearance.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/DebugEnvironment.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/NativeAppearance.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/AppState/AppState.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/logError.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/AppState/NativeAppState.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Clipboard/Clipboard.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/Clipboard/NativeClipboard.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/DeviceInfo.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/DevSettings.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeModules/specs/NativeDevSettings.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Linking/Linking.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Linking/NativeIntentAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Linking/NativeLinkingManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/LogBox/LogBox.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Interaction/PanResponder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Interaction/TouchHistoryMath.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/PermissionsAndroid/NativePermissionsAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/PushNotificationIOS/PushNotificationIOS.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Share/Share.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Share/NativeShareModule.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Animated/useAnimatedValue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/useColorScheme.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/use-sync-external-store/shim/index.native.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.min.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/useWindowDimensions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/UTFSequence.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Vibration/Vibration.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Vibration/NativeVibration.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/YellowBox/YellowBoxDeprecated.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/EventEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/NativeModulesProxy.native.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/NativeViewManagerAdapter.native.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/Platform.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/environment/browser.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/SyntheticPlatformEmitter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/errors/CodedError.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/errors/UnavailabilityError.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/sweet/setUpErrorManager.fx.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/sweet/NativeErrorManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/deprecate.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/compare-versions/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/requireNativeModule.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/PermissionsInterface.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-modules-core/build/PermissionsHook.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-constants/build/Constants.types.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-constants/build/ExponentConstants.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo/build/environment/validatorState.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo/build/environment/logging.fx.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Core/Devtools/getDevServer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/Asset.fx.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/Asset.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/AssetRegistry.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/AssetSources.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/path-browserify/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/url-parse/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/requires-port/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/querystringify/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/AssetSourceResolver.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/PlatformUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/blueimp-md5/js/md5.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-file-system/build/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-file-system/build/FileSystem.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/uuid/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/uuid/v1.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/uuid/lib/rng-browser.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/uuid/lib/bytesToUuid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/uuid/v4.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-file-system/build/ExponentFileSystem.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-file-system/build/ExponentFileSystemShim.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-file-system/build/FileSystem.types.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/AssetUris.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/ImageAssets.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/LocalAssets.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/resolveAssetSource.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-asset/build/AssetHooks.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-font/build/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-font/build/Font.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-font/build/ExpoFontLoader.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-font/build/Font.types.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-font/build/FontLoader.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo-font/build/FontHooks.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo/build/errors/ExpoErrorManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/expo/build/launch/createRoot.native.js","/home/dslak/Desktop/vds_quiz/vds-app/App/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/init.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/eventReceiver.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/State.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/TouchEventType.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/handlersRegistry.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/utils.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/gestureStateManager.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/reanimatedWrapper.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/Animated.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/createAnimatedComponent.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/ReanimatedEventEmitter.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/ReanimatedModule.native.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/ReanimatedModuleCompat.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/PlatformChecker.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedEvent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedNode.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedValue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedSet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/val.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedBlock.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/InternalAnimatedValue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/interpolate.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/operators.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedOperator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedCond.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedFunction.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedCallFunc.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedParam.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedClock.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/evaluateOnce.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedCall.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedAlways.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/createEventObjectProxyPolyfill.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedProps.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedStyle.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedTransform.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash.isequal/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/WorkletEventHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/NativeReanimated/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/js-reanimated/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/js-reanimated/JSReanimated.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/js-reanimated/MapperRegistry.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/js-reanimated/Mapper.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/js-reanimated/MutableValue.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/NativeReanimated/NativeReanimated.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/platform-specific/checkVersion.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/setAndForwardRef.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/LayoutAnimationRepository.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/core.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/styleAnimation.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/util.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/Colors.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/timing.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/Easing.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/Easing.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/base.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedStartClock.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedStopClock.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedClockTest.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedDebug.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedConcat.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedBezier.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/Bezier.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/UpdateProps.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/ConfigHelper.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/platform-specific/RNRenderer.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/spring.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/decay.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/delay.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/repeat.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/animation/sequence.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/component/Text.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/component/View.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/component/ScrollView.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/component/Image.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/component/FlatList.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/core/AnimatedCode.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/useCode.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/animations/decay.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/animations/timing.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/animations/spring.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/animations/Animation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/Transitioning.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/animations/SpringUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/useValue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/animations/backwardCompatibleAnimWrapper.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/acc.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/color.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/diff.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/diffClamp.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/interpolateColors.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated1/derived/onChange.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/js-reanimated/global.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/Hooks.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useAnimatedStyle.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useSharedValue.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/utils.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/ViewDescriptorsSet.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useAnimatedGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useAnimatedReaction.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useAnimatedRef.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/NativeMethods.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useAnimatedScrollHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useDerivedValue.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useAnimatedSensor.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useFrameCallback.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/frameCallback/FrameCallbackRegistryJS.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useAnimatedKeyboard.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/commonTypes.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/hook/useScrollViewOffset.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/interpolation.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/interpolateColor.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/PropAdapters.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/animationBuilder/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Stretch.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Fade.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultTransitions/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-reanimated/src/reanimated2/utils.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/RNGestureHandlerModule.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/Directions.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/gestureHandlerRootHOC.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-is/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-is/cjs/react-is.production.min.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/TapGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/createHandler.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isEqual.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseIsEqual.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseIsEqualDeep.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_Stack.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_ListCache.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_listCacheClear.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_listCacheDelete.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_assocIndexOf.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/eq.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_listCacheGet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_listCacheHas.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_listCacheSet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_stackClear.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_stackDelete.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_stackGet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_stackHas.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_stackSet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_Map.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_getNative.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseIsNative.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isFunction.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseGetTag.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_Symbol.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_root.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_freeGlobal.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_getRawTag.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_objectToString.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isObject.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_isMasked.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_coreJsData.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_toSource.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_getValue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_MapCache.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_mapCacheClear.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_Hash.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_hashClear.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_nativeCreate.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_hashDelete.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_hashGet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_hashHas.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_hashSet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_mapCacheDelete.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_getMapData.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_isKeyable.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_mapCacheGet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_mapCacheHas.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_mapCacheSet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_equalArrays.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_SetCache.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_setCacheAdd.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_setCacheHas.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_arraySome.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_cacheHas.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_equalByTag.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_Uint8Array.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_mapToArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_setToArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_equalObjects.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_getAllKeys.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseGetAllKeys.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_arrayPush.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_getSymbols.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_arrayFilter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/stubArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/keys.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_arrayLikeKeys.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseTimes.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isArguments.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseIsArguments.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isObjectLike.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isBuffer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/stubFalse.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_isIndex.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isTypedArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseIsTypedArray.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isLength.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseUnary.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_nodeUtil.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_baseKeys.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_isPrototype.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_nativeKeys.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_overArg.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/isArrayLike.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_getTag.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_DataView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_Promise.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_Set.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/lodash/_WeakMap.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestureHandlerCommon.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/ActionType.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/PressabilityDebugView.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/ForceTouchGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/PlatformConstants.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/LongPressGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/PanGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/PinchGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/RotationGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/FlingGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/createNativeWrapper.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/NativeViewGestureHandler.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/GestureDetector.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/gesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/getShadowNodeFromRef.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/RNRenderer.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/EnableExperimentalWebImplementation.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/gestureObjects.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/flingGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/forceTouchGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/gestureComposition.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/longPressGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/panGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/pinchGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/rotationGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/tapGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/nativeGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/handlers/gestures/manualGesture.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/GestureButtons.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/GestureHandlerButton.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/fabric/RNGestureHandlerButtonNativeComponent.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/touchables/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/touchables/TouchableWithoutFeedback.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/touchables/GenericTouchable.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/touchables/TouchableOpacity.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/touchables/TouchableHighlight.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/GestureComponents.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/Swipeable.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/DrawerLayout.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation/src/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/StateUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/utils/invariant.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/getNavigation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/getNavigationActionCreators.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/NavigationActions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/getChildNavigation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/getChildRouter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/getChildrenNavigationCache.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/getEventManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/navigators/createNavigator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/views/ThemeContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/views/NavigationFocusEvents.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/views/NavigationContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/navigators/createSwitchNavigator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/SwitchRouter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/getScreenForRouteName.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/createConfigGetter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/validateScreenOptions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/SwitchActions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/StackActions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/validateRouteConfigMap.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/pathUtils.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/path-to-regexp/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/path-to-regexp/node_modules/isarray/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/query-string/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/strict-uri-encode/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/decode-uri-component/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/split-on-first/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/filter-obj/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/views/SwitchView/SwitchView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/views/SceneView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/ThemeColors.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/useTheme.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/StackRouter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/KeyGenerator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/routers/TabRouter.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/utils/withDefaultValue.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/utils/getActiveChildNavigationOptions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/views/NavigationEvents.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/views/withNavigation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/core/lib/module/views/withNavigationFocus.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/createAppContainer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/utils/invariant.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/utils/docsUrl.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/createKeyboardAwareNavigator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/createNavigationAwareScrollable.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/withOrientation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/ResourceSavingSceneView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/node_modules/react-native-safe-area-view/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/node_modules/react-native-safe-area-view/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/node_modules/react-native-safe-area-view/withOrientation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/Scrollables.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/Themed.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-navigation/native/lib/module/throwIfWrongVersion.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation/src/deprecations.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/TransitionConfigs/CardStyleInterpolators.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-iphone-x-helper/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/conditional.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/TransitionConfigs/HeaderStyleInterpolators.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/TransitionConfigs/TransitionSpecs.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/TransitionConfigs/TransitionPresets.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Stack/StackView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-context/src/index.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-context/src/SafeAreaContext.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-context/src/NativeSafeAreaProvider.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-context/src/specs/NativeSafeAreaProvider.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-context/src/SafeAreaView.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-context/src/specs/NativeSafeAreaView.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-context/src/InitialWindow.native.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-context/src/specs/NativeSafeAreaContext.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/GestureHandlerNative.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/GestureHandlerRefContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Stack/CardStack.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Screens.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-screens/src/index.native.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-freeze/src/index.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-screens/src/TransitionProgressContext.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-screens/src/useTransitionProgress.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-screens/src/utils.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Header/HeaderSegment.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Header/HeaderBackButton.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/MaskedViewNative.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/utils/useTheme.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/assets/back-icon.png","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/assets/back-icon-mask.png","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Header/HeaderBackground.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/HeaderShownContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/memoize.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Stack/CardContainer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Stack/Card.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/color/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/color-string/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/color-name/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/simple-swizzle/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/is-arrayish/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/color-convert/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/color-convert/conversions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/color-convert/node_modules/color-name/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/color-convert/route.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Stack/CardSheet.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/CardAnimationContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/getDistanceForDirection.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/getInvertedMultiplier.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/HeaderHeightContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/PreviousSceneContext.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/KeyboardManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Header/HeaderContainer.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Header/Header.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/Header/HeaderTitle.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/debounce.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/SafeAreaProviderCompat.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/useCardAnimation.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/useHeaderHeight.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/utils/useGestureHandlerRef.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/navigators/createStackNavigator.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/views/StackView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/utils/validateDeprecatedOptions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/utils/validateDeprecatedConfig.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/Splash.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-community/async-storage/src/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-community/async-storage/src/AsyncStorage.native.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-community/async-storage/src/RCTAsyncStorage.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-community/async-storage/src/hooks.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-view/src/index.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-safe-area-view/src/shallowEquals.ts","/home/dslak/Desktop/vds_quiz/vds-app/App/components/Button.js","/home/dslak/Desktop/vds_quiz/vds-app/App/components/Variables.js","/home/dslak/Desktop/vds_quiz/vds-app/App/assets/buttonBg.png","/home/dslak/Desktop/vds_quiz/vds-app/App/components/Banner.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/version.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/MobileAds.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/internal/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/internal/Module.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/internal/registry/nativeModule.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/internal/NativeError.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/internal/GoogleMobileAdsNativeEventEmitter.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/internal/SharedEventEmitter.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/common/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/common/Base64.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/common/promise.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/common/validate.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/common/id.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/common/path.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/common/ReferenceBase.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/validateAdRequestConfiguration.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/MaxAdContentRating.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/AdsConsentDebugGeography.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/AdsConsentPurposes.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/AdsConsentSpecialFeatures.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/AdsConsentStatus.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/TestIds.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/AdEventType.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/BannerAdSize.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/GAMAdEventType.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/RewardedAdEventType.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/AdsConsent.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/Base64Url.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/errors/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/errors/DecodingError.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/errors/EncodingError.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/errors/GVLError.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/errors/TCModelError.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/BitLength.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/BinarySearchTree.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/Cloneable.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/ConsentLanguages.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/Fields.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/IntMap.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/KeyMap.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/PurposeRestriction.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/RestrictionType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/PurposeRestrictionVector.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/DeviceDisclosureStorageAccessType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/DeviceDisclosure.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/Segment.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/SegmentIDs.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/Vector.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/ByPurposeVendorMap.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/Declarations.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/Feature.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/GVLMapItem.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/IDSetMap.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/Purpose.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/Stack.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/Vendor.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/model/gvl/VendorList.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/EncodingOptions.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/SegmentEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/BooleanEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/DateEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/IntEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/FieldEncoderMap.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/FixedVectorEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/LangEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/PurposeRestrictionVectorEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/VendorVectorEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/field/VectorEncodingType.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/sequence/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/sequence/FieldSequence.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/sequence/SegmentSequence.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/sequence/SequenceVersionMap.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/encoder/SemanticPreEncoder.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/GVL.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/Json.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/TCModel.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@iabtcf/core/lib/cjs/TCString.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/AppOpenAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/validateAdRequestOptions.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/MobileAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/validateAdShowOptions.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/InterstitialAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/RewardedAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/RewardedInterstitialAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/BannerAd.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/BaseAd.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/GAMBannerAd.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/ads/GAMInterstitialAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/hooks/useAppOpenAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/use-deep-compare-effect/dist/use-deep-compare-effect.cjs.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/dequal/dist/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/hooks/useFullScreenAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/hooks/useInterstitialAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/hooks/useRewardedAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/hooks/useRewardedInterstitialAd.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/types/index.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-google-mobile-ads/src/types/AdapterStatus.ts","/home/dslak/Desktop/vds_quiz/vds-app/App/components/ExamQuestions.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/aerodynamics.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/firstAid.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/flightSafety.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/instruments.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/legislation.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/materials.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/meteorology.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/physiopathology.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/pilotingTechniques.js","/home/dslak/Desktop/vds_quiz/vds-app/App/components/TrueFalseQuestions.js","/home/dslak/Desktop/vds_quiz/vds-app/App/assets/header.png","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/QuizIndex.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/test.js","/home/dslak/Desktop/vds_quiz/vds-app/App/components/RowItem.js","/home/dslak/Desktop/vds_quiz/vds-app/App/assets/bg.jpg","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/Quiz.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/index.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/Picker.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/UnimplementedView.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/PickerWindows.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/PickerMacOS.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/TrueFalse.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/Exam.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/Results.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/ResultsTrueFalse.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/Recap.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/RecapTrueFalse.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/Info.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/Setup.js","/home/dslak/Desktop/vds_quiz/vds-app/App/screens/Dictionary.js","/home/dslak/Desktop/vds_quiz/vds-app/App/data/dictionary.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/Platform.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/NativePlatformConstantsAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/PlatformColorValueTypes.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeComponent/BaseViewConfig.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Network/RCTNetworking.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Network/NativeNetworkingAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Alert/RCTAlertManager.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Utilities/BackHandler.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/NativeModules/specs/NativeDeviceEventManager.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/Image.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Image/NativeImageLoaderAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/DatePicker/DatePickerIOS.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Settings/Settings.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ToastAndroid/ToastAndroid.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/Components/ToastAndroid/NativeToastAndroid.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native/Libraries/StyleSheet/PlatformColorValueTypesIOS.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/GestureHandlerRootView.android.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/fabric/RNGestureHandlerRootViewNativeComponent.ts","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-native-gesture-handler/src/components/touchables/TouchableNativeFeedback.android.tsx","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/GestureHandler.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/MaskedView.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/react-navigation-stack/lib/module/vendor/views/TouchableItem.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/PickerAndroid.android.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/AndroidDialogPickerNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/AndroidDropdownPickerNativeComponent.js","/home/dslak/Desktop/vds_quiz/vds-app/node_modules/@react-native-picker/picker/js/PickerIOS.js"],"names":["window","global","globalThis","__METRO_GLOBAL_PREFIX__","Map","Object","modules","EMPTY","module","guardedLoadModule","metroRequire","exports","hasOwnProperty","inGuard","loadModuleImplementation","ID_MASK_SHIFT","moduleId","LOCAL_ID_MASK","value","moduleDefinersBySegmentID","definingSegmentByModuleID","segmentId","unpackModuleId","unknownModuleError","metroImportDefault","metroImportAll","Error","console","LOG_LEVELS","Array","level","INSPECTOR_LEVELS","INSPECTOR_FRAMES_TO_SKIP","groupStack","groupFormat","inspect","element","OBJECT_COLUMN_NAME","rows","columnWidths","stringRows","space","repeat","cell","Math","msg","GROUP_OPEN","GROUP_PAD","GROUP_CLOSE","stylizeNoColor","formatValue","hash","formatPrimitive","arrayToHash","isError","isFunction","isRegExp","isDate","isArray","RegExp","Date","formatError","formatArray","reduceToSingleString","braces","formatProperty","ctx","recurseTimes","visibleKeys","array","isUndefined","isString","isNumber","isBoolean","isNull","JSON","String","output","name","base","numLinesEst","prev","arg","isObject","objectToString","e","log","_globalHandler","_inGuard","ErrorUtils","fun","context","guardName","TypeError","registerRootComponent","App","obj","_getRequireWildcardCache","hasPropertyDescriptor","WeakMap","cacheNodeInterop","nodeInterop","cacheBabelInterop","Platform","document","createRoot","React","AppRegistry","qualifiedComponent","StyleSheet","NativeModulesProxy","Constants","ExecutionEnvironment","createErrorHandler","findNodeHandle","shouldThrowAnErrorOutsideOfExpo","ExponentConstants","NativeModules","appOwnership","nativeConstants","enumerableOnly","object","ownKeys","i","source","_defineProperty2","target","isManifest","arguments","rawManifest","CodedError","warnedAboutDeviceYearClass","getManifest","isAppManifest","warnedAboutIosModel","originalModel","toPropertyKey","key","toPrimitive","_typeof","Symbol","hint","Number","objectWithoutPropertiesLoose","DeviceEventEmitter","_exportNames","_requireNativeModule","_TypedArrays","_PermissionsInterface","_PermissionsHook","require","_dependencyMap","warnOnce","args","argIndex","warnedKeys","Promise","NativeAccessibilityManagerIOS","NativeAccessibilityInfoAndroid","EventNames","deviceEventName","RCTDeviceEventEmitter","legacySendAccessibilityEvent","sendAccessibilityEvent","originalTimeout","EventEmitter","Set","_createClass2","_classCallCheck2","allocate","registrations","registration","_len","_key","_toConsumableArray2","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arrayLikeToArray","instance","descriptor","_defineProperties","_RendererImplementation","Boolean","BatchedBridge","_createClass","_classCallCheck","MessageQueue","_this","method","_this2","cbID","queue","_this3","getValue","onFail","onSucc","now","Systrace","DebuggerInternal","stringifySafe","invariant","isSuccess","_toConsumableArray","info","TRACE_TAG_REACT_APPS","isEnabled","_asyncCookie","_limits$maxDepth","_limits$maxStringLimi","_limits$maxArrayLimit","_limits$maxObjectKeys","stack","maxDepth","maxObjectKeysLimit","keys","maxArrayLimit","maxStringLimit","replacer","_defineProperty","_isNativeReflectConstruct","_getPrototypeOf","Derived","hasNativeReflectConstruct","Reflect","_possibleConstructorReturn","userExceptionDecorator","inUserExceptionDecorator","exceptionID","namePrefix","message","preprocessException","_objectSpread","decoratedExtraDataKey","SyntheticError","reportException","inExceptionHandler","reactConsoleErrorHandler","_inherits","_createSuper","_super","superClass","setPrototypeOf","_setPrototypeOf","assertThisInitialized","ReferenceError","o","_wrapNativeSuper","isNativeFunction","_cache","construct","Class","getPrototypeOf","Function","_construct","isNativeReflectConstruct","location","convertHermesStack","parseHermesStack","frame","RE_FRAME","RE_SKIPPED","asFrame","parseLine","lastMessageLine","parseChrome","parseWinjs","parseGecko","parseNode","parseJSC","chromeRe","parts","chromeEvalRe","UNKNOWN_FUNCTION","isNative","winjsRe","geckoRe","geckoEvalRe","javaScriptCoreRe","nodeRe","NativeModule","ExceptionsManager","turboModuleProxy","requireModule","bridgeConfig","_slicedToArray","methods","promiseMethods","arrayContains","syncMethods","isPromise","isSync","genMethod","moduleID","constants","genModule","methodID","resolve","reject","updateErrorWithErrorData","enqueueingFrameError","hasErrorCallback","hasSuccessCallback","type","errorData","defineLazyObjectProperty","loadModule","arrayWithHoles","iterableToArrayLimit","nonIterableRest","valueSet","setValue","get","enumerable","writable","eventEmitter","customBubblingEventTypes","customDirectEventTypes","viewConfigCallbacks","callback","viewConfigs","processEventTypes","currentlyFocusedInputRef","focusInput","AndroidTextInputCommands","blurInput","inputs","codegenNativeCommands","__INTERNAL_VIEW_CONFIG","getRuntimeConfig","ReactNativeViewConfigRegistry","native","createViewConfig","viewConfigProvider","getNativeComponentAttributes","verifyComponentAttributeEquivalence","StaticViewConfigValidator","hasNativeViewConfig","UIManager","viewConfig","getDifferForType","getProcessorForType","diff","process","ReactNativeStyleAttributes","attachDefaultEventTypes","merge","insetsDiffer","pointsDiffer","sizesDiffer","matricesDiffer","resolveAssetSource","processColorArray","processColor","processAspectRatio","processTransform","processFontVariant","normalizeColor","normalizedColor","_normalizeColor","getMatchers","normalizeKeyword","hwbToRgb","parse360","parsePercentage","hslToRgb","parse1","parseInt","match","parse255","color","q","p","l","hue2rgb","h","r","g","b","w","red","green","blue","gray","cachedMatchers","call","commaSeparatedCall","callWithSlashSeparator","parseFloat","int","num","_getKeyAndValueFromCSSTransform","isNaN","one","dummySize","two","defaultedOne","_sourceCodeScriptURL","_serverURL","getSourceCodeScriptURL","sourceCodeScriptURL","scriptURL","_scriptURL","_coerceLocalScriptURL","AssetRegistry","AssetSourceResolver","getDevServerURL","getScriptURL","_customSourceTransformer","pickScale","PixelRatio","scale","getBasePath","assetDir","getAndroidResourceFolderName","getAndroidResourceIdentifier","drawableFolder","getScaledAssetPath","path","getAssetPathInDrawableFolder","Dimensions","layoutSize","NativeDeviceInfo","dimensions","windowPhysicalPixels","screenPhysicalPixels","dimensionsInitialized","scales","cacheBreaker","androidScaleSuffix","drawableFileTypes","getAndroidAssetSuffix","basePath","assets","assetId","colors","processColorElement","TRANSPARENT","dummyInsets","dummyPoint","errorMessageForMethod","unstable_hasComponent","componentNameToExists","NativeUIManager","getConstants","UIManagerJS","isNativeUIManagerConstantsSet","NativeUIManagerConstants","viewManagerConfigs","triedLoadingConfig","lazifyViewManagerConfig","viewManager","commands","index","getViewManagerConfig","viewManagerName","UIManagerProperties","lefthandObjectDiff","IGNORED_KEYS","PlatformBaseViewConfig","propName","BaseViewConfig","WeakSet","ignoredViewConfigProps","accumulateDifferences","ifObject","isIgnored","composeIndexers","maybeA","z","D","B","undefined","L","J","m","K","a","escape","n","d","I","A","Q","R","O","N","P","c","S","C","u","t","M","v","y","T","x","V","U","commandObj","dispatchCommand","command","RCTTextInputViewConfig","ConditionallyIgnoredEventHandlers","deepDiffer","options","logListeners","flattenStyle","errorValue","handleException","EventPolyfill","_getPrototypeOf2","_possibleConstructorReturn2","_inherits2","CustomEvent","eventInitDict","namesToPlugins","pluginName$jscomp$inline_225","isOrderingDirty$jscomp$inline_224","ResponderEventPlugin","nativeFabricUIManager","ReactNativePrivateInterface","registerEventHandler","setTimeout","clearTimeout","emptyContextObject","NO_CONTEXT","readContext","mountEffect","mountState","updateReducer","rerenderReducer","Infinity","devToolsConfig$jscomp$inline_938","__REACT_DEVTOOLS_GLOBAL_HOOK__","invokeGuardedCallbackImpl","reporter","invokeGuardedCallback","hasError","caughtError","hasRethrowError","event","getNodeFromInstance","invokeGuardedCallbackAndCatchFirstError","isArrayImpl","dispatchListener","dispatchConfig","functionThatReturnsTrue","functionThatReturnsFalse","createOrGetPooledEvent","releasePooledEvent","touch","getTouchIdentifier","touchBank","touchRecord","timestampForTouch","touchHistory","arr","responderInst","inst","getParent","getFiberCurrentPropsFromNode","getListener","accumulateInto","listener","targetInst","traverseTwoPhase","accumulateDirectionalDispatches","eventPluginOrder","plugins","pluginName","eventNameDispatchConfigs","publishRegistrationName","phasedRegistrationNames","eventName$jscomp$0","registrationNameModules","registrationName","requestedPhaseIsCapture","stateNode","mangledImperativeRegistrationName","listeners","listenerObj","getListeners","accumulateListenersAndInstances","traverseTwoPhase$1","accumulateDirectionalDispatches$1","MAYBE_ITERATOR_SYMBOL","REACT_FRAGMENT_TYPE","REACT_PORTAL_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_CONTEXT_TYPE","REACT_PROVIDER_TYPE","REACT_FORWARD_REF_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","getComponentNameFromType","innerType","fiber","node","getNearestMountedFiber","alternate","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiberImpl","deepDifferOptions","removedKeyCount","removedKeys","restoreDeletedValuesInNestedArray","nextProp","prevProp","clearNestedProperty","addNestedProperty","diffProperties","diffNestedProperty","emptyObject","defaultDiffer","updatePayload","isInsideEventHandler","batchedUpdatesImpl","dispatchListeners","executeDispatch","batchedUpdates","topLevelType","nativeEvent","eventTarget","possiblePlugin","eventQueue","forEachAccumulated","executeDispatchesAndReleaseTopLevel","rethrowError","injectedHook","rendererID","root","LN2","lanes","pendingLanes","getHighestPriorityLanes","nonIdlePendingLanes","wipLanes","nextLanes","pingedLanes","clz32","currentTime","nextTransitionLane","lane","nextReactTag","createNode","cloneNodeWithNewProps","fn","describeComponentFrame","valueStack","pop","didPerformWorkStackCursor","contextStackCursor","push","contextKey","getComponentNameFromFiber","assign","processChildContext","didChange","previousContext","isFlushingSyncQueue","syncQueue","currentUpdatePriority","scheduleCallback","ImmediatePriority","flushSyncCallbacks","treeForkProvider","forkStack","forkStackIndex","treeContextProvider","idStack","idStackIndex","objectIs","describeFunctionComponentFrame","valueCursor","parent","workInProgress","lastFullyObservedContext","lastContextDependency","currentlyRenderingFiber","concurrentQueues","pushConcurrentUpdateQueue","markUpdateLaneFromFiberToRoot","executionContext","markRootEntangled","pendingQueue","renderLanes","workInProgressRootSkippedLanes","ctor","shallowEqual","isContextProvider","getMaskedContext","classComponentUpdater","isLegacyContextConsumer","emptyRefsObject","initializeUpdateQueue","applyDerivedStateFromProps","processUpdateQueue","resolvedInst","refs","stringRef","shouldTrackSideEffects","deleteChild","createWorkInProgress","newIndex","useFiber","createFiberFromText","resolveLazy","createFiberFromTypeAndProps","coerceRef","updateFragment","portal","createFiberFromPortal","createFiberFromFragment","REACT_ELEMENT_TYPE","getIteratorFn","throwOnInvalidObjectType","createChild","updateSlot","newChild","updatePortal","updateElement","updateTextNode","existingChildren","updateFromMap","placeChild","oldFiber","mapRemainingChildren","deleteRemainingChildren","returnFiber","placeSingleChild","reconcileChildrenIterator","reconcileChildrenArray","reconcileChildFibers","rootInstanceStackCursor","contextFiberStackCursor","contextStackCursor$1","requiredContext","shim$1","workInProgressSources","ReactCurrentDispatcher$1","HooksDispatcherOnUpdate","HooksDispatcherOnMount","didScheduleRenderPhaseUpdateDuringThisPass","HooksDispatcherOnRerender","ContextOnlyDispatcher","currentHook","workInProgressHook","currentlyRenderingFiber$1","updateWorkInProgressHook","update","snapshotChanged","updateEffect","subscribeToStore","pushEffect","updateStoreInstance","workInProgressRoot","pushStoreConsistencyCheck","checkIfSnapshotChanged","forceStoreRerender","scheduleUpdateOnFiber","mountWorkInProgressHook","basicStateReducer","dispatchSetState","areHookInputsEqual","mountEffectImpl","updateEffectImpl","ref","imperativeHandleEffect","claimNextTransitionLane","hook","ReactCurrentBatchConfig$1","requestUpdateLane","isRenderPhaseUpdate","enqueueConcurrentHookUpdate","requestEventTime","entangleTransitionUpdate","enqueueRenderPhaseUpdate","describeFiber","createUpdate","hasUncaughtError","error","logCapturedError","errorInfo","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","PossiblyWeakMap","threadIDs","pingSuspendedRoot","mountChildFibers","prepareToReadContext","renderWithHooks","didReceiveUpdate","bailoutOnAlreadyFinishedWork","reconcileChildren","current","shouldConstruct","updateSimpleMemoComponent","updateFunctionComponent","prevState","subtreeRenderLanesCursor","subtreeRenderLanes","pushContextProvider","cloneUpdateQueue","resolveDefaultProps","oldProps","oldState","callComponentWillReceiveProps","hasForceUpdate","checkShouldComponentUpdate","getDerivedStateFromProps","hasNewLifecycles","oldContext","resetSuspendedCurrentOnMountInLegacyMode","constructClassInstance","mountClassInstance","finishClassComponent","markRef","hasContext","invalidateContextProvider","ReactCurrentOwner$1","didCaptureError","pushTopLevelContextObject","pushHostContainer","suspenseStackCursor","suspenseContext","didSuspend","mountSuspenseOffscreenState","SUSPENDED_MARKER","updateDehydratedSuspenseComponent","showFallback","mountSuspensePrimaryChildren","nextProps","createFiberFromOffscreen","hydrationErrors","renderDidSuspendDelayIfPossible","createCapturedValue","retrySuspenseComponentWithoutHydrating","scheduleContextWorkOnParentPath","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","findFirstSuspended","updateOffscreenComponent","updateSuspenseListComponent","updateSuspenseComponent","pushHostContext","pushHostRootContext","completedWork","appendChildNodeToSet","appendAllChildrenToContainer","needsVisibilityToggle","cloneHiddenInstance","hasRenderedATailFallback","child$63","popTreeContext","popRenderLanes","bubbleProperties","workInProgressRootRenderTargetTime","cutOffTailIfNeeded","workInProgressRootExitStatus","newProps","popContext","popProvider","popHostContainer","updateHostContainer","queueRecoverableErrors","createTextInstance","updateHostText$1","popHostContext","getViewConfigForType","ReactFabricHostComponent","appendAllChildren","updateHostComponent$1","resetWorkInProgressVersions","captureCommitPhaseError","nextEffect","shouldFireAfterActiveInstanceBlur","safelyCallDestroy","effect","detachFiberAfterEffects","commitDeletionEffectsOnFiber","recursivelyTraverseDeletionEffects","safelyDetachRef","_effect","createChildNodeSet","PossiblyWeakSet","resolveRetryWakeable","finishedWork","retryCache","parentFiber","commitMutationEffectsOnFiber","recursivelyTraverseMutationEffects","commitReconciliationEffects","flags","attachSuspenseRetryListeners","commitHookEffectListUnmount","commitHookEffectListMount","firstChild","commitUpdateQueue","currentEventTime","workInProgressRootRenderLanes","ReactCurrentBatchConfig","fabricGetCurrentEventPriority","FabricDiscretePriority","currentEventTransitionLane","nestedUpdateCount","markRootUpdated","workInProgressRootInterleavedUpdatedLanes","markRootSuspended$1","ensureRootIsScheduled","includesLegacySyncCallbacks","computeExpirationTime","expirationTime","getNextLanes","suspendedLanes","cancelCallback","lanesToEventPriority","NormalPriority","IdlePriority","UserBlockingPriority","scheduleCallback$1","performConcurrentWorkOnRoot","performSyncWorkOnRoot","flushPassiveEffects","pushDispatcher","prepareFreshStack","workLoopConcurrent","resetContextDependencies","ReactCurrentDispatcher$2","handleError","renderRootSync","getLanesToRetrySynchronouslyOnError","recoverFromConcurrentError","isRenderConsistentWithExternalStores","workInProgressRootFatalError","commitRoot","workInProgressRootRecoverableErrors","workInProgressTransitions","index$4","ceil","scheduleTimeout","globalMostRecentFallbackTime","prevExecutionContext","workInProgressRootConcurrentErrors","workInProgressRootPingedLanes","cancelTimeout","didScheduleRenderPhaseUpdate","ReactCurrentOwner$2","sourceFiber$jscomp$0","currentSource","thrownValue","createCapturedValueAtFiber","createClassErrorUpdate","enqueueCapturedUpdate","createRootErrorUpdate","attachPingListener","enqueueUpdate","suspenseBoundary","completeUnitOfWork","workLoopSync","performUnitOfWork","shouldYield","beginWork$1","unwindWork","completeWork","ReactCurrentBatchConfig$2","commitRootImpl","rootWithPendingPassiveEffects","transitions","markRootFinished","rootDoesHavePassiveEffects","commitBeforeMutationEffects","commitLayoutEffects","requestPaint","onCommitRoot","pendingPassiveEffectsLanes","remainingLanes","rootWithNestedUpdates","firstUncaughtError","child","deletions","captureCommitPhaseErrorOnRoot","boundaryFiber","nextRetryLane","retryTimedOutBoundary","FiberNode","createFiber","REACT_OFFSCREEN_TYPE","mode","createLaneMap","findCurrentHostFiber","entangleTransitions","findHostInstance","componentOrHandle","addEventPoolingTo","Super","instrumentationCallback","isMoveish","isStartish","recordTouchEnd","recordTouchStart","recordTouchMove","trackedTouchCount","ResponderTouchHistoryStore","eventTypes","depthA","tempA","ResponderSyntheticEvent","JSCompiler_temp","accumulateTwoPhaseDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","shouldSetEventType","accumulateDirectDispatchesSingle","executeDirectDispatch","accumulate","changeResponder","getInstanceFromNode","SyntheticEvent","bubbleDispatchConfig","accumulateDirectDispatchesSingle$1","accumulateTwoPhaseDispatchesSingle$1","from","fromOrTo","blockNativeResponder","to","fabricMeasure","mountSafeCallback_NOT_REALLY_SAFE","fabricMeasureInWindow","relativeToNativeNode","fabricMeasureLayout","optionsObj","eventListeners","capture","dispatchReducerAction","startTransition","globalClientIdCounter","updateDeferredValueImpl","appendChildNode","hadNoMutationsEffects","completeRoot","cloneNodeWithNewChildren","cloneNodeWithNewChildrenAndProps","cloneNode","oldText","attemptEarlyBailoutIfNoScheduledUpdate","updateMemoComponent","updateForwardRef","updateClassComponent","resolveLazyComponentTag","createPortal","roots","concurrentRoot","FiberRootNode","onRecoverableError","updateContainer","containerTag","GlobalPerformanceLogger","_ref$configurable","polyfillObjectProperty","item","onSettledFulfill","onSettledReject","AggregateError","valuePromise","EMPTYSTRING","ZERO","FALSE","TRUE","UNDEFINED","NULL","ex","res","val","remaining","mapAllSettled","values","getAggregateError","hasResolved","rejectionReasons","promises","resolveOnce","rejectionCheck","IS_ERROR","noop","doResolve","handle","self","Handler","onFulfilled","onRejected","handleResolved","setImmediate","deferred","tryCallOne","LAST_ERROR","getThen","newValue","finale","tryCallTwo","done","promise","safeThen","f","err","con","$Symbol","define","iteratorSymbol","getProto","hasOwn","Generator","defineProperty","Gp","Context","outerFn","tryLocsList","makeInvokeMethod","prototype","tryCatch","generator","PromiseImpl","invoke","result","previousPromise","GenStateSuspendedStart","state","GenStateExecuting","GenStateCompleted","maybeInvokeDelegate","innerFn","GenStateSuspendedYield","ContinueSentinel","doneResult","entry","pushTryEntry","iterable","next","GeneratorFunction","GeneratorFunctionPrototype","toStringTagSymbol","AsyncIterator","wrap","iter","resetTryEntry","record","exception","finallyEntry","_global$HermesInterna","_global$HermesInterna2","hasNativePromise","polyfillGlobal","NativeTiming","JSTimers","timerIDs","GUID","_getFreeIndex","callbacks","types","_clearIndex","errors","FRAME_DURATION","frameTime","reactNativeMicrotasks","_callTimer","deleteTimer","_allocateCallback","createTimer","duration","func","_len2","_key2","_len3","_key3","requestIdleCallbacks","setSendIdleEvents","timeout","id","requestIdleCallbackTimeouts","_freeCallback","timersToCall","_callReactNativeMicrotasksPass","hasEmittedTimeDriftWarning","GUIID","clearedImmediates","resolvedPromise","XMLHttpRequestEventTarget","XMLHttpRequest","_super2","SUPPORTED_RESPONSE_TYPES","responseType","BlobManager","base64","responseURL","responseHeaders","total","sortedHeaders","header","RCTNetworking","headers","_get2","_get","superPropBase","NativeBlobModule","uuidv4","ArrayBuffer","part","Blob","acc","encodeURI","BlobRegistry","createBlobCollector","end","registry","createPerformanceLogger","PerformanceLogger","startTime","endTime","getCurrentTimestamp","_cookies","timespan","body","FormData","binaryToBase64","data","Uint8Array","lookup","revLookup","len","validLen","getLens","Arr","_byteLength","placeHoldersLen","tmp","tripletToBase64","uint8","encodeChunk","Event","wrappers","EventTarget","defineEventAttribute","privateData","retv","defineRedirectDescriptor","pd","defineCallDescriptor","isFunc","BaseEvent","defineWrapper","getWrapper","listenersMap","eventName","ATTRIBUTE","defineEventAttributeDescriptor","defineCustomEventTarget","setCancelFlag","optionsIsObj","BUBBLE","CAPTURE","wrapEvent","setPassiveListener","isStopped","setEventPhase","setCurrentTarget","fetch","Headers","Request","Response","support","DataView","iterator","items","reader","FileReader","fileReaderReady","URLSearchParams","isDataView","isArrayBufferView","bufferClone","consumed","readBlobAsArrayBuffer","readArrayBufferAsText","readBlobAsText","decode","input","normalizeMethod","reQueryString","form","decodeURIComponent","init","xhr","url","abortXhr","request","parseHeaders","normalizeValue","viewClasses","normalizeName","oldValue","iteratorFor","redirectStatuses","RangeError","WebSocket","_ref2$headers","_objectWithoutProperties2","_excluded","NativeEventEmitter","NativeWebSocketModule","nextWebSocketId","WebSocketEvent","nativeModule","subscription","eventType","File","NativeFileReaderModule","_Symbol$iterator","params","encodeURIComponent","last","URL","validateBaseUrl","baseUrl","BLOB_URL_PREFIX","AbortSignal","eventTargetShim","abortedFlags","signals","controller","AbortController","createAbortSignal","getSignal","abortSignal","Alert","title","buttons","buttonNeutral","buttonNegative","buttonPositive","RCTAlertManager","cancelButtonKey","destructiveButtonKey","preferredButtonKey","callbackOrButtons","btn","cb","NativeJSCHeapCapture","warningHandler","RCTLog","levelsMap","appConfig","runnables","sections","renderApplication","componentProviderInstrumentationHook","componentProvider","scopedPerformanceLogger","wrapperComponentProvider","showArchitectureIndicator","appKey","coerceDisplayMode","infoLog","BugReporting","runCount","SceneTracker","unmountComponentAtNodeAndRemoveContainer","taskProviders","taskCancelProviders","NativeHeadlessJsTaskSupport","taskId","HeadlessJsTaskError","reason","defaultExtras","_slicedToArray2","NativeBugReporting","NativeRedBox","getReactTree","_listeners","_activeScene","DisplayMode","_jsxRuntime","_PerformanceLoggerContext","_AppContainer","initialProps","displayMode","useConcurrentRoot","fabric","Renderer","useContext","PerformanceLoggerContext","AppContainer","_View","styles","_RootTag","createRootTag","ariaLabelledBy","ariaBusy","accessibilityState","ariaChecked","ariaDisabled","ariaExpanded","ariaSelected","ariaValueMax","accessibilityValue","ariaValueMin","ariaValueNow","ariaValueText","flattenedStyle","_TextAncestor","_ViewNativeComponent","ariaLive","ariaLabel","tabIndex","role","getAccessibilityRoleFromRole","ariaHidden","k","style1","property","cache","performance","navigator","MessageChannel","G","H","E","F","pluginName$jscomp$inline_231","isOrderingDirty$jscomp$inline_230","getInstanceFromTag","devToolsConfig$jscomp$inline_979","unmountComponentAtNode","instanceCache","nativeEventParam","EMPTY_NATIVE_EVENT","tag","instanceProps","recursivelyUncacheFiberNode","shim","getStackByFiberInDevAndProd","allocateTag","ReactNativeFiberHostComponent","finalizeInitialChildren","isHostParent","insertOrAppendPlacementNodeIntoContainer","insertOrAppendPlacementNode","hostParent","hostParentIsContainer","updatePayload$jscomp$0","getHostSibling","JSCompiler_inline_result","index$5","_receiveRootNodeIDEvent","UPDATE_SIGNAL","_ref$animating","_ref$color","_ref$hidesWhenStopped","_ref$size","PlatformActivityIndicator","codegenNativeComponent","requireNativeComponent","createReactNativeComponentClass","uiViewClassName","register","Button","disabled","TouchableOpacity","TouchableNativeFeedback","importantForAccessibility","_Text","useState","restProps","_accessibilityState","_disabled","onPress","onLongPress","onStartShouldSetResponder","useLazyInitialization","useMemo","initialized","pressRetentionOffset","onPressIn","onPressOut","onResponderTerminationRequest","suppressHighlighting","usePressability","eventHandlers","onResponderGrant","onResponderMove","onResponderRelease","onResponderTerminate","userSelectToSelectableMap","verticalAlignToTextAlignVerticalMap","TextAncestor","accessible","props","hasTextAncestor","_TextNativeComponent","ellipsizeMode","allowFontScaling","isPressable","setHighlighted","createSquare","useRef","Pressability","useEffect","pressability","config","delay","signal","pageY","pageX","ReactNativeFeatureFlags","onStartShouldSetResponder_DEPRECATED","normalizeDelay","DEFAULT_LONG_PRESS_DELAY_MS","delayLongPress","getTouchFromPressEvent","onResponderTerminationRequest_DEPRECATED","onHoverIn","convertPointerEventToMouseEvent","onHoverOut","isHoverEnabled","PressabilityPerformanceEventEmitter","Transitions","nextState","isTerminalSignal","isActivationSignal","isPressInSignal","isActiveSignal","SoundManager","minPressDuration","normalizeRect","pressRectOffset","DEFAULT_PRESS_RECT_OFFSETS","NativeSoundManager","lastTouchTimestamp","HOVER_THRESHOLD_MS","textViewConfig","virtualTextViewConfig","propFullName","emptyFunctionWithReset","emptyFunction","ReactPropTypesSecret","deprecatedCreateStrictShapeTypeChecker","shapePropType","shapeTypes","checkType","findHostInstance_DEPRECATED","Commands","locationX","locationY","getBackgroundProp","processedColor","useForeground","Animated","Easing","_Animated","AnimatedImplementation","AnimatedMock","AnimatedValue","AnimatedValueXY","AnimatedColor","AnimatedInterpolation","AnimatedNode","createAnimatedComponent","attachNativeEvent","AnimatedEvent","AnimatedAddition","AnimatedSubtraction","AnimatedDivision","AnimatedMultiplication","AnimatedModulo","AnimatedDiffClamp","parallel","maybeVectorAnim","spring","_combineCallbacks","configuration","SpringAnimation","AnimatedTracking","start","timing","TimingAnimation","decay","DecayAnimation","animations","onComplete","doneCount","hasEnded","idx","stopTogether","sequence","time","_ref$iterations","_ref$resetBeforeItera","animation","iterations","isFinished","iterationsSoFar","resetBeforeIteration","restart","argMapping","eventMappings","traverse","platformConfig","NativeAnimatedHelper","viewTag","recMapping","NativeAnimatedNonTurboModule","NativeAnimatedTurboModule","NativeAnimatedModule","useSingleOpBatching","eventListenerGetValueCallbacks","eventListenerAnimationFinishedCallbacks","SUPPORTED_STYLES","SUPPORTED_TRANSFORMS","SUPPORTED_INTERPOLATION_PARAMS","SUPPORTED_COLOR_STYLES","isSupportedTransformProp","isSupportedStyleProp","isSupportedInterpolationParam","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","_warnedMissingNativeAnimated","degrees","nativeOps","API","waitingForQueuedOperations","flushQueueTimeout","clearImmediate","singleOpQueue","globalEventEmitterGetValueListener","globalEventEmitterAnimationFinishedListener","setupGlobalEventEmitterListeners","queueOperations","nativeEventEmitter","AnimatedWithChildren","findAnimatedStyles","animatedStyles","NativeAnimatedAPI","_executeAsAnimatedBatch","InteractionManager","_this4","_flush","_nextUpdateHandle","_deadline","_processUpdate","_interactionSet","_addInteractionSet","_deleteInteractionSet","_emitter","_taskQueue","_scheduleUpdate","task","tasks","_inc","TaskQueue","tasksToCancel","stackItem","linear","createInterpolationFromStringOutputRange","findRange","inputRange","interpolate","range","outputRange","easing","extrapolateLeft","extrapolateRight","inputMax","outputMax","colorToRgba","checkPattern","stringShapeRegex","isRgbOrRgba","outputRanges","createInterpolation","interpolations","shouldRound","pattern","_uniqueId","valueIn","Animation","requestAnimationFrame","onEnd","startNativeAnimationNextId","SpringConfig","previousAnimation","animatedValue","zeta","omega0","v0","x0","envelope","omega1","position","isRgbaValue","processColorObject","defaultColor","isRgbaAnimatedValue","oValue","stiffnessFromOrigamiValue","dampingFromOrigamiValue","bounciness","speed","endValue","_easeInOut","easeInOut","ease","s","SUBDIVISION_MAX_ITERATIONS","aB","aA","calcBezier","SUBDIVISION_PRECISION","NEWTON_ITERATIONS","getSlope","currentX","float32ArraySupported","kSplineTableSize","Float32Array","kSampleStepSize","sampleValues","aX","currentSample","dist","intervalStart","mX1","mX2","NEWTON_MIN_SLOPE","binarySubdivide","newtonRaphsonIterate","mY1","mY2","getTForX","Component","AnimatedComponent","animatedComponentNextId","setAndForwardRef","prop","scrollableNode","AnimatedProps","_animatedProps$style","_ref$style","_excluded2","getForwardedRef","setLocalRef","injected","AnimatedStyle","nativeViewTag","AnimatedTransform","transConfigs","getter","nestedValue","inAnimationCallback","emptyAnimation","mockAnimationStart","anyValue","mockCompositeAnimation","_FlatList","removeClippedSubviews","numColumns","FlatList","memoizeOne","numColumnsOrDefault","defaultKeyExtractor","keyExtractor","ListItemComponent","renderItem","cols","render","View","columnWrapperStyle","prevProps","onViewableItemsChanged","viewableItems","changed","_this$props$strictMod","strictMode","_VirtualizedList","removeClippedSubviewsOrDefault","StateSafePureComponent","VirtualizedListContext","horizontal","initialNumToRender","maxToRenderPerBatch","onEndReachedThreshold","scrollEventThrottle","windowSize","VirtualizedList","ChildListCollection","windowSizeOrDefault","FillRateHelper","Batchinator","ViewabilityHelper","_assertThisInitialized2","isVertical","_ScrollView","_RefreshControl","curr","metrics","offset","timestamp","dOffset","remainder","frameMetrics","first","horizontalOrDefault","getItemCount","viewPosition","viewOffset","onEndReachedThresholdOrDefault","contentLength","cellsAroundViewport","computeWindowedRenderLimits","maxToRenderPerBatchOrDefault","newCellsAroundViewport","distanceFromEnd","childIdx","ListHeaderComponent","ii","getItem","stickyIndicesFromProps","stickyOffset","stickyHeaderIndices","cells","_VirtualizedListCellRenderer","CellRendererComponent","ItemSeparatorComponent","debug","getItemLayout","inversionStyle","prevCellKey","nestedContext","_VirtualizedListContext","findLastWhere","section","isLastSpacer","constrainToMeasured","clamp","lastMetrics","_usedIndexForKey","_keylessItemComponentName","scrollEventThrottleOrDefault","itemCount","renderMask","frameLast","normalize","windowTop","windowLen","visTop","visLen","distTop","hiPri","velocity","distBottom","_this5","CellRenderMask","additionalRegions","initialNumToRenderOrDefault","scrollIndex","cellIdx","itemIdx","RefreshControl","AndroidSwipeRefreshLayoutCommands","_AndroidSwipeRefreshLayoutNativeComponent","ScrollViewNativeComponent","ScrollContentViewNativeComponent","AndroidHorizontalScrollViewNativeComponent","AndroidHorizontalScrollContentViewNativeComponent","ScrollViewContext","ScrollView","animated","additionalOffset","top","keyboardScreenY","height","scrollTextInputIntoVisibleRect","FrameRateLogger","dismissKeyboard","IS_ANIMATING_TOUCH_START_THRESHOLD_MS","timeSinceLastMomentumScrollEnd","TextInputState","keyboardShouldPersistTaps","currentlyFocusedInput","hasFocusedTextInput","Keyboard","newContentInsetTop","indexOfIndex","previousHeader","NativeVerticalScrollViewTuple","NativeHorizontalScrollViewTuple","_ScrollViewContext","VERTICAL","HORIZONTAL","hasStickyHeaders","processDecelerationRate","splitLayoutProps","ScrollViewStickyHeader","childArray","NativeFrameRateLogger","NativeKeyboardObserver","LayoutAnimation","isLayoutAnimationEnabled","onAnimationComplete","onAnimationDidFail","animationCompletionHasRun","raceWithAnimationId","onAnimationDidEnd","useMergeRefs","useCallback","isFabric","translateY","setIsFabric","_internalInstanceHandler","setNextHeaderLayoutY","hiddenOnScroll","scrollAnimatedValue","layoutY","layoutHeight","_haveReceivedInitialZeroTranslateY","_timer","setTranslateY","measured","inverted","nextHeaderLayoutY","collisionPoint","scrollViewHeight","stickStartPoint","animatedValueListener","setAnimatedTranslateY","animatedListenerId","newAnimatedTranslateY","setLayoutY","setLayoutHeight","setMeasured","timeoutHandle","numCells","newMainRegion","lastIntersectIdx","other","region","firstIdx","middleIdx","cellKey","Info","_sampleRate","_minSampleCount","firstFrame","lastFrame","blankTop","pixels_blank","partialState","that","_isEntirelyVisible","_getPixelsVisible","viewAreaMode","pixels","percent","bottom","viewAreaCoveragePercentThreshold","viewablePercentThreshold","itemVisiblePercentThreshold","renderRange","_isViewable","viewableIndices","createViewToken","CellRenderer","select","currContext","right","left","mid","_scrollMetrics$zoomSc","visibleBegin","visibleEnd","getFrameMetricsApprox","elementsThatOverlapOffsets","overscanFirst","overscanLast","newRangeCount","newCellCount","safeIsNaN","isEqual","areInputsEqual","calledOnce","lastThis","lastArgs","resultFn","lastResult","Image","asyncGeneratorStep","gen","_next","_throw","shouldUseSrcForDefaultScale","sourceList","width","_imageSrc$split2$","AnimatedScrollViewWithoutInvertedRefreshControl","AnimatedScrollViewWithInvertedRefreshControl","useAnimatedProps","useReducer","useAnimatedPropsLifecycle","useRefEffect","reduceAnimatedProps","count","onUpdateRef","getEventTarget","propValue","isFabricInstance","scheduleUpdate","events","useLayoutEffect","isUnmountingRef","prevNodeRef","hasFabricHandle","_instance$getScrollRe","cleanupRef","_SectionList","SectionList","listRef","_stickySectionHeadersEnabled","_VirtualizedSectionList","LeadingSeparatorComponent","leadingSeparatorProps","SeparatorComponent","separatorProps","leadingSeparator","setSelfHighlightCallback","setSeparatorHighlighted","setSelfUpdatePropsCallback","setSeparatorProps","setLeadingSeparatorHighlighted","updateHighlightFor","updatePropsFor","setLeadingSeparatorProps","VirtualizedSectionList","viewable","keyExtractorWithNullableIndex","listItemCount","ItemWithSeparator","infoIndex","renderSectionFooter","renderSectionHeader","itemIndex","Text","ImageBackground","_Image","InputAccessoryView","_RCTInputAccessoryViewNativeComponent","KeyboardAvoidingView","_asyncToGenerator2","_ref","_relativeKeyboardHeight2","AccessibilityInfo","keyboardFrame","_this$props$enabled","enabled","I18nManager","ModalInjection","Modal","uniqueModalIdentifier","_RCTModalHostViewNativeComponent","NativeI18nManager","i18nConstants","useImperativeHandle","useAndroidRippleForView","usePressState","testOnly_pressed","android_rippleConfig","focusable","android_disableSound","cancelable","delayHoverIn","delayHoverOut","hitSlop","setPressed","unstable_pressDelay","viewRef","pressed","rippleConfig","borderless","foreground","radius","_props$value","_props$minimumValue","_props$maximumValue","_props$step","onValueChange","onSlidingComplete","_SliderNativeComponent","userEvent","NativeStatusBarManagerAndroid","StatusBar","NativeStatusBarManagerIOS","createStackEntry","mergePropsStack","mergedProps","trackColor","nativeSwitchRef","ios_backgroundColor","_SwitchNativeComponent","returnsFalse","returnsTrue","_AndroidSwitchNativeComponent","onChange","setNative","SwitchCommands","AndroidSwitchCommands","RCTSinglelineTextInputNativeCommands","RCTMultilineTextInputNativeCommands","lastNativeText","selection","lastNativeSelection","AndroidTextInput","mostRecentEventCount","text","RCTSinglelineTextInputView","RCTMultilineTextInputView","useOnChangeSync","emptyFunctionThatReturnsTrue","inputRef","viewCommands","setLastNativeText","setLastNativeSelection","inputRefValue","nullthrows","clear","isFocused","getNativeRef","setSelection","setMostRecentEventCount","_ref2$allowFontScalin","_ref2$rejectResponder","_ref2$underlineColorA","style","InternalTextInput","readOnly","enterKeyHint","enterKeyHintToReturnTypeMap","inputMode","inputModeToKeyboardTypeMap","autoCompleteWebToAutoCompleteAndroidMap","autoCompleteWebToTextContentTypeMap","autoComplete","touches","changedTouches","hasTouches","States","Signals","longDelayMS","extractSingleTouch","positionOnActivate","Position","BoundingDimensions","aY","deltaX","deltaY","curState","IsActive","IsPressingIn","IsLongPressingIn","PooledClass","pooler","DEFAULT_POOLER","standardReleaser","TouchableHighlight","TouchableWithoutFeedback","createPressabilityConfig","PASSTHROUGH_PROPS","RCTActionSheetManager","processedTintColor","processedCancelButtonTintColor","NativeAppearance","colorScheme","nativeColorScheme","AppState","NativeAppState","emitter","logError","eventUpdated","changeHandler","focusOrBlurHandler","NativeClipboard","Linking","NativeLinkingManager","NativeIntentAndroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","gestureState","nextDX","nextDY","PanResponder","interactionState","currentCentroidX","currentCentroidY","clearInteractionHandle","ofCurrent","TouchHistoryMath","PermissionsAndroid","PERMISSIONS","PERMISSION_REQUEST_RESULT","NativePermissionsAndroid","_requestPermission","response","_request","NativeDialogManagerAndroid","rationale","permission","NativePushNotificationManagerIOS","PushNotificationIOS","nativeNotif","PushNotificationEmitter","NOTIF_REGISTRATION_ERROR_EVENT","NOTIF_REGISTER_EVENT","DEVICE_LOCAL_NOTIF_EVENT","DEVICE_NOTIF_EVENT","_notifHandlers","handler","notification","Share","content","NativeShareModule","useSyncExternalStore","Appearance","appearanceSubscription","setDimensions","_vibrating","_id","NativeVibration","_default_vibration_length","vibrateScheduler","nextIndex","YellowBox","ExpoNativeProxy","NativeProxy","moduleName","methodInfo","LegacyNativeProxy","argumentsCount","nativeComponentsCache","viewManagersMetadata","requireCachedNativeComponent","viewManagerConfig","omit","proxiedPropsNames","pick","ReactNativeComponent","ReactNativePlatform","isDOMAvailable","canUseEventListeners","canUseViewport","isAsyncDebugging","UnavailabilityError","codeFromLibrary","code","postedWarnings","compareVersions","prependLibrary","library","str","indexOrEnd","patchIndex","semver","validate","split","s1","s2","sp1","tryParse","allowedOperators","validateOperator","operatorResMap","_ref$get","_ref$request","requestPermission","getPermission","permissionOptions","isMounted","setStatus","usePermission","requireNativeModule","shouldThrowAnErrorOutsideOfExpoValue","_cachedDevServerURL","NativeSourceCode","FALLBACK","_cachedFullBundleURL","_Asset2","_AssetHooks","IS_ENV_WITH_UPDATES_ENABLED","setCustomSourceTransformer","Asset","asset","_ref$hash","getLocalAssetUri","AssetUris","_downloadAsync2","ImageAssets","downloadAsync","getAssetByID","selectAssetSource","extension","assetMapOverride","meta","getManifest2","resolveUri","manifestBaseUrl","uri","lastSlash","pathObject","dir","assertPath","normalizeStringPosix","posix","fromEnd","toEnd","fromLen","fromStart","toStart","out","hasRoot","ext","startPart","_format","NaN","controlOrWhitespace","globalVar","loc","ignore","slashes","Url","unescape","scheme","trimLeft","CRHTLF","protocolre","isSpecial","forwardSlashes","rules","qs","lolcation","extractProtocol","address","extracted","relative","windowsDriveLetter","parse","required","char","port","protocol","host","prefix","encode","has","pairs","_AssetSourceResolver","IS_MANAGED_ENV","getManifestBaseUrl","_downloadAsync","_downloadAsyncUnmanagedEnv","_downloadAsyncManagedEnv","_downloadAsyncManagedEnv2","computeMd5","FileSystem","_downloadAsyncUnmanagedEnv2","lsw","msw","safeAdd","bitRotateLeft","md5cmn","md5ff","md5gg","md5hh","md5ii","binl2rstr","binlMD5","rstr2binl","bkey","hexTab","rstrMD5","str2rstrUTF8","rstr2hex","rawMD5","rstrHMACMD5","rawHMACMD5","hexMD5","hexHMACMD5","md5","_FileSystem","_FileSystem2","ExponentFileSystem","deleteAsync","_getInfoAsync","_readAsStringAsync","_getContentUriAsync","_writeAsStringAsync","_deleteAsync","_deleteLegacyDocumentDirectoryAndroid","documentDirectory","_moveAsync","_copyAsync","_makeDirectoryAsync","_readDirectoryAsync","_getFreeDiskStorageAsync","_getTotalDiskCapacityAsync","FileSystemSessionType","_uploadAsync","FileSystemUploadType","DownloadResumable","UploadTask","FileSystemCancellableNetworkTask","_cancelAsync","isUploadProgressData","_uploadAsync2","_pauseAsync","_resumeAsync","baseWriteAsStringAsync","baseReadAsStringAsync","baseDeleteAsync","baseMoveAsync","baseCopyAsync","_requestDirectoryPermissionsAsync","_readDirectoryAsync2","_makeDirectoryAsync2","_createFileAsync","buf","_nodeId","_clockseq","rng","seedBytes","_lastNSecs","_lastMSecs","msecs","nsecs","dt","clockseq","tl","tmh","bytesToUuid","crypto","msCrypto","getRandomValues","rnds8","rnds","byteToHex","ExponentFileSystemShim","pathname","getFilename","dotIndex","urlObject","img","getLocalAssets","localAssets","localAssetsKey","legacyLocalAssetsKey","bundledAssets","_resolveAssetSource","moduleIds","setAssets","setError","_Font","fontFamilyNeedsScoping","isLoaded","getNativeFontName","loaded","fontFamily","loadPromises","_loadAsync","loadFontInNamespaceAsync","fontMap","_loadFontInNamespaceAsync","getAssetForSource","loadSingleFontAsync","_unloadAllAsync","ExpoFontLoader","_unloadAsync","unloadFontInNamespaceAsync","_unloadFontInNamespaceAsync","isInClient","isInIOSStandalone","_loadSingleFontAsync","loadAsync","map","setLoaded","customizeModuleIsMissingMessage","customizeUnavailableMessage","customizeError","isErrorHandlingEnabled","originalHandler","errorHandler","createStackNavigator","Splash","RecapTrueFalse","Recap","Results","ResultsTrueFalse","Dictionary","QuizIndex","Quiz","TrueFalse","Exam","Setup","createAppContainer","initialize","startListening","fabricInitialized","RNGestureHandlerModule","findHandler","findOldGestureHandler","isStateChangeEvent","isTouchEvent","lastUpdateEvent","gestureStateManagers","GestureStateManager","TouchEventType","_handler$handlers4","_handler$handlers3","_handler$handlers2","_handler$handlers","State","stopListening","onGestureHandlerEvent","gestureHandlerEventSubscription","gestureHandlerStateChangeEventSubscription","handlerTag","gestures","isJestEnv","testIDs","oldHandlers","pack","previousArr","mapFn","transformedArr","hasProperty","REACT_NATIVE_VERSION","tagMessage","Reanimated","REANIMATED_AVAILABLE","warningMessage","setGestureState","webGlobalIsInitialized","_reanimated","_reanimated2","NODE_MAPPING","component","hasAnimatedNodes","_flattenArray","resultArr","style2","isJest","makeMutable","shouldBeUseWeb","enableLayoutAnimations","DefaultLayout","DefaultEntering","DefaultExiting","runOnUI","WorkletEventHandler","createOrReusePropsNode","oldPropsAnimated","_this$_component2","ReanimatedEventEmitter","onlyAnimatedStyles","flattenArray","RNRenderer","hostInstance","adaptViewConfig","prevStyles","isSameAnimatedStyle","isSameAnimatedProps","viewName","prevStyle","inputProps","isChromeDebugger","dummyListener","animatedProp","styleProp","initialUpdaterRun","ReanimatedModule","nativeShouldBeMock","ReanimatedModuleCompat","_disconnectNodeFromView","_attachEvent","_detachEvent","_createNode","_dropNode","_configureProps","_disconnectNodes","_addListener","_removeListeners","_removeAllListeners","_animateNextTransition","isWeb","createEventObjectProxyPolyfill","Proxy","proxyHandler","alwaysNodes","createAnimatedAlways","InternalAnimatedValue","getNode","sanitizeArgMapping","callID","sanitizeConfig","UPDATED_NODES","loopID","visitedNodes","findAndUpdateNodes","nodeCount","inputNodes","propUpdatesEnqueued","scheduleUpdates","runPropUpdates","evaluateOnce","set","AnimatedSet","adapt","what","AnimatedBlock","nodify","el","CONSTANT_VALUES","sanitizeValue","initializeConstantValues","proc","interpolateInternalSingleProc","cond","lessThan","interpolateInternalSingle","interpolateInternal","_config$extrapolate","Extrapolate","checkMinElements","checkValidNumbers","checkNonDecreasing","convertToRadians","greaterThan","divide","sub","add","multiply","eq","lessOrEq","createAnimatedOperator","initialValue","AnimatedOperator","OPERATIONS","AnimatedCond","elseBlock","condition","ifBlock","createAnimatedParam","_construct2","AnimatedFunction","createAnimatedCallFunc","AnimatedCallFunc","getCallID","setCallID","AnimatedParam","AnimatedClock","AnimatedMainClock","cancelAnimationFrame","mainClock","always","alwaysNode","AnimatedCall","AnimatedAlways","createOrReuseStyleNode","oldNode","sanitizeProps","deepEqual","createOrReuseTransformNode","sanitizeStyle","hasAnimatedTransform","outputTransform","parents","sanitizeTransform","extractAnimatedParentNodes","freeGlobal","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","objectProto","coreJsData","uid","funcToString","Buffer","toSource","symbolProto","ListCache","MapCache","SetCache","Stack","baseGetTag","getTag","baseIsArguments","nativeIsBuffer","nodeIsTypedArray","transform","entries","nativeCreate","assocIndexOf","splice","Hash","getMapData","isArguments","isBuffer","isTypedArray","isArr","skipIndexes","baseTimes","isIndex","arrayPush","symToStringTag","getRawTag","isObjectLike","baseIsEqualDeep","baseIsEqual","objIsArr","othIsArr","objTag","othTag","equalByTag","equalArrays","bitmask","objIsObj","othIsObj","objIsWrapped","othIsWrapped","equalObjects","isMasked","reIsHostCtor","reIsNative","isLength","typedArrayTags","isPrototype","nativeKeys","arraySome","arrValue","isPartial","seen","stacked","cacheHas","equalFunc","customizer","symbolValueOf","mapToArray","convert","setToArray","getAllKeys","compared","objValue","skipCtor","objCtor","othCtor","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","nativeObjectToString","length","reIsUint","maskSrcKey","isArrayLike","baseKeys","arrayLikeKeys","arrayFilter","nativeGetSymbols","propertyIsEnumerable","Ctor","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","NativeReanimatedModule","jsListener","worklet","NativeReanimated","reanimatedJS","JSReanimated","setNativeProps","updates","rawStyles","MapperRegistry","MutableValue","Mapper","nodes","post","mappersById","Node","postCounter","dfs","markDirty","extractMutables","checkVersion","jsVersion","jsMajor","jsMinor","configs","enteringAnimationForTag","_stopObservingProgress","_startObservingProgress","ColorProperties","withStyleAnimation","pushFrame","makeShareable","isConfiguredCheck","_getTimestamp","getTimestamp","_frameTimestamp","step","requestFrame","initializeAnimation","_WORKLET","featuresConfig","testWorklet","throwUninitializedReanimatedException","checkPluginState","_eventTimestamp","_getCurrentTime","runOnJS","capturableConsole","_setGlobalConsole","defineAnimation","styleAnimations","setPath","withTiming","resolvePath","recognizePrefixSuffix","baseOnStart","baseOnFrame","isColor","toLinearSpace","convertToRGBA","tab","rgbaArrayToRGBAColor","toGammaSpace","animationCopy","RGBACurrent","RGBAToValue","RGBAValue","finished","prefNumberSuffOnStart","prefNumberSuffOnFrame","arrayOnStart","arrayOnFrame","colorOnStart","colorOnFrame","IN_STYLE_UPDATER","factory","decorateAnimation","startValue","isConfigured","makeRemote","uiCachedMatchers","jsCachedMatchers","NUMBER","PERCENTAGE","matchers","names","max","processColorInitially","RGBA","alpha","HSVtoRGB","rgbaColor","userConfig","toValue","runtime","Bezier","x1","y1","x2","y2","prevArgs","EasingNode","workletName","createChecker","EasingObject","AnimatedBezier","pow","cos","sqrt","_operators","AnimatedStartClock","clockNode","AnimatedStopClock","AnimatedClockTest","AnimatedDebug","AnimatedConcat","bezier","_updatePropsJS","_updateProps","viewDescriptor","updateProps","jsiConfigureProps","UI_THREAD_PROPS_WHITELIST","NATIVE_THREAD_PROPS_WHITELIST","configureProps","PROCESSED_VIEW_NAMES","addWhitelistedUIProps","propsToAdd","deltaTime","sin1","underDampedEnvelope","cos1","criticallyDampedEnvelope","SLOPE_FACTOR","VELOCITY_EPS","validateConfig","_nextAnimation","delayMs","nextAnimation","withDelay","numberOfReps","reverse","withRepeat","numberOfLoops","_animations","firstAnimation","withSequence","forwardRef","itemLayoutAnimation","AnimatedFlatList","createCellRenderer","backwardCompatibleAnimWrapper","_base","_derived","children","assertNodesNotNull","useCode","nodeFactory","block","animatedAlways","abs","procDecay","internalTiming","greaterOrEq","min","MAX_STEPS_MS","sin","exp","and","neq","or","procSpring","TransitioningContext","Comp","Wrapped","_super6","_react","In","configFromProps","Change","Out","_super3","Together","_super4","Sequence","_super5","stiffnessFromOrigamiNode","dampingFromOrigamiNode","fromBouncinessAndSpeedNodes","fromBouncinessAndSpeedNumbers","Clock","isStarted","isDone","currentState","animationCallback","clockRunning","newClock","startClock","stopClock","wasStopped","createOldAnimationObject","animationStateDefaults","procAcc","round","procColor","concat","procDiff","defined","opacity","procOnChange","not","_core","_hook","_animation","_interpolation","_interpolateColor","_Easing","_NativeMethods","_Colors","_PropAdapters","_layoutReanimation","_utils","_commonTypes","useAnimatedStyle","deps","lastAnimation","lastValue","prepareAnimation","allFinished","runAnimations","animationsActive","isAnimated","styleDiff","getStyleWithoutAnimations","viewDescriptors","maybeViewRef","hasAnimations","oldValues","newValues","updatePropsJestWrapper","adapters","animatedStyle","checkSharedValueUsage","makeViewsRefSet","makeViewDescriptorsSet","buildWorkletsHash","useSharedValue","adaptersHash","validateAnimatedStyles","updater","canApplyOptimalisation","hasColorProps","updaterFn","startMapper","sharableViewDescriptors","adaptersArray","remoteState","parseColors","jestStyleUpdater","styleUpdater","stopMapper","mapperId","cancelAnimation","initRef","buildDependencies","areDependenciesEqual","colorProps","optimalization","useHandler","useEvent","useWeb","EventType","handlers","prepare","react","previous","_setGestureState","_measure","_scrollTo","scrollHandlers","sharedValue","processor","SensorType","sensorType","FrameCallbackRegistryJS","frameCallbackRegistry","prepareUIRegistry","callbackId","loop","delta","KeyboardState","isSubscribed","listenerId","subscribeForEvents","offsetRef","aref","Extrapolation","coef","isExtrapolate","rightEdgeInput","rightEdgeOutput","progress","leftEdgeOutput","getVal","validateType","isNode","internalInterpolate","interpolateNode","ColorSpace","_options$useCorrected","originalH","hsvToColor","gamma","_options$gamma","RGBtoHSV","interpolateColorsRGB","getInterpolateRGB","interpolateColorsHSV","getInterpolateHSV","nativeProps","addWhitelistedNativeProps","nativePropsToAdd","_animationBuilder","_defaultAnimations","_defaultTransitions","BaseAnimationBuilder","isDelayProvided","ComplexAnimationBuilder","withSpring","Keyframe","initialValues","keyframes","delayFunction","keyframePoints","keyframePoint","addAnimation","parsedKeyframes","currentKeyPoint","maxDuration","getAnimationDuration","keyframe","addKeyPoint","keyPoint","addKeyPointWith","transformStyle","_Flip","_Stretch","_Fade","_Slide","_Zoom","_Bounce","_Lightspeed","_Pinwheel","_Rotate","_Roll","FlipInXUp","FlipInYLeft","FlipInXDown","FlipInYRight","FlipInEasyX","FlipInEasyY","_this6","FlipOutXUp","_super7","_this7","FlipOutYLeft","_super8","_this8","FlipOutXDown","_super9","_this9","FlipOutYRight","_super10","_this10","FlipOutEasyX","_super11","_this11","FlipOutEasyY","_super12","_this12","StretchInX","StretchInY","StretchOutX","StretchOutY","FadeIn","FadeInRight","FadeInLeft","FadeInUp","FadeInDown","FadeOut","FadeOutRight","FadeOutLeft","FadeOutUp","FadeOutDown","SlideInRight","SlideInLeft","SlideOutRight","SlideOutLeft","SlideInUp","SlideInDown","SlideOutUp","SlideOutDown","ZoomIn","ZoomInRotate","rotate","ZoomInLeft","ZoomInRight","ZoomInUp","ZoomInDown","ZoomInEasyUp","ZoomInEasyDown","ZoomOut","ZoomOutRotate","ZoomOutLeft","ZoomOutRight","ZoomOutUp","_super13","_this13","ZoomOutDown","_super14","_this14","ZoomOutEasyUp","_super15","_this15","ZoomOutEasyDown","_super16","_this16","BounceIn","BounceInDown","BounceInUp","BounceInLeft","BounceInRight","BounceOut","BounceOutDown","BounceOutUp","BounceOutLeft","BounceOutRight","LightSpeedInRight","LightSpeedInLeft","LightSpeedOutRight","LightSpeedOutLeft","PinwheelIn","PinwheelOut","RotateInDownLeft","RotateInDownRight","RotateInUpLeft","RotateInUpRight","RotateOutDownLeft","RotateOutDownRight","RotateOutUpLeft","RotateOutUpRight","RollInLeft","RollInRight","RollOutLeft","RollOutRight","_LinearTransition","_FadingTransition","_SequencedTransition","_JumpingTransition","_CurvedTransition","_EntryExitTransition","LinearTransition","FadingTransition","SequencedTransition","JumpingTransition","CurvedTransition","EntryExitTransition","enteringAnimation","exitingAnimation","enteringValues","exitingValues","exitingDuration","objectKeys","measure","absoluteX","absoluteY","hoistNonReactStatics","_GestureHandlerRootView","containerStyles","reactIs","TYPE_STATICS","REACT_STATICS","MEMO_STATICS","objectPrototype","getOwnPropertyNames","getOwnPropertySymbols","getStatics","KNOWN_STATICS","getOwnPropertyDescriptor","createHandler","baseGestureHandlerProps","UIManagerAny","_UIManagerAny$setJSRe","_UIManagerAny$clearJS","extract","_ref$allowedProps","_ref$config","_ref$customNativeProp","getNextHandlerTag","allowTouches","handlerIDToTag","stateToPropMappings","stateEventName","registerOldGestureHandler","ActionType","scheduleFlushOperations","hasUnresolvedRefs","filterConfig","transformProps","allowedProps","customNativeProps","UNRESOLVED_REFS_RETRY_LIMIT","remainingTries","oldSetJSResponder","oldClearJSResponder","arrayTag","argsTag","objectTag","COMPARE_PARTIAL_FLAG","funcTag","genTag","asyncTag","proxyTag","nullTag","undefinedTag","HASH_UNDEFINED","COMPARE_UNORDERED_FLAG","arrStacked","othStacked","dataViewTag","arrayBufferTag","boolTag","dateTag","numberTag","errorTag","regexpTag","stringTag","mapTag","setTag","symbolTag","objStacked","param","isConfigParam","transformIntoHandlerTags","toArray","findNodeHandleRN","scheduledFlushOperationsId","PlatformConstants","ForceTouchFallback","transformPanGestureHandlerProps","nativeViewProps","_NativeViewGestureHandler","NATIVE_WRAPPER_PROPS_FILTER","_gestureHandlerRef","baseGestureHandlerWithMonitorProps","tapGestureHandlerProps","panGestureHandlerProps","panGestureHandlerCustomNativeProps","longPressGestureHandlerProps","forceTouchGestureHandlerProps","flingGestureHandlerProps","Wrap","BaseGesture","interactionGroup","convertToHandlerTag","unregisterHandler","checkGestureCallbacksForWorklets","ALLOWED_PROPS","registerHandler","gesture","mountedRef","gestureConfig","extractValidHandlerTags","preparedGesture","previousHandlersValue","CALLBACK_TYPE","getHandler","sharedHandlersCallbacks","runWorklet","stateControllers","touchEventTypeToCallbackType","applyUserSelectProp","isExperimentalWebImplementationEnabled","needsToReattach","useAnimatedGesture","AnimatedWrap","setRenderState","renderState","updateHandlers","validateDetectorChildren","dropHandlers","attachHandlers","webEventHandlersRef","forceRender","onHandlersUpdate","getShadowNodeFromRef","Gesture","nextGestureId","isRemoteDebuggingEnabled","ContinousBaseGesture","EXPERIMENTAL_WEB_IMPLEMENTATION","getWasCalled","TapGesture","PanGesture","PinchGesture","RotationGesture","FlingGesture","LongPressGesture","ForceTouchGesture","NativeGesture","ManualGesture","ComposedGesture","SimultaneousGesture","ExclusiveGesture","changeEventCalculator","extendRelation","createNativeWrapper","GestureHandlerButton","BaseButton","pointerInside","RawButton","RectButton","active","_reactNative","btnStyles","BorderlessButton","_excluded3","AnimatedBaseButton","shouldUseCodegenNativeComponent","GenericTouchable","_GenericTouchable","TOUCHABLE_STATE","_GestureButtons","childStyle","_this$props$style","RNRefreshControl","RNScrollView","RNSwitch","RNTextInput","RNDrawerLayoutAndroid","GHScrollView","waitFor","refreshControl","scrollViewProps","refreshControlGestureRef","Swipeable","_state$leftWidth","_state$rowWidth","_state$rightOffset","rowWidth","_props$overshootLeft","leftWidth","_props$overshootRight","rightWidth","overshootRight","overshootLeft","_this$state$leftWidth","_this$state$rowWidth","_this$state$rightOffs","_this$props$leftThres","_this$props$rightThre","dragX","DRAG_TOSS","velocityX","fromValue","_this$state3$leftWidt","_this$state3$rowWidth","_this$state$rightOffs2","_this$state$leftWidth2","_this$state$rowWidth2","_this$state$rightOffs3","renderLeftActions","renderRightActions","_PanGestureHandler","_TapGestureHandler","rowState","DrawerLayout","drawerWidth","translationX","containerWidth","touchX","gestureStartX","startOffsetX","showing","drawerPosition","fromLeft","gestureOrientation","willShow","reverseContentDirection","drawerType","drawerLockMode","_native","route","StateUtils","routes","preserveIndex","validateFormat","getChildrenNavigationCache","getNavigationActionCreators","getChildNavigation","navigation","getCurrentNavigation","actionSubscribers","actionCreators","actionName","NavigationActions","action","getChildRouter","childRoute","childRouter","parentNavigation","getEventManager","actionHelpers","createParamGetter","childKey","getCurrentParentNavigation","nav","isFirstRouteInParent","paramName","childKeys","childrenNavigationCache","removeListener","ThemeContext","Navigator","NavigationFocusEvents","NavigatorView","_extends","navigationConfig","screenProps","prevDescriptors","router","NavigationEventManager","lastState","SwitchRouter","createNavigator","SwitchView","validateRouteConfigMap","defaultActionCreators","initialRouteName","createPathParser","childRouters","createConfigGetter","routeConfigs","routeName","initialRouteParams","getParamsForRoute","resetOnBlur","resetChildRoute","backBehavior","keyToAdd","order","initialRouteIndex","getScreenForRouteName","getCustomActionCreators","inputState","getInitialState","SwitchActions","activeChildIndex","newChildState","getNextState","StackActions","getPathAndParamsForRoute","getActionForPathAndParams","isValidElementType","routeConfig","applyConfig","navigatorScreenConfig","validateScreenOptions","deprecatedKey","deprecatedKeys","routeNames","getScreenComponent","pathMatchKeys","decodedMatchResult","searchMatch","queryString","determineDelimiter","_ref3$paths","pathsByRouteNames","pathConfigs","disableRouteNamePaths","pathPattern","isPathMatchable","pathToRegexp","isWildcard","compile","paths","exactRe","extendedPathRe","getRestOfPath","getParamsFromPath","nonPathParams","subPath","exactReKeys","PATH_REGEXP","modifier","asterisk","escapeString","escapeGroup","tokensToFunction","opts","encodeURIComponentPretty","tokens","encodeAsterisk","isarray","token","matches","j","attachKeys","tokensToRegExp","endsWithDelimiter","strict","stringToRegexp","arrayToRegexp","regexpToRegexp","isEncodedArray","strictUriEncode","decodeComponent","keysSorter","removeHash","queryStart","validateArrayFormatSeparator","parserForArrayFormat","splitOnFirst","parseValue","ret","encoderForArrayFormat","isNullOrUndefined","formatter","url_","getHash","filterObject","filter","decodeComponents","singleMatcher","multiMatcher","customDecodeURIComponent","separatorIndex","predicate","SceneView","NavigationContext","stackConfig","behavesLikePushAction","initialChildRouter","generateKey","newKey","actions","navStateKey","isResetToRootStack","nextRouteState","backRouteIndex","immediate","getParamsForRouteAndAction","lastRouteIndex","newStackAction","uniqueBaseId","uuidCount","withDefaultValue","withNavigation","NavigationEvents","EventNameToPropName","propListener","hoistStatics","ComponentWithNavigation","navigationProp","ComponentWithNavigationFocus","pathUtils","isStateful","persistNavigationState","loadNavigationState","NavigationContainer","validateProps","BackHandler","urlToPathAndParams","_ref2","reducedState","navState","lastNavState","dispatchActionEvents","_componentDidMount","_statefulContainerCount","dispatchActions","_getStartupParams","_reactNavigationIsHydratingState","getNavigation","ThemeProvider","NavigationProvider","KeyboardAwareNavigator","TextInput","navigatorConfig","onTransitionStart","_class","NavigationAwareScrollable","ComponentWithNavigationScrolling","hoistNonReactStatic","withOrientation","isOrientationLandscape","WrappedComponent","ResourceSavingSceneView","awake","D_HEIGHT","D_WIDTH","isIPhoneX","isNewIPadPro","isLandscape","statusBarHeight","_customStatusBarHeight","isIPad","_customStatusBarHidden","SafeView","getResolvedDimensions","HEIGHT","realY","WIDTH","realX","newOrientation","touchesTop","touchesBottom","touchesLeft","touchesRight","forceInset","_StyleSheet$flatten$p","_StyleSheet$flatten$p2","_StyleSheet$flatten$p3","_StyleSheet$flatten$p4","_StyleSheet$flatten$p5","_StyleSheet$flatten$p6","_StyleSheet$flatten$p7","doubleFromPercentString","getInset","withSafeArea","SafeAreaView","createNavigationAwareScrollable","WrappedScrollView","propsMaybeWithRefreshControl","ThemedText","ThemeColors","ThemedTextInput","ThemedStatusBar","barStyle","throwError","_index","screen","topOffset","isIphoneX","conditional","dimen","ifIphoneX","safe","layouts","TransitionIOSSpec","forHorizontalIOS","forFade","forVerticalIOS","forModalPresentationIOS","FadeInFromBottomAndroidSpec","FadeOutToBottomAndroidSpec","forFadeFromBottomAndroid","RevealFromBottomAndroidSpec","forRevealFromBottomAndroid","ScaleFromCenterAndroidSpec","forScaleFromCenterAndroid","GestureHandlerRootView","it","StackView","gestureEnabled","closingRouteKeys","replacingRouteKeys","HeaderContainer","descriptors","_this$props4$mode","_this$props4$headerMo","GestureHandlerWrapper","SafeAreaProviderCompat","SafeAreaConsumer","KeyboardManager","keyboardHandlingEnabled","HeaderShownContext","CardStack","insets","openingRouteKeys","headerMode","rest","isArrayEqual","previousRoutes","nextFocusedRoute","previousFocusedRoute","isAnimationEnabled","_SafeAreaContext","_SafeAreaView","_InitialWindow","_SafeArea","useParentSafeAreaInsets","useParentSafeAreaFrame","initialMetrics","_NativeSafeAreaProvider","SafeAreaFrameContext","SafeAreaInsetsContext","setFrame","setInsets","NO_INSETS_ERROR","useSafeAreaInsets","_NativeSafeAreaView","edges","NativeSafeAreaContext","initialWindowMetrics","GestureHandlerRefContext","PanGestureHandlerNative","_defineProperty3","_ref$options","_options$headerStatus","isParentHeaderShown","getDefaultHeaderHeight","layout","_ref2$gestureDirectio","DefaultTransition","ModalTransition","getDistanceForDirection","getDistanceFromOptions","_Dimensions$get$heigh","_Dimensions$get$width","getHeaderHeights","previousRoute","scene","_this$props$detachIna","shouldUseActivityState","focusedDescriptor","forNoAnimationHeader","focusedOptions","_ref6$top","_ref6$right","_ref6$bottom","_ref6$left","scenes","_scenes$i$descriptor$","isFloatHeaderAbsolute","MaybeScreenContainer","detachInactiveScreens","_options$headerShown","focusedRoute","activeScreensLimit","sceneForActivity","_ref7$headerShown","_ref7$gestureDirectio","defaultTransitionPreset","_ref7$transitionSpec","_ref7$cardStyleInterp","animationEnabled","forNoAnimationCard","_ref7$headerStyleInte","nextScene","_ref8$gestureDirectio","_ref8$transitionSpec","_ref8$cardStyleInterp","_ref8$headerStyleInte","safeAreaInsets","_ref9$top","_ref9$right","_ref9$bottom","_ref9$left","headerHeights","MaybeScreen","CardContainer","onPageChangeStart","onPageChangeConfirm","onPageChangeCancel","onGestureStart","onGestureCancel","onGestureEnd","renderHeader","renderScene","onOpenRoute","onCloseRoute","onTransitionEnd","getGesturesEnabled","nextRoute","oldScene","FALLBACK_DESCRIPTOR","getProgressFromGesture","nextGesture","previousGesture","WebScreen","Screens","AnimatedWebScreen","InnerScreen","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","isPlatformSupported","version","ENABLE_SCREENS","_reactFreeze","freeze","setFreezeState","ScreensNativeModules","ENABLE_FREEZE","DelayedFreeze","freezeEnabled","size","_props$enabled","_excluded5","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","NativeSearchBar","NativeFullWindowOverlay","_this$props$freezeOnB","_excluded4","activityState","AnimatedNativeScreen","freezeOnBlur","gestureResponseDistance","_TransitionProgressContext","Screen","promiseCache","_ref2$placeholder","Suspender","TransitionProgressContext","memoize","_props$headerTitleAli","_props$headerLeft","onGoBack","_props$headerStatusBa","customHeaderStyle","_StyleSheet$flatten$h","previousTitle","leftLabel","headerBackground","headerTransparent","HeaderBackground","leftButton","headerTitleAlign","rightButton","setTitleLayout","leftLabelLayout","setLeftLabelLayout","HeaderBackButton","headerHeight","_ref$labelVisible","_ref$truncatedLabel","_ref$accessibilityLab","label","useTheme","customTintColor","customPressColorAndroid","dark","TouchableItem","shouldTruncateLabel","screenLayout","leftLabelText","tintColor","MaskedView","onLabelLayout","setInitialLabelWidth","initialLabelWidth","titleLayout","isMaskedViewAvailable","RNCMaskedView","useThemeBase","theme","headerShown","Card","focused","hasAbsoluteHeader","PreviousSceneContext","HeaderHeightContext","setPointerEvents","EPSILON","getInvertedMultiplier","closing","spec","onTransition","useNativeDriver","onOpen","onClose","GestureState","translation","distance","gestureDirection","onGestureCanceled","onGestureBegin","contentStyle","Color","CardAnimationContext","overlayEnabled","hasOpacityStyle","PanGestureHandler","shadowEnabled","CardSheet","skippedModels","model","hashedModelKeys","hashedKeys","zeroArray","_slice","colorString","limiters","roundTo","places","channel","roundToPlace","rgb","chan","lum2","lum1","contrastRatio","yiq","hsl","hwb","hue","weight","color1","w1","w2","color2","channels","assertArray","cs","colorNames","hexAlpha","i2","swizzle","hexDouble","rgba","hsla","reverseNames","isArrayish","slice","conversions","fromModel","wrapRounded","wrapRaw","bdif","reverseKeywords","cssKeywords","comparativeDistance","t2","t1","lmin","sv","hsv","sl","wh","cmyk","xyz","z2","hr","rem","integer","chroma","grayscale","hcg","hi","apple","buildGraph","graph","link","deriveBFS","wrapConversion","setFill","_ref2$headerShown","getPreviousScene","parentPreviousScene","previousScene","_ref3$headerShown","_ref4$headerShown","previousHeaderShown","nextHeaderShown","forNoAnimation","isHeaderStatic","styleInterpolator","forSlideLeft","forSlideRight","forSlideUp","onContentHeightChange","Header","debounce","HeaderSegment","HeaderTitle","getStatusBarHeight","getBottomSpace","initialWindowSafeAreaInsets","SafeAreaProvider","initialSafeAreaInsets","StackGestureRefContext","StackRouter","StackViewBase","validateDeprecatedConfig","validateDeprecatedOptions","originalDescriptors","validations","compat","texts","AsyncStorage","setup","setInterval","clearInterval","interval","_reactNativeSafeAreaView","_Button","storeWrongAnswers","_Banner","examQuestions","trueFalseQuestions","RCTAsyncStorage","convertError","checkValidInput","convertErrors","errs","getRequests","getRequest","keyValuePairs","SafeAreaContext","shallowEquals","getKeys","_ref$subtitle","_ref$isBig","_ref$colorize","_ref$noPadding","_ref$noBorder","_ref$halfSize","_ref$hasShadow","_ref$hasBg","_ref$onPress","isBig","colorize","noPadding","noBorder","halfSize","isClicked","hasShadow","bgImage","_ref2$isBoxed","isBoxed","_types","Module","MobileAdsModule","validateAdRequestConfiguration","MobileAdsInstance","_nativeModule","AppModule","SharedEventEmitter","getNativeModule","argToPrepend","NativeError","jsStack","namespace","nativeModuleMethodWrapped","nativeModuleKey","multiModule","getMissingModuleHelpText","nativeModuleWrapped","subscribeToNativeModuleEvent","NATIVE_MODULE_REGISTRY","NATIVE_MODULE_EVENT_SUBSCRIPTIONS","GoogleMobileAdsNativeEventEmitter","newInstance","initialiseNativeModule","userInfo","GANativeEventEmitter","RNAppModule","originalRemove","Emitter","Base64","ranOnce","onceResult","string","_validate","_path","_promise","CHARS","bc","bs","promiseDefer","fileReader","AlphaNumericUnderscore","IS_VALID_URL_REGEX","lastPushTime","PUSH_CHARS","lastRandChars","AUTO_ID_CHARS","pathPieces","$","pathString","INVALID_PATH_REGEX","ReferenceBase","MaxAdContentRating","isPropertySet","AdsConsentDebugGeography","_getTCModel","TCString","_getUserChoices","TCModel","AdsConsentSpecialFeatures","AdsConsentPurposes","__createBinding","index_js_1","__extends","__values","RestrictionType_js_1","BinarySearchTree_js_1","PurposeRestriction_js_1","Segment_js_1","_a","__generator","index_js_2","index_js_4","BitLength_js_1","Base64Url_js_1","index_js_3","Fields_js_1","IntEncoder_js_1","DateEncoder_js_1","LangEncoder_js_1","BooleanEncoder_js_1","FixedVectorEncoder_js_1","VendorVectorEncoder_js_1","PurposeRestrictionVectorEncoder_js_1","VectorEncodingType_js_1","_","__awaiter","Json_js_1","GVL_js_1","TCModel_js_1","MobileAd","AppOpenAd","validateAdRequestOptions","MobileAds","isValidUrl","AdEventType","RewardedAdEventType","GAMAdEventType","payload","isOneOf","validateAdShowOptions","InterstitialAd","RewardedAd","RewardedInterstitialAd","_BaseAd","GAMBannerAdSize","sizes","GoogleMobileAdsBannerView","unitId","requestOptions","BannerAdSize","sizeRegex","GAMBannerAd","createRef","GAMInterstitialAd","useDeepCompareEffect","useFullScreenAd","setAppOpenAd","adUnitId","React__namespace","dequal","useDeepCompareMemoize","foo","bar","find","initialState","ad","setState","unsubscribe","setInterstitialAd","setRewardedAd","setRewardedInterstitialAd","_AdapterStatus","_AdEventListener","_AdEventsListener","_AdsConsent","_AdShowOptions","_AdStates","_BannerAdProps","_RequestConfiguration","_RequestOptions","_RewardedAdReward","_AppEvent","aerodynamicsQuestions","firstAidQuestions","flightSafetyQuestions","instrumentsQuestions","legislationQuestions","materialsQuestions","meteorologyQuestions","physiopathologyQuestions","pilotingTechniquesQuestions","examScheme","setupData","allQuestions","currentSection","tmpQuestions","currentIndex","fullQuestions","_RowItem","question","correct","updatedIndexes","updatedQuestions","nextId","resultsShow","questionId","questions","_picker","answer","PickerItem","Picker","_PickerWindows","_PickerAndroid","_PickerMacOS","_PickerIOS","UnimplementedView","PickerMacOS","_UnimplementedView","randomAnswer","currentResults","percentage","wrongAnswers","pkg","resultsScheme","alphabeth","numbers","abbreviations","newState","NativePlatformConstantsAndroid","DynamicallyInjectedByGestureHandler","_requestId","NativeNetworkingAndroid","convertRequestBody","generateRequestId","convertHeadersMapToArray","emptyCallback","_backPressSubscriptions","NativeDeviceEventManager","_ref$styleAttr","_ref$indeterminate","_ProgressBarAndroidNativeComponent","ImageInjection","NativeImageLoaderAndroid","failure","success","prefetch","_queryCache","getImageSourcesFromImageProps","_source$width","_source$height","onLoadStart","defaultSource","loadingIndicatorSource","convertObjectFitToResizeMode","objectFit","_ImageAnalyticsTagContext","analyticTag","_ImageViewNativeComponent","nativePropsWithAnalytics","resizeMode","_TextInlineImageNativeComponent","sources","forwardedRef","DummyDatePickerIOS","DrawerLayoutAndroid","DRAWER_STATES","_this$props$drawerBac","drawStatusBar","_StatusBar","_AndroidDrawerLayoutNativeComponent","DummyProgressViewIOS","NativeToastAndroid","maybeInitializeFabric","GestureHandlerRootViewNativeComponent","background","_GestureHandlerNative","_ref$borderless","_ref$pressColor","ANDROID_VERSION_LOLLIPOP","MODE_DROPDOWN","AndroidDialogPickerNativeComponent","AndroidDropdownPickerNativeComponent","selected","pickerRef","_child$props$enabled","_child$props$style"],"mappings":"A,4B,M,K,M,K,I,I,Q,I,E,Q,M,K,G,E,U,M,K,K,M,G,E,M,K,M,K,M,M,M,MAkYC,MAAA,OAAA,IAAA,MAAA,GAAA,IAAA,MAAA,MAAA,IAAAA,MAAA,EAAAC,MAAA,EAAAC,M,OAAA,KCoPA,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,MAAA,MAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,KChgB8B,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,MAAA,GAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,KC7D1B,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,MAAA,GAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,K,M,OCrDsB,Q,O,M,QCC2F,I,O,M,QC2BrH,Q,O,M,QCDA,Q,O,M,QCpBA,Q,O,M,QCqKuB,Q,O,M,QCjKuF,Q,O,M,QCTD,Q,O,M,QCGP,I,O,M,QCEK,Q,O,M,QCKY,Q,O,M,QCJK,I,O,M,QCMrE,Q,O,M,QCkbtD,Q,O,M,QCpZyB,I,O,M,QCjBD,I,O,M,QCsYM,Q,O,M,QC9YE,Q,O,M,QC0HjC,Q,O,M,QC1IiH,Q,O,M,QCHA,Q,O,M,QCCD,I,O,M,QCFD,I,O,M,QCMW,Q,O,M,QCNT,I,O,M,QCEH,I,O,M,QCaH,Q,O,M,QCOnE,Q,O,M,QCsFxC,Q,O,M,QC9E+C,Q,O,M,QCwC9C,Q,O,M,QC9C6B,Q,O,M,QCqcD,Q,O,M,QCtW7B,I,O,M,QCjCkD,I,O,M,QCoCvB,Q,O,M,QCrGsB,I,O,M,QCiOhD,Q,O,M,QCxOuG,Q,O,M,QCVM,I,O,M,QCGW,Q,O,M,QCJJ,I,O,M,QCAP,I,O,M,QCwBC,Q,O,M,QC3BC,I,O,M,QCcP,Q,O,M,QCNe,I,O,M,QC+CxF,Q,O,M,QC8D/B,I,O,M,QCmBoB,I,O,M,QCrCU,Q,O,M,QCtD/B,Q,O,M,QCgK8B,Q,O,M,QCzM+E,Q,O,M,QCJC,I,O,M,QCwBM,I,O,M,QCxBL,I,O,M,QC8DtE,I,O,M,QCzCT,Q,O,M,QCwG/B,Q,O,M,QCqFA,Q,O,M,QCuhB8C,Q,O,M,QCplB/C,Q,O,M,QC2C6C,Q,O,M,QCxCF,Q,O,M,QC7FR,Q,O,M,QCHN,Q,O,M,QC1BE,Q,O,M,QC2aA,I,O,M,QC/aI,I,O,M,QCyPF,Q,O,M,QC7PL,I,O,M,QCoFO,Q,O,M,QCsDC,Q,O,M,QCrCT,Q,O,M,QCGA,Q,O,M,QCvEG,Q,O,M,QCX9B,Q,O,M,QCqCC,I,O,M,QC/C6C,I,O,M,QCFhB,Q,O,M,QCDI,Q,O,M,QCKL,I,O,M,QCWE,I,O,M,QCxBF,I,O,M,QCYH,Q,O,M,QC2HzB,Q,O,M,QCvID,I,O,M,QCmK4B,Q,O,M,QCrEsC,Q,O,M,QCvDjE,I,O,M,QCgED,Q,O,M,QCzGoC,Q,O,M,QC6BpC,Q,O,M,QC6GA,Q,O,M,QChHA,Q,O,M,QC9CA,Q,O,M,QCqB2F,I,O,M,QCGxD,Q,O,M,QCYe,Q,O,M,QC4HqB,Q,O,M,QChE5C,I,O,M,QC9DE,I,O,M,QCuBM,Q,O,M,QCIiC,Q,O,M,QC3BvC,Q,O,M,QCPJ,Q,O,M,QC+ME,Q,O,M,QCkgQ1B,Q,O,M,QCtuQ8B,Q,O,M,QC6CwB,Q,O,M,QCxBvD,I,O,M,QCNA,I,O,M,QCOA,Q,O,M,QCKA,Q,O,M,QCkByD,Q,O,M,QCjCjC,Q,O,M,QCmKvB,Q,O,M,QC2BD,I,O,M,QCrMC,Q,O,M,QC4BD,Q,O,M,QCbyD,I,O,M,QC0tBzD,I,O,M,QClpBA,Q,O,M,QCgYiC,Q,O,M,QC7cqB,Q,O,M,QCyCxB,I,O,M,QC1B9B,I,O,M,QCAC,Q,O,M,QCknB8B,Q,O,M,QCzoBoE,Q,O,M,QCTU,Q,O,M,QC6KjF,Q,O,M,QC3HG,Q,O,M,QCwFV,Q,O,M,QC7GpB,I,O,M,QCduC,Q,O,M,QCgTxC,Q,O,M,QCpTwB,I,O,M,QCuBW,Q,O,M,QCZJ,Q,O,M,QCuH/B,I,O,M,QCpDyB,Q,O,M,QCowBgC,I,O,M,QCn1BL,Q,O,M,QCylBhD,I,O,M,QCnUsB,Q,O,M,QChLxB,Q,O,M,QCvFF,Q,O,M,QCP+B,Q,O,M,QC4BV,Q,O,M,QCwGM,Q,O,M,QCzI3B,Q,O,M,QCkHE,Q,O,M,QCVqC,Q,O,M,QCvGvC,Q,O,M,QCuJsB,Q,O,M,QC9H8C,Q,O,M,QC3BH,Q,O,M,QCsCjE,Q,O,M,QC9B4B,Q,O,M,QCVkC,Q,O,M,QCoB7B,Q,O,M,QCpBkC,Q,O,M,QCoC5C,Q,O,M,QCrCkB,Q,O,M,QCYP,I,O,M,QC+DA,Q,O,M,QCjEqC,Q,O,M,QC0U3C,Q,O,M,QC1NC,Q,O,M,QCxHyB,Q,O,M,QCCM,Q,O,M,QCkI9B,I,O,M,QC7GD,I,O,M,QCVJ,I,O,M,QCrB4B,Q,O,M,QCSgB,Q,O,M,QCmFrE,Q,O,M,QCtEsC,Q,O,M,QCgHT,Q,O,M,QCvBR,Q,O,M,QClGe,Q,O,M,QCkIpC,I,O,M,QCpDiC,Q,O,M,QCjGjC,Q,O,M,QCM2W,Q,O,M,QC8W1W,Q,O,M,QC9VD,Q,O,M,QCQA,I,O,M,QC9BA,Q,O,M,QCcgK,I,O,M,QCOjH,Q,O,M,QC04QC,Q,O,M,QCn4QiB,Q,O,M,QC6KxB,Q,O,M,QCzJxC,Q,O,M,QCsBmC,Q,O,M,QC3CG,Q,O,M,QCIS,Q,O,M,QC8YX,Q,O,M,QC/HhB,Q,O,M,QC9NrB,Q,O,M,QC3DA,I,O,M,QCwBA,Q,O,M,QCg5BA,Q,O,M,QC76B6B,Q,O,M,QCC+B,Q,O,M,QCsCpB,I,O,M,QCJxC,Q,O,M,QCP0D,Q,O,M,QCgC7C,Q,O,M,QC9CZ,Q,O,M,QC6C6B,Q,O,M,QCxDe,Q,O,M,QCL7C,Q,O,M,QC8CC,Q,O,M,QCrDoC,I,O,M,QC6DG,Q,O,M,QCjCJ,Q,O,M,QCQU,Q,O,M,QC6EJ,Q,O,M,QCjGG,Q,O,M,QCQA,Q,O,M,QCYA,Q,O,M,QC4BU,Q,O,M,QCgFf,Q,O,M,QCxBI,Q,O,M,QC7EC,Q,O,M,QCjCf,Q,O,M,QC4Ne,Q,O,M,QCzIL,Q,O,M,QCcK,Q,O,M,QCkPL,Q,O,M,QCtCd,Q,O,M,QCpRd,Q,O,M,QCisBZ,Q,O,M,QCrfE,Q,O,M,QCqVF,Q,O,M,QCvgBoE,Q,O,M,QCEpE,Q,O,M,QCY8D,Q,O,M,QC4H3B,Q,O,M,QC7BT,Q,O,M,WC6H4B,Q,O,M,WCjSO,Q,O,M,WCoL3D,Q,O,M,WClK8D,Q,O,M,WCEZ,Q,O,M,WCiDlD,Q,O,M,WCLmD,Q,O,M,WC4BS,Q,O,M,WCZ9D,I,O,M,WCtCqD,Q,O,M,WC8LjC,Q,O,M,WCtFpB,I,O,M,WC8GwB,Q,O,M,WC3MS,I,O,M,WCvBjC,Q,O,M,WC1BsD,Q,O,M,WCDQ,Q,O,M,WCFI,Q,O,M,WCED,Q,O,M,WCDC,Q,O,M,WCCD,Q,O,M,WCDF,Q,O,M,WCCQ,Q,O,M,WCAH,Q,O,M,WCDX,Q,O,M,WC+KzD,Q,O,M,WCzKA,Q,O,M,WCqpByB,Q,O,M,WCyqCvB,Q,O,M,WC7oD6B,Q,O,M,WCjI/B,Q,O,M,WCHC,Q,O,M,WCixD4B,Q,O,M,WCtwDG,Q,O,M,WCzD+B,Q,O,M,WC8C/D,I,O,M,WClDgC,Q,O,M,WCwLW,Q,O,M,WCLX,Q,O,M,WCpLgC,Q,O,M,WCMhE,Q,O,M,WCsCwD,Q,O,M,WClChB,Q,O,M,WCEM,Q,O,M,WCoB7C,Q,O,M,WC9BgE,Q,O,M,WC8I1B,Q,O,M,WCiJa,Q,O,M,WCzQpD,Q,O,M,WCgC4B,Q,O,M,WCrDN,I,O,M,WCmIpB,Q,O,M,WCnFA,Q,O,M,WCsL6B,Q,O,M,WCnOH,Q,O,M,WC8UM,Q,O,M,WCrGhC,Q,O,M,WC/IF,Q,O,M,WC8IA,Q,O,M,WC/M2B,I,O,M,WChC3B,Q,O,M,WCYgH,I,O,M,WCT3F,Q,O,M,WCOrB,Q,O,M,WC2HsC,Q,O,M,WCrGT,Q,O,M,WC6B7B,Q,O,M,WC3DA,I,O,M,WCyGgC,Q,O,M,WC8EhC,Q,O,M,WC/JA,Q,O,M,WCnBA,Q,O,M,WCsJ4B,Q,O,M,WCub1B,Q,O,M,WCplBF,Q,O,M,WCF4C,Q,O,M,WC+FZ,Q,O,M,WCIG,Q,O,M,WC1FlC,Q,O,M,WCkOiC,Q,O,M,WCuDJ,Q,O,M,WCpS9B,I,O,M,WCM4D,Q,O,M,WCsH3D,Q,O,M,WCxEA,Q,O,M,WCzC0D,Q,O,M,WC4U7B,Q,O,M,WC1P9B,Q,O,M,WCzEuB,Q,O,M,WCVtB,Q,O,M,WCiQ6B,Q,O,M,WClO7B,Q,O,M,WCwbyB,Q,O,M,WC5aU,Q,O,M,WCqBA,Q,O,M,WCqKA,Q,O,M,WChMnC,Q,O,M,WCDA,Q,O,M,WCkmD0D,Q,O,M,WChpDO,I,O,M,WC8BjB,Q,O,M,WC05BvB,Q,O,M,WC15BS,Q,O,M,WCwFP,Q,O,M,WClGH,Q,O,M,WCmWC,Q,O,M,WCtKe,Q,O,M,WCpEV,Q,O,M,WCtGmC,Q,O,M,WCwCjE,Q,O,M,WCnF2C,I,O,M,WCwBc,Q,O,M,WC6Ff,Q,O,M,WCrGlB,I,O,M,WCEwC,Q,O,M,WCWhE,Q,O,M,WCnBiE,Q,O,M,WCRjC,Q,O,M,WC2DL,Q,O,M,WCvCwC,Q,O,M,WCuG3B,Q,O,M,WC1GoB,Q,O,M,WCHC,Q,O,M,WC0O5B,Q,O,M,WCkUL,Q,O,M,WC9aI,I,O,M,WCkJU,Q,O,M,WC/NuB,Q,O,M,WCue9B,Q,O,M,WCpepC,Q,O,M,WC6FsB,Q,O,M,WCrJqC,Q,O,M,WCE3D,Q,O,M,WCCA,Q,O,M,WCrBA,Q,O,M,WCMgL,Q,O,M,WCoChL,Q,O,M,WCO4B,Q,O,M,WC2DF,Q,O,M,WCzFwC,Q,O,M,WCmDhE,Q,O,M,WCHE,Q,O,M,WCf4B,Q,O,M,WCEhC,Q,O,M,WClBsB,Q,O,M,WCpCa,I,O,M,WCAyB,Q,O,M,WCCxB,Q,O,M,WCEc,Q,O,M,WCKJ,Q,O,M,WCXc,Q,O,M,WC4C5D,Q,O,M,WCqEG,I,O,M,WChGH,Q,O,M,W,I,O,M,WCJ+C,I,O,M,WC6B/C,Q,O,M,WCVmD,I,O,M,WC3BpB,Q,O,M,WCM/B,I,O,M,WCV4E,Q,O,M,WCwC/C,Q,O,M,WCxCD,Q,O,M,WCkB5B,Q,O,M,WCCoB,Q,O,M,WCTqC,Q,O,M,WCuEzD,Q,O,M,WC6bsB,I,O,M,WC4DF,Q,O,M,WCviBnB,I,O,M,WCgF0B,I,O,M,WCpHM,Q,O,M,WC8EjC,Q,O,M,WCkUO,I,O,M,WChZ2B,Q,O,M,WCmnByB,Q,O,M,WC7mBtC,Q,O,M,WCqGF,Q,O,M,WC3EnB,I,O,M,WCR4B,I,O,M,WCGT,Q,O,M,WCnBS,Q,O,M,WCUA,I,O,M,WCyBW,I,O,M,WCPvC,Q,O,M,WCfA,Q,O,M,WCWA,Q,O,M,WChCgC,Q,O,M,WC6BhC,Q,O,M,WC7BsC,Q,O,M,WCiKtC,Q,O,M,WCjK+C,Q,O,M,WCyCV,I,O,M,WCOrC,Q,O,M,WCpBA,Q,O,M,WCQA,I,O,M,WCjCA,I,O,M,WC+F2C,Q,O,M,WC8D/B,Q,O,M,WChJZ,Q,O,M,WCyIA,Q,O,M,WCjJU,I,O,M,WCHA,I,O,M,WCgDV,Q,O,M,WCYA,Q,O,M,W,I,O,M,WCLC,Q,O,M,WCTY,Q,O,M,WCtCS,Q,O,M,WCFO,Q,O,M,WCorB7B,Q,O,M,WC7rBsD,Q,O,M,WCS1B,Q,O,M,WCsC5B,Q,O,M,WC9BA,Q,O,M,WCyGA,Q,O,M,WCgGE,Q,O,M,WCpN6D,Q,O,M,WC4B/D,Q,O,M,WCnCA,I,O,M,WCiDA,Q,O,M,WCzB8D,Q,O,M,WC6H9D,Q,O,M,WCrHkC,Q,O,M,WCoElC,Q,O,M,WC9CA,Q,O,M,WCFA,Q,O,M,WCiBA,Q,O,M,WCgBA,Q,O,M,WC/CsD,Q,O,M,WCNtD,Q,O,M,WCoBA,Q,O,M,WCtBA,Q,O,M,WCWA,I,O,M,WCIuC,Q,O,M,WCEe,Q,O,M,WCEX,Q,O,M,WCowDnB,I,O,M,WCrvDtB,Q,O,M,WCvD0B,Q,O,M,WC6CF,Q,O,M,WC7C+B,Q,O,M,WCwHvD,Q,O,M,WC9HmB,Q,O,M,WCJC,Q,O,M,WC8GpB,Q,O,M,WC9EF,Q,O,M,W,I,O,M,WC6B8B,I,O,M,WCY1B,Q,O,M,WC6SJ,Q,O,M,WCtHA,Q,O,M,WC2CA,Q,O,M,WC0XA,Q,O,M,WCxjBA,Q,O,M,WCoOkC,Q,O,M,WC7GhC,Q,O,M,WCzNyB,Q,O,M,WCiB3B,Q,O,M,WCAA,Q,O,M,WCRA,Q,O,M,WCwCA,Q,O,M,WC9BA,Q,O,M,WCiGuD,Q,O,M,WC2CvD,I,O,M,WC/EyB,Q,O,M,WC6ET,Q,O,M,WCvKyE,Q,O,M,WC8CxF,I,O,M,WCjCoD,Q,O,M,W,I,O,M,WCsJrD,Q,O,M,WCzBA,Q,O,M,WCpDA,Q,O,M,WC6BA,Q,O,M,WCpBA,Q,O,M,WC5F0B,Q,O,M,WCAA,Q,O,M,WCAM,Q,O,M,WCAL,Q,O,M,WC8CK,Q,O,M,WCtB/B,Q,O,M,WCEiB,Q,O,M,WCSlB,Q,O,M,WCaA,Q,O,M,WCoBA,Q,O,M,WC4HA,Q,O,M,WCtKuB,Q,O,M,WC4HtB,Q,O,M,WC2CD,Q,O,M,WC7LA,Q,O,M,WC2GA,Q,O,M,WC7G8C,Q,O,M,WCG9C,Q,O,M,WCoCA,Q,O,M,WC/BA,Q,O,M,WCLA,Q,O,M,WCmDA,Q,O,M,WChDA,Q,O,M,WC+BuC,Q,O,M,WCjCV,Q,O,M,WCkB8B,Q,O,M,W,I,O,M,WChB3D,Q,O,M,WC+hBA,Q,O,M,WCvhBA,Q,O,M,WC+NC,Q,O,M,WCtID,Q,O,M,WCFA,Q,O,M,WC5DA,Q,O,M,WCnBA,Q,O,M,WCyGA,Q,O,M,WClDA,Q,O,M,WCrCA,Q,O,M,WCyCA,Q,O,M,WCjDA,Q,O,M,WCDE,Q,O,M,WC4EA,Q,O,M,WChFF,Q,O,M,WCoHwB,I,O,M,WClHxB,Q,O,M,WC+KA,Q,O,M,WCkDC,Q,O,M,WClMA,Q,O,M,WChEmC,Q,O,M,WCgBd,Q,O,M,WCsEpB,Q,O,M,WC/E8D,Q,O,M,WCiL9D,Q,O,M,W,I,O,M,WClLoB,Q,O,M,WCqbU,Q,O,M,WC1VA,Q,O,M,WCsNA,Q,O,M,WCnDA,Q,O,M,WCwRA,Q,O,M,WClEA,Q,O,M,WCpUA,Q,O,M,WCnGA,Q,O,M,WCuRA,Q,O,M,WCxNA,Q,O,M,WChHK,Q,O,M,WC0CC,Q,O,M,WCvCT,Q,O,M,WCAA,Q,O,M,WCAA,Q,O,M,WCCA,Q,O,M,WCsN7B,Q,O,M,WCpMA,Q,O,M,WCsBoC,Q,O,M,WC5C1B,I,O,M,WC0BR,Q,O,M,WCuEmC,Q,O,M,WClGrC,Q,O,M,WCUoU,I,O,M,WC+ElU,Q,O,M,WCyaF,Q,O,M,WCpewB,Q,O,M,WCPI,Q,O,M,WCuDI,Q,O,M,WCxDV,Q,O,M,WCKI,Q,O,M,WCnBK,I,O,M,WCsBC,Q,O,M,WCdH,Q,O,M,WCgBV,I,O,M,WClBU,Q,O,M,WCHA,Q,O,M,WCUA,Q,O,M,WCXF,Q,O,M,WCGC,I,O,M,WCJH,I,O,M,WCAA,I,O,M,WCoBA,Q,O,M,WC3BL,Q,O,M,WCUM,Q,O,M,WC8BG,Q,O,M,WCVF,Q,O,M,WCTA,Q,O,M,WCtBJ,Q,O,M,WCGF,Q,O,M,WCLM,I,O,M,WC0CD,Q,O,M,WCxBK,I,O,M,WCSN,I,O,M,WCXA,Q,O,M,WCdE,Q,O,M,WCoBF,I,O,M,WCbA,I,O,M,WCmBA,Q,O,M,WCXK,Q,O,M,WCWT,Q,O,M,WCjBK,Q,O,M,WCTG,Q,O,M,WCWF,I,O,M,WCaH,Q,O,M,WCPA,Q,O,M,WCAA,Q,O,M,WCLO,Q,O,M,WCAJ,Q,O,M,WCHD,I,O,M,WCCE,Q,O,M,WCAA,Q,O,M,WCMA,Q,O,M,WC8DA,Q,O,M,WCzDH,Q,O,M,WCRG,I,O,M,WCLA,I,O,M,WCSF,I,O,M,WCVD,I,O,M,WCmGE,Q,O,M,WC1GA,Q,O,M,WCYA,I,O,M,WCAA,I,O,M,WCwEE,Q,O,M,WC1EF,Q,O,M,WCII,Q,O,M,WCAL,I,O,M,WCMF,I,O,M,WCIG,Q,O,M,WCLC,I,O,M,WCFF,I,O,M,WCcL,Q,O,M,WCYS,Q,O,M,WC7BJ,I,O,M,WCgBE,Q,O,M,WClBI,Q,O,M,WCWH,I,O,M,WCSJ,Q,O,M,WCpBC,I,O,M,WCOF,I,O,M,WCEK,Q,O,M,WCiCI,Q,O,M,WCzBR,I,O,M,WCrBC,I,O,M,WCgBD,Q,O,M,WCAA,Q,O,M,WCZG,I,O,M,WCZD,Q,O,M,WCSH,I,O,M,WCkBI,Q,O,M,WCyBL,Q,O,M,WCnDE,Q,O,M,WCAD,Q,O,M,WCAJ,Q,O,M,WCAI,Q,O,M,WCuMxB,Q,O,M,WCxMU,I,O,M,WCJmF,Q,O,M,WCwF5C,Q,O,M,WClF9B,Q,O,M,WCgFjB,Q,O,M,WC6OF,Q,O,M,WCrRE,Q,O,M,WCAA,Q,O,M,WCWA,Q,O,M,WCqBF,Q,O,M,WCzBE,Q,O,M,WC0uB6E,Q,O,M,WCve3D,Q,O,M,WCpSpB,Q,O,M,WCnByF,Q,O,M,WCwBzF,Q,O,M,WCoDC,Q,O,M,WCxE2C,Q,O,M,WCwBc,Q,O,M,WCiEN,Q,O,M,WCzFJ,Q,O,M,WC2BG,Q,O,M,WCNE,Q,O,M,WCAG,Q,O,M,WCrBd,Q,O,M,WCAG,Q,O,M,WCKS,Q,O,M,WCiSpD,Q,O,M,WCnSiD,Q,O,M,WCQwB,Q,O,M,WCdP,Q,O,M,WCQ9B,Q,O,M,WCgEpC,Q,O,M,WCjDmB,Q,O,M,WCQI,Q,O,M,WC+GD,Q,O,M,WC2XtB,Q,O,M,WCiNA,Q,O,M,WCjsBqB,Q,O,M,WC8FtB,Q,O,M,WC2DuB,Q,O,M,WC7ID,I,O,M,WCSvB,Q,O,M,WCPyC,Q,O,M,WCKvC,I,O,M,WC+D8B,Q,O,M,WCrGhC,I,O,M,WCIA,I,O,M,WC6CA,I,O,M,WC2C6B,Q,O,M,WCnG0B,Q,O,M,WCkCW,Q,O,M,WClCT,Q,O,M,WCQtB,Q,O,M,WCoXnC,Q,O,M,WCrWA,Q,O,M,WCiBA,Q,O,M,WCrBA,Q,O,M,WChBE,Q,O,M,WC0BA,Q,O,M,WCCkC,Q,O,M,WC2LnC,Q,O,M,WC8MD,Q,O,M,WCvaC,I,O,M,WCiZA,Q,O,M,WClZyH,I,O,M,WC4FzH,I,O,M,WCxEA,I,O,M,WCLA,I,O,M,WCdqD,Q,O,M,WCAG,Q,O,M,WCezD,I,O,M,WCf6C,Q,O,M,WCuhB7C,Q,O,M,WCjhBA,I,O,M,WCCA,Q,O,M,WCFA,I,O,M,WCK6C,I,O,M,WC+CC,Q,O,M,WC9B9C,Q,O,M,WCmBA,Q,O,M,WC0BC,Q,O,M,WCsVD,Q,O,M,WCvXA,I,O,M,WCvCA,I,O,M,WC+DA,Q,O,M,WCiDA,Q,O,M,WCnEA,Q,O,M,WCqBqC,Q,O,M,WCwUpC,Q,O,M,WCzUoC,I,O,M,WCTrC,Q,O,M,WCdI,Q,O,M,WCUJ,Q,O,M,WCpDA,I,O,M,WC2JC,I,O,M,WCxJkF,Q,O,M,WCCtC,Q,O,M,WCmQ7C,Q,O,M,WCxOA,Q,O,M,WCTA,Q,O,M,WC4NA,Q,O,M,WCjLC,Q,O,M,WCiCC,Q,O,M,WCqSA,Q,O,M,WCtY8B,Q,O,M,WCsKoB,Q,O,M,WCzKe,Q,O,M,WC4BnE,Q,O,M,WCNC,Q,O,M,WCVA,Q,O,M,WCHsE,Q,O,M,WCeN,Q,O,M,W,I,O,M,WCZjE,Q,O,M,WCXoD,Q,O,M,WC4dlD,Q,O,M,WClYD,Q,O,M,WC2ZA,Q,O,M,WC5cD,Q,O,M,WC/BA,Q,O,M,WCGA,Q,O,M,WCHA,Q,O,M,WCuTE,Q,O,M,WC3HA,Q,O,M,WC/KF,Q,O,M,WCNA,Q,O,M,WClBgb,Q,O,M,WCAjJ,Q,O,M,WCwC7R,Q,O,M,WCtC8B,Q,O,M,WC2BhC,I,O,M,WC2ME,Q,O,M,WC2QA,Q,O,M,WClBoB,Q,O,M,WChPtB,Q,O,M,WC1FC,I,O,M,WC3HA,Q,O,M,WCpBA,I,O,M,WCqEuB,Q,O,M,WCsxBvB,Q,O,M,WC5sBA,I,O,M,WCxDA,Q,O,M,WCzDC,Q,O,M,WCrCuD,Q,O,M,WCYzD,Q,O,M,WCEA,Q,O,M,WCdyD,Q,O,M,WCCvB,Q,O,M,WCEyB,Q,O,M,WC2FzD,Q,O,M,WC5BkB,Q,O,M,WC5BlB,Q,O,M,WC5BF,I,O,M,WCoBA,Q,O,M,WCrBA,Q,O,M,WCAA,Q,O,M,WCAA,Q,O,M,WCCkC,Q,O,M,WCalC,Q,O,M,WCsGA,Q,O,M,WCzEA,Q,O,M,WCmPoB,Q,O,M,WCjSM,Q,O,M,WCsZA,Q,O,M,WCtZG,Q,O,M,WCsB7B,Q,O,M,WCgRA,Q,O,M,WC1QA,I,O,M,WC6GA,Q,O,M,WCvBA,I,O,M,WCzHoO,Q,O,M,WCqDpO,Q,O,M,WCjCkC,Q,O,M,WCnBH,I,O,M,WC+FR,Q,O,M,WC5EkC,Q,O,M,WCqC9B,Q,O,M,WCmJ3B,Q,O,M,WC3LqC,Q,O,M,WC+DsC,Q,O,M,WC3Dd,Q,O,M,WCwF7D,Q,O,M,WCIA,Q,O,M,WChDA,Q,O,M,WC2IA,Q,O,M,WCnIA,I,O,M,WCwCA,I,O,M,WCtEE,Q,O,M,WC2BF,Q,O,M,WCrD6B,I,O,M,WCKM,I,O,M,WCGN,I,O,M,WCAO,I,O,M,WCLT,I,O,M,WC2B1B,Q,O,M,WC9BqB,I,O,M,WCwDZ,Q,O,M,WCxDe,I,O,M,WCAK,I,O,M,WCiI7B,Q,O,M,WClJ6yB,Q,O,M,WCAhB,Q,O,M,WCA8lB,Q,O,M,WCA/vB,Q,O,M,WCAyI,I,O,M,WCAA,I,O,M,WCAzB,I,O,M,WCA2G,I,O,M,WCAuX,Q,O,M,WCA9D,Q,O,M,WCAg8B,Q,O,M,WCAl2B,I,O,M,WCAvqB,I,O,M,WCAqoB,I,O,M,WCA1oC,I,O,M,WCAA,I,O,M,WCAm7D,Q,O,M,WCAnsD,I,O,M,WCA48H,Q,O,M,WCAj7H,I,O,M,WCA3Q,I,O,M,WCAoN,I,O,M,WCAgR,Q,O,M,WCAwxG,Q,O,M,WCA19F,Q,O,M,WCAlyB,I,O,M,WCAA,I,O,M,WCAA,I,O,M,WCAA,I,O,M,WCAA,I,O,M,WCAA,I,O,M,WCAA,I,O,M,WCAA,I,O,M,WCAA,I,O,M,WCAA,I,O,M,WCAuhE,Q,O,M,WCArrC,Q,O,M,WCAnpB,I,O,M,WCAuQ,Q,O,M,WCA0C,Q,O,M,WCA0gE,Q,O,M,WCA34D,Q,O,M,WCAuO,Q,O,M,WCAm3D,Q,O,M,WCAiD,Q,O,M,WCA1kF,I,O,M,WCAmV,Q,O,M,WCA4iC,Q,O,M,WCAh+B,Q,O,M,WCA/lB,I,O,M,WCAwnD,Q,O,M,WCAs6O,Q,O,M,WCAlmQ,I,O,M,WCAwyL,Q,O,M,WCA1zL,Q,O,M,WC2Bx8B,Q,O,M,WC6GrC,Q,O,M,WC4FE,Q,O,M,WC5LF,Q,O,M,WC0B0C,Q,O,M,WCOJ,Q,O,M,WCAY,Q,O,M,WClDlD,Q,O,M,WCqIC,Q,O,M,WCtI8C,Q,O,M,WCfK,Q,O,M,WCsCpD,Q,O,M,WCgCqD,Q,O,M,WCQ9B,I,O,M,WCoBvB,Q,O,M,WC5DA,Q,O,M,WCAA,Q,O,M,WCCA,Q,O,M,WCnB0B,Q,O,M,WC3BI,I,O,M,W,I,O,M,W,I,O,M,W,I,O,M,W,I,O,M,W,I,O,M,W,I,O,M,W,I,O,M,W,I,O,M,W,I,O,M,W,I,O,M,WC2DU,Q,O,M,WCi4FjB,I,O,M,WCziFA,I,O,M,WC0fA,I,O,M,WC1fA,I,O,M,WCgZA,I,O,M,WC1YA,I,O,M,WC08DA,I,O,M,WCxpEA,I,O,M,WCs3CA,I,O,M,WCnhDsB,Q,O,M,WC9CqL,Q,O,M,W,I,O,M,WCqL3M,Q,O,M,WC5GtB,I,O,M,WCtBD,Q,O,M,WCnD8N,Q,O,M,WCqR5M,Q,O,M,WChR8B,Q,O,M,WC4L5B,Q,O,M,WC5JW,Q,O,M,WC1BA,Q,O,M,WCUN,Q,O,M,WCoPP,Q,O,M,WCDA,Q,O,M,WCDG,Q,O,M,WC9BA,Q,O,M,WCzBF,Q,O,M,WCNS,Q,O,M,WCYV,Q,O,M,WCqEC,Q,O,M,WCvCK,Q,O,M,WC+qBxB,I,O,M,WCr1ByB,Q,O,M,WCxCzB,Q,O,M,WCJC,I,O,M,WCoR0C,Q,O,M,WCpRE,Q,O,M,WC2DQ,Q,O,M,WCzDc,Q,O,M,WCVlE,Q,O,M,WCgF2B,Q,O,M,WCxFsC,Q,O,M,WCwFM,Q,O,M,WC1EvE,Q,O,M,WCmT4C,Q,O,M,WC/SuB,Q,O,M,WCUZ,Q,O,M,WCgVpB,Q,O,M,WCnQpC,Q,O,M,WC/EqC,Q,O,M,WCZZ,I,O,M,WCyCI,Q,O,M,WCpCwC,Q,O,M,WChBpE,I,O,M,WCED,Q,O,M,WClB6E,Q,O,M,WCoDhB,Q,O,M,WCzDvB,Q,O,M,WCAM,Q,O,M,WCuC5C,Q,O,M,WCwIiE,Q,O,M,WC5IjE,Q,O,M,WCAA,Q,O,M,WCnBuB,Q,O,M,K,M,K,E,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,IngCEd,QACAC,UAAAA,I,KAA6B,IAC7B,M,KACc,QACL,IAAR,IAIG,EAAH,IAEgB,EAAL,KAAA,IAwII,MAoCJ,MAKC,KAAH,QAUT,OAiBQ,UACA,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A,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,QAAA,QAAA,QAAA,QAAA,QAAA,MAyJA,YAFsB,YADL,YADI,YADL,YADA,YADC,QADG,YADH,YADC,QADH,YADD,QADM,QADE,YADP,QADK,QADA,QADA,YADF,YADD,YADA,YADE,QADA,YADE,YADJ,YADK,QADF,YADA,YADN,QADU,YADP,YADI,YADN,YADA,YADA,YADK,YADC,YADG,YADA,YADJ,YADI,YADP,YADG,YADH,QADG,YADJ,YADE,QADH,YADO,YADH,YADC,YADA,QADG,YADG,QADA,QADE,QADF,QADD,YADF,YADA,QADF,QADM,YADV,YADC,YADF,QADI,QADL,YADO,YADG,QADA,QADA,YADF,QADC,YADF,YADF,YADA,YADC,YADD,YADW,YADX,YADC,YADD,YADG,QADH,YADI,YADL,YADH,YADA,QADC,YADG,YADF,YADC,YADJ,YADO,QADN,YADD,YADK,YADL,YADM,YADD,YADF,QADI,YADA,YADF,QADC,QADH,QADA,QADI,YADH,YADE,QADG,QADA,QADA,QADA,YADD,YADF,YADH,YADG,YADA,QADI,YADH,YADF,YADD,QADC,YADD,YADK,QADL,QADA,QADJ,YADG,YADC,QADM,YADT,YADI,QADC,QADD,YADE,YADF,YADJ,YADK,QADN,YADU,KADT,YADC,YADD,YADA,QADK,QADN,YADQ,YADH,IAFE,E,E,QCpRV,QAAsB,EAfpC,KAGMzW,MAAa,KAAA,KAAjB,GAMQ,SAAA,KACC,KAAC2J,MAAD,KAET,EARE,E,UCRS,MAAA,KA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,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,OCnNK,IAAA,QACkC,IAAA,KAAV,OACd,IAAA,QACI,IAAA,KAST,IACC,IACI,IACH,IACD,EACA,KADA,KAAH,MAmCQG,MAAK,KAAR,IACe,IACT,IACA,IAqBRxB,MAAM,KAAT,IAiCW,KAAY,EACf,KADe,KAUd,KAVc,KAkBtB,KAlBsB,KAAA,KAsBnB,KAtBmB,KAA3B,MA+BqB,UAGV,KAHU,MASd,KATc,MAAH,MAeA,KAAH,MAgBJ,KA2BkC,MAAC,EACpC,KADoC,IAAD,KAAxB,IAWH,QACH,QACD,QACN,IAAH,IACM,UAAA,MAAH,IAoEiB,EACf,KADe,KAIT,KAJS,KAAA,IAAH,IAoEX,IACE,IAYQ,EACE,UADF,IAAA,IAOC,EACC,UADD,IAKV,QALU,IAOS,EACR,UADQ,IAKnB,QALmB,IAOX,EACG,UADH,IAAA,IAOR,MAAA,IAAA,IAID,MAAA,IAAA,IAID,MAAA,IAAA,IAII,MAAA,IAAA,IAIW,MAAA,IAEb,IAFa,IAIb,MAAA,IAAsD,IAAtD,IACC,MAAA,IAAuD,IAAvD,IACG,MAAA,IAEJ,IAFI,IAnDL,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IA+YC,EACqB,KADrB,KAjRY,EACR,KADQ,KAAA,KAKR,KALQ,KAAA,KAAA,KAAH,IAgWI,EAAH,IAkFM,MAA8B,MAG9B,MAA8B,UA7J1C,MAsEL,QACe,M,S,S,qB,S,SAmKVwB,MAAK,KAAU,KAAW,KAAC,QAAD,KAA7B,IAIO,IAGW,EAChB,EADgB,KAEb,KAFa,KAFa,EAAA,KAAA,KAgD/C,GAAA,MAAA,iBAAA,SAAA,GAE2D,KAAA,QADzD,GAM4C,IAEvCye,IAA6B,KAAA,KADhC,GAEEA,IAAc,UAFhB,IAKMA,IAAc,IAAlB,GAKAA,IAEC,SAZH,EAMU5e,UAED6e,QADH,IADS,KAAX,EAURC,GAA4D,IAI7B,KAAH,IAGT,IACG,KAAH,IAKnBC,IAAoB,MAAuC,MAAC,EAChD,KADgD,KAAD,KA0BlD,MACc7X,MAAU,SAAA,KACXA,MAAU,SAAA,KAAb,IACKA,MAAU,SAAA,KAAb,IACMA,MAAU,SAAA,KAAb,IACAA,MAAU,SAAA,KAAb,IACGA,MAAU,SAAA,KAAb,IACEA,MAAU,SAAA,KAAb,IACOA,MAAU,SAAA,KAAb,IACAA,MAAU,SAAA,KAAb,IACQA,MAAU,SAAA,KAAb,IACNA,MAAU,SAAA,KAAb,IACGA,MAAU,SAAA,KAAb,IACjBA,MAAU,SAAA,KACVA,MAAU,SAAA,KACiBA,MAAU,SAAA,KAAb,IACxBA,MAAU,SAAA,KACVA,MAAU,SAAA,KACVA,MAAU,SAAA,KACkBA,MAAM,MAAT,IAmOP,EAAH,IACF,IACI,IACK,EAAA,KAAH,IAgOK,IA0EQ,MAAZ,IACQ,MAAZ,IACS,MAAZ,IACa,MAAZ,IACG,MAAZ,IAC0B,MAAZ,IACe,MAAZ,IACM,MAAZ,IACU,MAAZ,IACF,IACE,IAYFhG,MAAI,MAAJA,GAAaA,MAAI,MAAjBA,QAAH,IACDA,MAAI,MAAP,IACGA,MAAI,MAAP,OAKiB,UACP,IAuLU,IAgBG8d,MACQ,MAAxB,IACuB,MACe,MAEzB,MACsB,MAAxB,IACqB,MAAxB,IACqB,MACK,MAAxB,IACgB,MACQ,MACP,MACQ,MACF,MACG,MAAxB,IAEC,MADM,IAG3BC,IAA2B,MAA8B,KADvC,IAER,IACdC,6B,KAA4C,KAA5CA,Y,SACgC,KAgG/B,IAhG2B,IAmHNC,MAAH,IACDC,MAAH,IAwBMzgB,MAAM,KAAU,KAAnB,IACH,IAAH,UACL,IAakB,EAAH,IACa,KAAf,IACsB,KAAf,IACP0gB,IAAH,IAkFoB1gB,MAAM,UAAb,GAAf,IAAkCA,MAAM,MAAxC,Q,S,U,U,U,U,U,U,U,U,e,U,U,U,U,c,U,U,U,U,U,U,UAAH,IACD,IACkB,IACR,IA0BL,IAAH,IACG,IACE,IACN,IAAH,IACK,IACO,IAeF,IAC6B,MAAvB,IAwDK,KAAf,IACU,IACF,IACG,IAkDN,IA2BF,IA+Pa,KAAU,KAAA,OAAA,IAAA,IAAE,MAAxB,IAiBS,EACf,KADe,KAMT,KANS,KAkBL,KAlBK,KA+BN,KA/BM,KAAH,IAyyBiB,KAAlB,IACY,KAAlB,IACH,EAAH,IACyB,KAAf,IACmB2gB,IAAD,KAAf,IACgBA,IAAD,KAAf,IA0Ca,KAAf,IAwBK,IAAH,IAM0B,MAAvB,IACsB,MAAvB,IACd,IACc,IACd,IACO,IACU,IACc,IACrB,IAsgBNC,KADW,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IA8BVC,KAgDDC,KA1Da,EAAA,KAEV,KAFU,KAAA,KAAA,IAWF,KAXE,KAoBN,KApBM,KAuBH,KAvBG,KA0Bd,KA1Bc,KAiCX,KAjCW,KAqDf,KArDe,IAAA,IAAA,KA4DL,KA5DK,KA+DR,KA/DQ,KAsEL,KAtEK,KAuED,KAvEC,KAgGhB,KAhGgB,KAAA,KAAH,IAmHRC,KATY,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAWd,KAXc,IAAA,KAeN,KAfM,KAmBT,KAnBS,KAAA,KAAA,KAAA,KAAA,KAAH,IAsCTC,KATc,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAWhB,KAXgB,IAAA,KAeR,KAfQ,KAqBX,KArBW,KAAA,KAAA,KAAA,KAAA,KAAH,IA2DlBV,IAA2B,MAAsB,MAAxD,GAFF,OAsBqC,KAAA,GAAf,IAA0CvgB,MAA1C,EAAgC+F,MAAhC,oB,UAAH,IAwD2B,MAAvB,IACL,IAmdK,UAAH,IA2iBA,KAAH,IA0EK,KAAH,IAWK,KAAH,IAyCF,KAAH,IAwbqB,MAAA,GAAf,IAA0CmE,MAA1C,EAAgCyS,M,S,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,UAAnC,IACP,IAmByB,IAuc1Bna,MAAI,MAAP,IACyC,MAAvB,IACkB,MAAvB,IAC6B,MAAvB,IACT,IACE,IACJ,IACe,IACX,IACqB,KAAf,IACI,IACA,IACE,IACW,IACZ,IACK,IACC,IACP,IACS0e,MAAH,IACT,IACT,IACE,IACoB,IACZ,IACG,IACH,IACT,IACI,IACL,IACU,IAwlCd,KAAH,IAiuBU,KAAH,IAYFlhB,MAAG,KAAA,OAAA,IAAA,IAYmB,KAI1B,KAAA,MAVQ,EACc,KADd,KAAA,KALiB,UAAA,MAAA,KAmBS,MACH,KACY,MACL,MAUN,MAMR,MAAhCmhB,MApB+B,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAeR,KAfQ,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,SAAA,QA6Bf,UAAA,GAApB,IACgCC,SAEJ,MAD1B,MAEyB,MAFzB,GAKgD,MAAA,KAAjC,IAGI,IACjB,EAAE,E,a,U,U,U,UAEiB,KAAH,MAQM,KAAH,MAYe,KAAH,MAYb,MACa,MAClB,KAAH,MAoCmB,KAAH,MAWR,KAAH,MAOc,KAAH,MAE5B,EAnlIM9f,UAAK,KAAX,EA3oIF,cACiBG,MAAK,KAAU,KAAW,KAAA,EAAA,MAAA,MAE7B,WAAA,MACZ,EAAE,EACY,MAAA,KAEhB,EAWA,IACU,KAAA,MACG,IACX4f,IAA+B,KAACC,IAAD,EAAA,MACjC,EACA,IAWEC,GAAAA,IAA2B,KAAA,EAAA,MAAA,MACvBC,IAAJ,GACMA,IAAJ,KAKQlgB,UAAK,KAAX,EAJYmgB,MACJ,MACG,IAKbC,IAAAA,KAAoC,IAAqB,IAE7D,EAKA,OACkB,KAALC,MACWC,GAAAA,SAAmB,KAAtB,MACnBC,iBAAuC,MACpB,MACrB,EACA,KAC8B,MACF,KACtBC,GAAAA,MAAW,KAAf,KAEsBC,GAClBH,IAAmB,KADJ,QAGAG,GAAmC,KACnC,MACK,MACA,MACxB,IARQzgB,UAAK,KAAX,EAWJ,EACE,EAEF,EACE,EAEF,qBAMqB,MACH,MACA,QACiC,MAA1B,MACF,KAAY,MACjC,GAAA,QAAA,SAAA,GAC+B,KAAA,KAA7B0gB,GAC+B,IAA5B,GAEG,IAE6B,IAAd,OAFf,EACY,SADZ,EAD4B,KAAb,OADlB,EAKyC,MAAnB,IAEP,QAAlB,IAFyB,EACd,MAETC,GAHsB,GAItBC,IAJsB,EAGtBD,IAHmB,MAKKC,IAAH,MACzB,EAiEF,eAMU,MAAU,KAAlB,GAKe,KAAA,mBAAA,IAAA,IAAf,EAJqB,MAAc,KAAA,IACxB,uBAAA,IACT,EAIJ,MACQP,IAAN,KACQrgB,YAAK,KAAX,EAGc,MAAA,IACP,MAAU,QAAnB,IAAkC,MAAe,KAAA,KAAjD,EACF,EACA,GAC+B6gB,GAAAA,IAAH,MACG,IAAH,MACCC,IAAH,QAC1B,EAMA,OACS,IAAP,EAEF,OACS,IAAP,EAYF,GACc,MAALC,GAAwB,MAA/B,EAEF,GACa,QACX,IACA,IADwB/gB,YAAK,KAAX,EAGpB,GACmBghB,GAAAA,MAAkB,KACnBC,IAAS,IACzBC,GAauB,MACA,MACDC,IAAiB,KACd,MACA,MACgB,KACf,MACA,MACgB,KAVtB,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAYfF,IAAqB,IAvB1BC,IAC6B,MACM,MAAR,MACQ,MAAR,MACOC,IAAiB,KAApB,MACM,MAAR,MACQ,MAAR,MACwB,KAApB,MACK,MAAR,MACQ,MAAR,MACwB,KAApB,MAclCC,IAAmCD,IAAiB,KAApB,MAClC,EACA,GACoBF,GAAAA,IAAUD,MAAkB,KAAnB,IAC3BE,KAC2B,MACe,MAAd,MACc,MAAd,MACkB,MAAd,MACG,MAAR,MACQ,MAAR,MACOC,IAAiB,KAApB,MAC5BC,IAAoD,KAApB,MACrC,EACA,GACoBH,GAAAA,IAAUD,MAAkB,KAAnB,IAC3BE,KAC2B,MACe,MAAd,MACc,MAAd,MACkB,MAAd,MACG,MAAR,MACQ,MAAR,MACOC,IAAiB,KAApB,MAC5BC,IAAoD,KAApB,MACrC,EAyCA,QACE,OAIO,IAEHZ,GAAAA,MAAW,KAAXA,GAEAA,IAAW,KAAXA,GAEA,IAAA,IAAA,IAFAA,EACA,IAAA,IAAgB,KAAA,KAHhBA,EACc,KAAA,KADdA,GAFJ,IAHQxgB,YAAK,KAAX,EAWJ,QACE,IAIA,IACIwgB,GAAAA,MAAW,KACTA,IADN,GAKkB,KAAXA,GAA6C,IAAA,IAAA,IAA7CA,EAAoB,IAAA,IAAgB,KAAA,KAA3C,EAJiB,KAAsB,KAArC,GACY,KACZ,EAFgD,KAAA,MAAzB,EAFJ,IAHbxgB,YAAK,KAAX,EAWJ,QACEG,MAAa,KAAA,KAAbA,GAA8CkhB,GAAc,OAAA,MAAdA,EAAd,OAAA,MAAhClhB,EACF,EAGA,GACyBmhB,GAAAA,IACV,IACAvC,IAAoB,QAAjC,IACEA,IAAoB,MAAgC,SAAA,OADtD,EAMF,EAyDA,MACgB,KAAd,GACyB,QADzB,MAEOwC,MAAP,EAEF,qBACkB,IAAqCC,GAArD,GAAqC,KAAA,KAAgBA,IAAS,KAA9D,GACgB,KAAiB,GAAA,GAAjC,IAA8C,IAAL,OAAR,GAAA,GAAjC,IAC0B,OAA1B,IAAkD,IAAL,OAAN,GAAb,KAA1B,IACF,EACA,MACa,OACX,IACOC,GAAAA,MAA4B,KACnC,IACgB,IAAhB,GAAsD,OAAtD,IAQA,IAPQzhB,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,EAFiB,EAFA,EAarB,MAEa0hB,GAAAA,IAEF,MAAe,QAAwB,MAF1B,MADtB,GAM8BC,IACrB,MADmC,MAAjB,MAKhB,KADmC,MAAjB,MAI/B,EACA,GACE,GAAkB,MAAe,KAAjC,GACkB,MAChB,GAAA,GAA0B,MAAe,KAAzC,GACiBD,GAAAA,IAAuB,MAAe,OAA3B,MAC1BE,GAC+BD,IACtB,MADoC,MAAjB,MAKnB,KADmC,MAAjB,MAL3BC,EAWN,EACA,GACE,GAAkB,MAAe,KAAjC,GACwB,QACTC,GAAaL,GAAAA,MAAS,KACnCM,GAAAA,IAA6BC,MAAb,OAHlB,EAKF,EACA,MACE1B,GACO,MAAe,KADtBA,GAEEyB,GAAAA,IAAsB,MAAcC,MAApB,OAFlB1B,EAGF,EA0RA,QACM2B,GAAAA,IAAJ,MACyBpD,IAAvB,UAAA,0BAAA,YAAA,GACqBA,IAAc,IACjBoD,IAAwB,KAAA,KACxC,OAKKC,IAAO,mBAAZ,GACmB,MAAjB,KACQjiB,UAEDkiB,QADH,IADS,KAAX,EAIFD,IAAoB,IACM,MAC1B,GAAA,8BAAA,0BAAA,YAAA,GAEkC,IAE5BE,IAAuC,KAAA,KAA3C,MAKAA,IAA4C,IACA,KAC5C,GAYgB,OAAdzB,GACK0B,IACe,KADQ,SAD5B1B,EAXA,GAAA,EAAA,UAAA,SAAA,GACwC,KAAA,KAAtC2B,GAGED,IACyB,IADF,OAHzBC,WAkBJ,QACQriB,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,IA3BMA,UAEDsiB,QADH,IADS,KAAX,IAjBEtiB,UAEDkiB,QADH,IADS,KAAX,EAsDR,EACA,GACMK,GAAAA,IAAuB,IAA3B,GAKAA,OAAyC,MAC3C,IALUviB,UAEDwiB,UADH,IADS,KAAX,EASJ,YAMsB,KACpB,OACOf,GAAAA,IAA4B,KACnC,OACgB,IAAhB,GAAsD,OAAtD,UAQA,GAGa,KAHb,GAIa,KAAU,MAJvB,GAOE,EACc,IAChBF,GAAsB,KAAA,KAAtBA,OAC8B,IACQkB,OAEhC,IAFgCA,EACA,KAAC,kBAAD,UAAhC,IAEG,KAAU,MAAgB,IAAnCC,GAEa,KAAU,MAAgB,IAAmC,OADxE,IADFA,gBAAAA,KAIW,KAAU,MACjBC,IADiC,IAE1B,KAAC,KAAD,KAoCEC,IAAS,SAAf,IAEGA,IAAS,QAAf,IAEAA,IAFA,EACAA,IAAS,IADT,GAFJ,IA/DQ5iB,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,EAFiB,EAFK,EA+BZ,OAEc,KAAQ,QAA3B,IAAA,GAAkD,KAAQ,MAC3DyiB,GAAAA,IAFF,UAqBa,KAAQ,UACfG,IAAc,KADlBC,GAjBwB,KA4BN,KAXlBA,EACmB,KAAD,KAYtB,EA9B4B,UACF5D,GAAAA,IAA2B,MAC7C0D,GAAAA,IACwB,KAAxB,EAAA,KAFyD,KAAA,UAAA,IAAA,MAIxC,MACQ,MAAA,KAEL,KACXxiB,QAAM,IAAW+I,IAAZ,QAFhB,IAO4B,IAArBC,IAAS,IAFV,GALN,IAQA0Z,GAAAA,IAAW,MAAe,KAACA,IAAa,IAAA,IAAkB,KAAA,KAAhC,MAC5B,EAEmB,IACbH,GAAAA,IAAS,KAAuC,MAC9CC,IACAE,GAAAA,IAAW,MACXA,IAAW,MAHmC,OAKhDA,IAAW,MAAXA,GACIA,MAAuB,MACzBA,IAAW,MAAe,KAACA,IAAD,EAAA,MAC9B,EAgBZ,gBACwBD,GAClBpC,GAAAA,MAAW,QAAXA,GACW,KADXA,GAIJ,OAEiCmB,GAAAA,IACtB,QADoC,MAAjB,MAIb,OALf,IAAA,IAUoC,KAALtB,GAA4B,IAA/B,MACtBG,IAAiB,KAAN,KAAXA,GACoC,KAAN,IAAA,IAAH,MAD3BA,EAFJ,IAQO,KAAwB,KAAA,KAFpB,GANX,MAFwB,MAP1B,EAkBJ,EACA,SACUsC,GAAAA,IAED,MAAe,KAAwB,gBAF1B,IAMpBC,IAA+B,OACjC,EACA,wBACkB,IAAhB,GACW,KAAA,QACK,KAAd,GACyB,QADzB,MAEOxB,MAJT,GAMgB,KAAiB,GAAA,GAAjC,IAA8C,IAAL,OAAR,GAAA,GAAjC,OACA,GAE4B,OAA1B,IAAkD,IAAL,OAAN,GAAb,KAA1B,MAFuB,IAAL,OAGtB,EACA,MACElB,GACO,MAAe,KADtBA,GAEE2C,GAAAA,IACO,MACLC,WAFgB,IAFpB5C,EAQF,EACA,GACE,GAAkB,MAAe,KAAjC,GACkB,MAChB,GAAA,GAA0B,MAAe,KAAzC,GACkByC,GAAAA,IAET,MAAe,kBAFM,IAM5BC,IAA+B,OAPjC,EAUJ,EAmFA,GACE,EAyDF,KACE,QAA2C,GAA3C,IAEGG,GAAAA,IAAAA,GAAuCA,IAAD,IAAtCA,GACY,MADZA,IAEmB,KAAf,OAAP,EAJiE,EAMnE,4BACE,cACmB,GAAnB,cACiB,GAAjB,UAEOC,GAAAA,IADP,OAGOC,IAHP,OAKOC,IALP,OAOOC,IAPP,OASOC,IATP,OAWOC,IAXP,cAciB,GAAjB,OACc,KACLC,IADP,OAGOC,IAHP,OAKOC,IALP,IAYOC,IAZP,IAmBOC,IAnBP,OAoBoB,MACL,MAEFC,UAA6B,KAAL,KAA/B,EACA,EAER,KAZyB,KAAJxS,KAAAA,GACb,IAEIwS,OAA6B,KAAL,KAAxBA,MAFJ,KAFF,KAPoB,MACT,QACXxS,MACoB,KAATyS,GAAkC,KAAlCA,MAAAA,GACD,WAAc,QAAA,IAAd,GAFVzS,GAGA,KAPY,MAAS,KAAbA,MAAAA,IAAD,IAAP,KAFY,KAAJA,MAAAA,IAAD,IAAP,MALF,MAFA,MAFA,MAFA,MAFA,MAFA,KAH0B,KADa,KAAJA,GAAwB,KAAxBA,KAAP,EADd,EA8CpB,yBACkB,KACH,uBAgDU,OAAnB,QAEA,OAA8B,EADjB,KAAJA,GAAwB,KAAxBA,KAAP,MARF,MAFA,MAFA,MAFA,MAFA,MAFA,EAFgBgS,GAAAA,IAAThS,OAAP,EAFOwS,GAAAA,MAAwB,KAA/B,MAFA,MAFA,MAFA,EAFA,MAFA,EANe,MACC,KAALE,GAA0B,KAA1BA,MACL,KAAJ1S,GACG,QAAe,QAAA,IAAf,GAJL,MAFA,EAFY,MAAS,KAAbA,MAAAA,IAAD,IAAP,EAFY,KAAJA,MAAAA,IAAD,IAAP,MAFA,EAkDJ,EAEF,WAGW,WAAT,GAKiB,KAAJ2S,IAAP,IAAmD,KACtC,cAHjB,KAH8B,cAAX,GAAiC,KAAtB,cAAX,GASJ,UAAV,OAAP,EAEF,GACMC,GAAAA,MAAsB,KAA1B,IAEF,IADUlkB,UAAK,KAAX,EAEJ,OACuB,eACrB,GACckkB,GAAAA,IAAsB,KAClC,MAEOC,OAAP,IADQnkB,UAAK,KAAX,EAIa,iBACf,OACqB,KACrB,OAQW,KAAkB,KAA7B,OAQK,KAAa,iBAAlB,OAE+C,gBAA7C,cACE,eAMA,IAMiB,gBAbnB,eAeA,GACwB,iBAAtB,cACE,eAMA,IAMiB,iBAbnB,eAeA,KACQA,UAAK,KAAX,EAKD,KAAL,SACQA,UAAK,KAAX,EA/CsB,KAAtB,GACE,IACA,IACiB,KAHnB,KAKMA,UAAK,KAAX,EAH4BokB,GAAAA,IAAe,KAAtB,EADOA,GAAAA,IAAe,KAAtB,EATV,cACX,OA0DO,QAAX,IAEQ,KAAU,KAAXhI,OAAP,IADQpc,UAAK,KAAX,EAIOqkB,GAAAA,SAA6B,OAC/B,IAAkBC,IAAwB,KAAjD,EAEF,OACgB,QAAd,IAAgC,QAAhC,IACgB,KACFA,GADd,IACcA,IAAwB,QACpC,IACW,KAHb,IAKA,EAHsB,EAHgB,EAQxC,KAAA,OAAA,IACS,KAAP,EAAO,IAEHhS,GAAAA,IADF,GAEwBrO,IAAO,UAAd,GAFjB,IAE+CA,IAAO,MAFtD,GAKF,EADWqO,IAAc,KAACrO,IAAD,EAAA,MAArB,EAON,OACsB,KAAb,QAAA,IAEHgb,GAAAA,IAAsC,MAGpCsF,OAHoC,OAF1C,EAQF,2BAKM/D,GAAAA,IAAW,KAAf,MAOK,MAAgBgE,IAAhB,OACOC,IAAV,IAAA,WAAA,YAAA,GACMA,IAAW,IAAf,GACqB,OACnB,IACuC,UACrC,GACiB,GAAf,MACgB,GAAhB,MACiB,GAAjB,IAGuC,MAAtB,GADZ,IAEkC,KAAtB,MAFZ,IAKoC,KAAtB,MAAf,IAC2B,KAAA,KAEV,OARhB,EADa,OAUlBA,IAAc,IACdD,IAAe,GAAA,OAfjB,KAZW,KAAU,GAAA,GAA3B,GAAqCA,IAArC,IACEE,IAEM,IAF2B,OADR,GAAA,GAA3B,GAAqCF,IAArC,IA+BJ,EACA,cAME,GAAA,IAA6C,EAC7C,GAAA,GACSG,MAEHC,GACAC,GAAAA,IAAmB,OAHhBF,EACHG,GAAAA,IAAiB,OADrB,EAKGtE,GAAAA,IAAW,KAAhB,GAA+BA,IAAW,KAA1C,GACSuE,kBAAc,IAArB,EACEvE,IAAW,KAAf,GAA6BA,IAAW,KAAxC,GAyBOA,IAAW,KACduE,IAEE9F,IAAwC,MAHvCuB,GAUuC,gBAH5B,IAPXA,EAGuC,gBAF5B,IADlB,EAvBc,KAAkB,KAA1BoE,IAA8D,KAA9DA,EAA4C,KAA5CA,UAEJ,IACkBI,IAEN,IACA,YAHwB,IADR,SAA5B,IAOmB,iBAAnB,IACkBH,IAEN,IAFyB,OADR,GAAV,WAAnB,IAMmB,WAAnB,IACkBC,IAEN,IAFuB,OADN,GAAV,QAAnB,IAMA,EAgBJ,WACE,GAAe,EACVtE,GAAAA,IAAW,KAAhB,GACSuE,IAELE,eAFmB,IAArB,EAM0B,aAA5B,IACkBH,IAEN,IAFuB,OADG,GAAV,QAA5B,IAMA,EAEF,WACE,GAAe,EACVtE,GAAAA,IAAW,KAAhB,GACSuE,IAGLE,eAHmB,IAArB,EAM0B,aAA5B,IACkBJ,IAEN,IAFyB,OADC,GAAV,QAA5B,IAMA,EAEF,kCAEE,GA0BQK,gBA1BR,uBAAA,YAAA,GACwC,UAAtC,GAC0B,IACA,IACT,MAAf,IACmC,GAAf,MAAA,KACJ,MAAhB,IAEkB,GAAhB,MAAA,KACFT,IAAAA,GAAgBA,IAAoB,IACpC,GAA6C,IAA7C,mBAcK,OACc,GAAjB,OAIuC,MAAtB,GADZ,IAEkC,KAAtB,GAFZ,IAkBS,IACM,IACCO,kBAAkB,IAM/BR,IAAJ,IAAA,MAAA,YAAA,MAEGE,IAAiC,OAKtB,gBAPd,KAtBF,IAEwC,MAAtB,GAAf,IAEGQ,IAAa,MAFhB,EACuB,MAAA,MADvB,YAFH,MAOyC,KAAtB,MAAf,IAC2B,KAAA,KAD3B,MAGEC,GAAkC,KAEnC,UAZL,KANAD,IAAa,kBAAbA,YACIC,GAAkC,KAAa,aADnDD,KAfe,GAAjB,IAIyC,MAAtB,GADjB,IAEuC,KAAtB,eAFjB,OAKyC,KAAtB,MAAf,IAC2B,KAAA,KAEJ,aAR3B,KAFsB,gBADxB,KAoDN,GAAA,MAAA,oBAAA,YAAA,GACsB,UAApBnJ,IACsC,IAAnC,GAAA,MACEoJ,GAAyC,IAAxBpJ,IAAjBoJ,GADF,GAAA,MAEuB,OACtBpJ,IACgB,GAAb,IACoC,MAAtB,GADd,IAEoC,KAAtB,GAFd,IAOoB8I,IAAmB,OAPvC,QAGMM,GAAkC,KAAe,IACpDV,IAAAA,GAA8B,EAAH,IAC3BA,IAAW,OAAXA,GACIA,IAAsB,IAAQD,IAAe,GAAA,OADjDC,GANN1I,MAHD,MADHA,KAiBF,EAEF,QACW,KAAT,EAGF,MACMqJ,GAAAA,IAAJ,KACoB,IAEXC,MAAkB,MACjB,EACY,IAFpB,EACQ,IACY,IACtB,IANmC,KAAT,EAS5B,OACE,MAC2B,MACF,KACnB7E,GAAAA,IAAW,KAAf,GAQE8E,GACEC,IAAe,OADjBD,EALuB,KAFvB,IAEyD,MAAA,MAFzD,GAKEC,IAAoC,IAAsB,IAA3C,OAFd,GADoB,KAFvB,IAEyD,MAAA,IAFzD,KASkB,MACA,MACN,MAAA,IAAd5hB,GAAqB,KAAoB,MAAA,KAE7C,EACA,SAEE,IACwB,OACtB,IAA6C,KAA7C,sBAEF6hB,GAAAA,MAAe,KAAD,KAqChB,EArCiB,IACYC,GAAAA,IAA2BC,IAAxC,EAAA,KAAA,IACZzG,GAAAA,IAA2B,MAAqB,MAAA,MAChDA,IAA2B,MAAqB,UAAA,MACxC0G,IAE6B1D,IAClB,WAFnB,IAKoC,UAClC2D,GACgD,MAC5CH,IACArf,IACAsf,UAH4C,OADhDE,GAAAA,GAOYjE,IAAc,MAVzB,GADgB,WAFnB,IAgBA,IAAgCA,IAAekE,IAAD,MAAjB,IACrBA,IACE,IACV,GACEC,IAA0BC,IAAR,MACdF,IAAJ,GAIIzF,IAAJ,GAMJ,EALsB4F,MACA,IACH,IAFb,IAJMhmB,UAAK,KAAX,EAsBR,GACMimB,GAAAA,IAAJ,GAA0CA,IAAY,UAAnB,GAAnC,IAEIA,IAA8B,MAC5BC,IAGa,KAAQ,QAAZC,MAAT,UAJ4B,IAMhC,EAAE,EAAa,EACnB,EAIA,QACG,IACM,IAAuBviB,GAAAA,MAAG,KAAMwiB,IAATxiB,UAAP,OAAvB,EAIF,GACkB,GAARyiB,IAAR,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,IA6CI,EAFA,EAFA,EAFA,EAFA,QAFOA,IAAP,QANOA,IAAP,EAjBA,EAFA,EAFA,EAFA,EAFA,EAFA,EA8CN,gBACyB,MACvB,OAEuB,MACH,YACIC,IACxB,IAQwC,GAAfA,IACrB,MAEI,IACaC,GAAAA,IAAuB,KADpC,EADaA,GAAAA,IAAuB,KADxC,EARgD,GAAtBC,IAC5B,IAEiB,MACb,IACeD,GAAAA,IAAuB,KADtC,EAFaA,GAAAA,IAAuB,KAU1C,OACA,IAAA,IAGSE,IAHT,IAIiC,GAAZC,IACO,GAAXD,IALjB,UAAA,UAOqCE,IAPrC,OAUOD,OAAP,OAAuCJ,IAAJ,IACpB,SACf,IACkB,MAAwB,IACjBM,SADvB,IACuBA,IAAK,KAAV,IAEI,IAAR,IADQ,IAEL,GAAJ,OAJb,IAKF,EATE,EAVmB,EAlBG,EAuC1B,MACE,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAqCI,QAFA,QALA,QANOC,IAAP,KApBOA,IAAP,EAoCN,WACa,YAAJV,OACA,IAAoBA,MAAAA,MAAAA,GAA3B,EAGWW,GAAAA,OACO,IAAA,YACXA,IAAP,OAA2D,IAC3D,EAEF,MACqB,MAAoC,KAAA,KAAhB,GAAvC,IACA,EAEF,MACM,MAAa,IAAA,YACjB,MACuB,MAAwB,MACpC,MACOF,GAAAA,MAAK,QAAV,OACG,IAClB,EACA,sBACiC,MAAgB,GAApBT,IACV,MACE,MACH,MACZ,MAAa,IAAA,MACb,MAAiB,IAAA,MACjB,MAAe,IAAA,MACE,MACA,MACL,MACKS,GADrB,IACqBA,IAAK,KAAV,IAES,IACJ,IACN,IAHJ,IAIe,GAAJ,IANtB,IAQF,EACA,cACgC,MAAe,IAAA,MAC7B,MACKA,GADrB,GACqBA,IAAK,KAAV,IACL,IACRG,IAA8B,IAAJZ,IAA1BY,OAAAA,GACM,IAAS,IAAA,IACM,GAAJ,IALpB,GAOF,EAEA,kBACW,GAAJ,IACE,IACH,YACSV,IAAP,OAAA,GADF,GADJ,EAQF,EACQrmB,YAAK,KAAX,EAiIcgnB,GAAAA,OACF,IAAA,IAEJC,IAIJ,KAAA,sBAJc,IADX,EAAA,KAAP,EAYF,GACqB,MACYlC,GAAAA,IAE7BE,IACS,MAAA,KAAT,EAAA,IACQ,KAAU,MAAW,eAJc,IAOrCiC,IAAqB,MACR,KAFd,EAAA,KAAA,IAAP,EAKF,WAGwB9jB,MAAAA,IAAf,IAAA,IAAP,EAEF,SACS+jB,GACHC,GAAAA,IAAyB,KAAFD,GAAoB,KAApBA,KAAAA,EAAD,OAD1B,EAQO,KAAA,IAAP,EAGIvM,GAAAA,MAAJ,IACqByM,IAAWzM,IAAD,OAAb,MAAwByM,IAAWzM,MAAM,IAAUA,IAAK,GAAA,IAD1E,EAEF,EACA,GACEA,GAAAA,IAAK,GAAA,IACLyM,IAA0B,KAAT,OACH,QAChB,EAKA,MACmC,KAAK,MACtC,GAA0BhI,GAAAA,IAAP,EACU,KAC7B,GAEU,MAFV,IAKc,EAEd,GAAA,QAAA,SAAA,GAAwD,IAAlB,IAAtC,EACA3V,GACmC,KAC0B,MACF,MAC3D,EARiB,MAAf,EAUJ,GACa,QACJ,IAAA,KAAiBqS,IAAxB,EAGAuL,GAAAA,IAAIC,MAAD,KACCC,IAAD,KACL,EAEMA,GAAAA,IAAkB,KAAanI,IAAnC,IAIAoI,IAAKD,SAAD,MACCD,OAAD,MACN,IALUvnB,YAAK,KAAX,EAMJ,UACsB,QACT,MACuB,UAAf,GAAnB,IACmC,MAAA,IACnC,GAAA,QAAA,SAAA,GACQ0nB,IAAN,KACQ1nB,MACH2nB,GAAAA,MAAyB,KAAzBA,MAAAA,IAAD,IAAA,QAAA,IADS,KAAX,EAMGC,GAAAA,MAAO,EAAD,OAAb,EAVoD,EAYtD,GAEqC,QAAhC,GACe,MADf,GAEDvI,GAAAA,IACgBmI,GAAAA,IAAkB,KAArB,IACfC,IAAKD,MAAD,MACCD,IAAoD,KAArD,QACJ,EAEF,MAC+B,KAC7B,KACQvnB,YAAK,KAAX,EAIqB6nB,GADvBC,GAUIR,IAAIC,MAAD,KAVPO,EACuBD,IAGjBE,SAHoC,OAKa,MACnDT,IAAIC,IAAD,KACCC,IAAD,KACHC,IAAKD,IAAD,MAERC,IAAKF,MAAD,MACN,EACA,MACU/J,IAAAA,KAAY,IAAA,MAAW,IAAU,IAAV,IAAX,GAAZA,GAA6CA,IAAAA,GAAWF,IAAXE,GAArD,EAMF,gBACOwK,GAAAA,IAAL,MAAqCC,IAArC,OACqB,MAEQC,IAEbD,UACc,OAAe,KAAzC,UACsB,IACpB,GAAsB,QAAtB,OAFiD,SAAV,KAAzC,IAKS,MACkB,IAK7B,GACwB,IACA,IACxB,EAPE,EACgBA,IAAT,IAAmCA,IAAe,WAAChiB,IAAD,KAAlB,IACvCkiB,IAAiBC,IAAmBC,IAApB,MADhB,EAGQ,EACc,MACA,IACxB,EAEF,EAQF,KAC4BC,GAAAA,IAA1B,IACsBC,IAAYC,IAAF,GAAA,IAAD,IAAZ,IACdD,IAAUC,IAAe,IACxBA,IAAF,GAAA,IACCD,IAAyB,IAJJD,IAA1B,IAK0BG,IAA1B,IACyBC,IAAUC,IAAF,GAAA,IAAD,IAAV,IACjBD,IAAQC,IAAa,IACpBA,IAAF,GAAA,IACCD,IAAqB,IACpBC,IAAF,GAAA,IACCD,IAAqB,IANAD,IAA1B,MAOF,EAGA,QACMG,GAAAA,IAAQ,MAAZ,UAEe,GADf,SAAA,OAGe,GAHf,OAAA,SAOYjqB,MAAW,KAAA,KACbA,MAAW,KAAA,KACZ,KAAiB,KAA1B,IAC6B,OAA7B,IACwB,IAEnBO,IAAmB,KAAA,MADtB,GAEG0pB,IAAa,IAAkB,IAAvB,MAFX,KAIE,EANuC,GAAd,KAA7B,MAQA,IATmC,IAHjC,IAPwB,EAqB5B,GACe,KAAb,GAAA,UAAA,UAAA,UAAA,MAAA,OAAA,OAAA,OAAA,OAAA,QAkBI,EAFgBC,GAAAA,IAAoC,SAAN,MAA9C,EAFOA,GAAAA,IAAoC,KAAK,UAAX,MAArC,EAFOA,GAAAA,IAAoC,SAAN,MAArC,EAJOzB,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,IAA4B,SAAN,OAA7B,EAmBN,QACE,GAA0B,MAA1B,GAQA,EAPcQ,GAAAA,IAAO,EAAD,MACG,MACrB,GAAA,QAAA,SAAA,GACsB,IAApB7L,IACkC,IAAZ,IADtBA,EAEF,EASwE,KAAA,IAA1B,IAAxB,MAC1B,EAEqB+M,GAAAA,IAAW,KAC9BxB,IAAIwB,MAAD,QACmB,MACxB,EACA,WACE,IACwB,KACf,KAANC,IAAD,IAGI,IAAA,GACU,KAAT5E,IAAD,IADA,GAEU,KAAW,IAAA,MAFrB,EAFQ,KAAW,IAAA,MACnB,IAAgC,KAAW,IAAA,MAI/C,IACe,KATjB,MAWF,EACA,GACyB,GAAA,MACyB,IAAxB,IACO,KAC/B,IAAA,GACyB,MAAvB,IADF,GAEwB,QAAd6E,MAAP,MAA+D,IACpC,MAH9B,EAIF,EACA,GACqB,MACfC,GAAAA,IAAJ,IAEgB,EAAA,IAAA,OAAA,IACHC,IAFX,IAa+BA,IAA0B,MAA7B,IAb5B,EAIeC,IAAb,IAIqB,IACrBA,IAAuC,IAAA,IAAA,KAAH,MAKxC,IATYnpB,YAAK,KAAX,EAYR,GACWopB,GAAAA,MAAT,IAEIA,IAAqB,KAAA,KAFzB,EACwB,IAAA,IAAH,IADrB,EAGF,EACA,MACyB,QACvB,IAE+B,KAAd,MAAuC,MAFxD,EACiB,MAAYC,GAAAA,OAAyB,KAErC,MACVC,GAAAA,aAA6B,MAApC,EAEF,QACa,KAAM,IAAA,MACU,KAC3B,IAAgC,KAAM,IAAA,MAER,KAA9B,IACc,KAAW,IAAA,MACG,KACxB,IAAgC,KAAW,IAAA,MAEjB,WAL9B,IAMsB,UAAf,IAA+B,KAAtC,EAGF,GAEoB,KADE,UAAA,MAIV,UAJU,MAAH,QAOnB,EACA,MACmB,KACH,KAAdN,IAEsB,KACM,MACD,MACR,MACC,MALY,EAAA,IAAA,KAAA,KAAA,KAAA,KAAH,MAD7BA,EAQF,EAES,aAAA,SAAA,MAAP,EASF,SACyB,OACvB,OACyB,MACdO,GAAAA,OAAAA,MAAX,IAQqB,MACrB,IAE2B,KAAV,MAA+B,MAFhD,EACiB,MAAYF,OAAyB,KAE/B,MAChBC,OAA6B,MAApC,EAZ2B,KACzB,IAE2B,KAAV,MAA+B,MAFhD,EACgB,MAEG,MACZA,OAA6B,MAApC,EARwB,EAiB5B,SACe,OACb,IAAqC,YAAiBvC,MAAtD,IACwB,KACJ,MAAR,IACN,IACO,MACXyC,GAAAA,MAAiB,MALnB,EAOF,EACA,QAC4B,KACA,KAC1B,IAEqB,KAFrB,IAoCsB,MACtB,IAEwB,MAFxB,EAC0B,MAEN,QACtB,EAnCiB,aACb,IAGsB,MACL,MACD,KACI,MACC,KALL,EAAA,KAAA,KAAA,IAAA,KAAA,IAAA,OAQZ,IAE2B,SACd,WAZf,OAcA,IAE2B,SAGT,KAGH,MACC,MALV,EAAA,IAAA,KAAA,KAAA,KAAA,KAOkB,QAC1B,EAQJ,6CAMqC,KACrB,KAAA,IACa,MACH,MACF,MAAO,QAC7B,IACO,MAAe,MAEoB,KAClB,SACtB,IAEwB,SAEa,QACrC,IACqB,KACI,SACvBC,IACG,IAEqB,MAFrB,EAC2B,MAEL,SAE7B,OACsB,oBAKW,MACG,MAC3BC,IAAL,IAsDqB,KACI,MACC,KALL,EAAA,KAAA,KAAA,IAAA,KAAA,IAAA,UAQjB,IAG2B,YACZ,OA/DnB,QACE,IAIqB,KACI,MACC,KALE,EAAA,KAAA,KAAA,IAAA,KAAA,IAAA,IAAH,SAaT,KAAd,IAAA,IAAA,UAAA,OAyBkB,UAzBlB,EAc0C,KAAdV,IAAAA,IAAJ,MAEG,MAEN,MAAf,IACuB,KAAA,OADvB,MAGF,UAAA,IACWpB,IAAO,EAAD,UACjB,EArBuB,MACJ,SAAnB,IACgC,KAAA,UAwBjB,KAArB,IAAA,GACoB,MAAlB,IADF,qBAAA,GAE2B,KAAM,IAAA,MACZ,MACnB,IAEmB,KAAA,0BAFnB,EACqB,IAAA,IAAH,2BAgBK,gCAC3B,OAC4B,MAAO,KAAjC,IAI8B,KACV,MACK,MACf,MAAe,2BAPzB,KASJ,OACe,MACM,MACD,MACP,MAAO,YACpB,OAIO,IAAkC,MAAa,SAA/C,EAFsB,MAAT,IAA+B,QAAjD,IAGF+B,IAA8B,IAAA,IACD,MACQ,MAEzC,EACA,YAC8B,MACP,MACrB,IAGgC,OAF9B,IAK2B,IACN,KACnB,IACiB,MACI,GAAnB,IAKa,KAAA,KAXF,GADe,KAF9B,MAiBJ,IAPgB3pB,UACJ,MADS,KAAX,EASV,GAMuB,aAC8B,WAEjD,OAAA,IAEI4nB,GAAAA,IAAO,EAAD,OACgB,MACR,OAApB,IACiB,KAAsB,MACzC,EA6CA,YASiC,KACY,UAArB,GAAf,IAEC,OAAJgC,GAAsB,KAAU,QAAhCA,GACCC,GAAAA,SAAY,MAAb,GAAA,GAAsCA,OAAY,MAAb,GAArC,GAHG,EACiC,SAAA,OADxC,EAMF,QAEsBxK,GAAAA,IACF,UACL,GAAb,IAAA,IAEwByK,MAAiB,KAAjBA,GAEhBtC,IAAkB,KAFFsC,EAChB/B,IAE2B,MAE7B,IAAA,GAAoChM,IAD3B,GAGPsD,IAHO,EAEP0K,IAAgB,MAFT,GANf,EACexK,OAAW,UASX,KAAA,aAAA,IAAA,IAEA,OAAb,IAAsC,SAAtC,IAAmD,KADzB,MAEbyK,IAAH,MACY,MACJ,MACpBC,GACmC,KAC0B,MACF,MAC3D,EAEF,SAM2B,KACK,UAAf,GAAf,IACoC,MAAA,MACN,MAAf,GAAf,IAC2C,MAAA,MACnC,KAARvgB,IACEsgB,GAAAA,IAAyC,MAAmB,OAAnB,OAD3CtgB,EAEF,EACA,SAC+B,KACf,MACiB,KAAjB,MACEwgB,GAAAA,IAAH,MACbC,OAAqB,KACC,UACT,GAAb,MAAA,IAEoBL,IAAiB,KAAjBA,GAEZtC,IAAkB,KAFNsC,EACZ/B,IAEgBgC,IAAgB,MAAnB,MALrB,EACwBxK,KAAW,KAAd,MAKU,KAAjB,MACI,UACH,GAAf,IACG6K,kBAA0B,IACK,KAAjB,MACS,MAAX,GAAf,IAAA,GACgC,MAAf,GAAf,IADF,GAEiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GAFH,GAImB,KACa,MAAf,GAAf,IAC6B,MAAA,IACC,MAAf,GAAf,IACoC,MAAA,IACnB,KAAjBR,IACEI,IAAyC,MAAmB,OAAnB,OAC3CK,mBAAkB,IACc,KAAjB,MACa,MAAf,GAAf,IACiB,QAAM,IAAA,MACzB,EACA,UACuB,OACrB,IAEiB,OAFjB,QAAA,IAKa,MAAX,OAgCA,IAIY,MAAZ,KACQrqB,UACJ,QAAA,IADS,KAAX,EAMJ,IAVUA,UAAK,KAAX,EAhCiB,QACjB,GACmB,QAAjB,IAIkB,KAEpB,KACQA,UACJ,QAAA,IADS,KAAX,KAOF,IAEkB,KAFlB,IAG+B,KAAd,GAHjB,IAIS,KAAI,MAJb,YAOU,KAKQ,MAClB,EAPgB,KAAd,IAnBQA,UAAK,KAAX,EAoBM,GACGsqB,GAAAA,IAAY,MACdJ,GAAAA,IAATK,IAAoCD,IAAoB,EAAH,SAArDC,EACA,IAAgDC,IAAU,IAA1D,EAA6BA,IAAZ,IAAjB,EACF,EAiBN,KACgB7rB,MAAM,KAAU,KAAc,KAAA,KACtCqB,UAED,IAC0BrB,MAAW,KAAA,KAAe,SAAA,SAAjD,QAAA,IADH,IADH,UAAA,IADS,KAAX,EAQF,GACqB,MACC,QAAT,KAAX,EAEF,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IA+lBE,EA9lBA,MACM8rB,GAAAA,IAAJ,GAC6B,QAC3B,IAEkB,KAAA,KAFlB,EAC8B,IAAA,IAAH,MAAiC,QAAM,IAAA,MADlE,EAIJ,EACA,UACOA,GAAAA,IAAL,GAA6B,EAC7B,IACEC,IAAW,MAC6B,KAF1C,IAGA,EAEF,OACyBhsB,MAAG,KAAA,OAAA,IAAA,IAA1B,IAC4B,KAA1B,IAEmB,KAAkB,KAAlB,MAFnB,EACmB,KAAkB,KAAlB,MAEqB,KAJ1C,IAKA,EAGQisB,GAAAA,aAAoB,QACjB,QACE,MACb,EAEF,SACgB,MACTF,GAAAA,IAAL,GACkB,WAAM,IAAA,MAAtB,EACiB,OACnB,IAOQ,QAAM,IAAA,MACd,EANwB,KACpBG,IACc,QAAM,IAAA,SAHtB,EASJ,GACEH,GAAAA,IAAAA,GACmB,OAAjB,IADFA,GAEW,QAAM,IAAA,MACjB,EAEF,WACE,IAAqC,QAArC,IAMUI,GAAAA,MAAQ,MACJ,MACd,EANeC,GAAAA,KAA4C,UAAzB,OACf,MAFjB,EASJ,YAC2B,KACL3H,GAAAA,IAApB,SAQA,IAEU,KAFV,QAGkB,GAHlB,IAAA,IAKiB,KAAcU,IAL/B,IAMMkH,OAAW,KAAyB,KAN1C,IAcQC,KACC,KACA,KACA,KAEI,cALsB,IAQvBC,KAAS,OAAZ,MACG,MACZ,EAfaJ,GAAAA,IAAyB,OAAjB,MACJI,KAAS,OAAZ,MACG,MAHf,EAfOC,GAAAA,IAGE,KAAM,KAEN,gBALY,IAArB,EAiCJ,WACE,IAEe,QAFf,IAGS,KAAU,MAAyB,MAH5C,IAIS,KAAU,MAA0B,MAJ7C,IAWUL,GAAAA,IAAwB,KAANM,GAAmB,IAAnBA,EAAV,MACJ,MACd,EANeC,GAAAA,KAAyC,UAApB,OACjB,MAFjB,EASJ,WACE,IAAqC,QAArC,IAWUP,GAAAA,MAAQ,MACJ,MACd,EAXeQ,GAAAA,KAEE,gBAFqB,IAMnB,MAPjB,EAcJ,SAEkB,OADhB,QAAA,WAAA,WAaA,MAAA,IACkB,KACTC,GAAAA,IADP,OAeOlI,IAfP,IAyBOS,IAzBP,IA6BIrD,MAAW,KAAf,GAA6B+K,IAAa,KAA1C,GAWAC,KAAwB,MAzC1B,EA2CA,EAXkBH,KAEC,eAFsB,IAMnB,MAPlB,EAJqB,MACZI,GAAAA,IAAsC,QAAT,KAAlB,OAAlB,EAVcL,KAEC,OAFoB,OAKjB,MANlB,EAbWJ,KACC,KACA,KACA,KAEG,cALuB,IAQvBC,KAAS,OAAZ,MACG,MAVf,EAXUH,GAAAA,QAEC,OAFkB,OAKf,MANlB,EAsDJ,gBACY,IAA4B,KAEtB,OADhB,QAAA,WAAA,WAOA,IAAA,IACkB,KACTQ,GAAAA,IADP,OAKOlI,IALP,OASOS,IATP,IAeIrD,MAAW,KAAf,GAA6B+K,IAAa,KAA1C,GAIAC,KAAwB,MAE1B,IALW,IAEHN,GAAAA,oBAAc,IAFlB,EALmB,MACfQ,GAAAA,IAA8C,QAAT,gBAA3B,IAFZ,EAJe,OAARC,IACHC,GAAAA,kBAAY,IADhB,EAJe,OAARD,IACHE,GAAAA,kBAAa,IADjB,IANG,IAEHC,GAAAA,kBAAc,IAFlB,EA2BJ,iBAQkB,OADhB,QAAA,WAAA,WAQA,IAAA,IACkB,KACTR,GAAAA,IADP,OASOlI,IATP,OAiBOS,IAjBP,IA2BIrD,MAAW,KAAf,GAA6B+K,IAAa,KAA1C,GAKAC,KAAwB,MAE1B,EAL8C,KAAA,KAApBO,KACpBb,GAAAA,oBAAc,IAFhB,EAVqB,MACZc,GAAAA,IAIQ,QAAT,mBAJc,IAApB,EAPwB,KACD,QAAjB,IAAyC,KADvB,KAApBD,KAGFH,GAAAA,kBAAY,IALd,EANwB,KACD,QAAjB,IAAyC,KADvB,KAApBG,KAGFF,GAAAA,kBAAa,IALf,EANsC,KAAA,KAApBE,KACpBD,GAAAA,kBAAc,IAFhB,EAyCJ,6BAME,OAM2C,KAoBrBG,yBA1BtB,OASU,sBAARC,IAE4B,QACbR,IAGF,eAHY,IAMzB,OAIAjB,IAAAA,MAAAA,GAEmB,KAAjB,IAFFA,GAGEC,IAAW,MACOuB,IAAU,UAC9B,IAE6B,SAtBvB,kBAPR,IAM2C,mCAN3C,wBAmBI,mBAcsB,KAA1B,OAIA,OAgBaE,GAAAA,IAAoB,MACX,oBAFtB,OAKkBH,IAIH,kBAJgB,gBAO3B,IACGvB,IAAAA,GACsB,KAArB,IADDA,GAEgB,KACQ,QAArB,IAAiD,KADpC,KAGIwB,IAAU,UAK/B,IAE6B,SAF7B,SApBE,GADc,iBAFtB,OA2BAxB,QAAAA,KACkB,KAAC,KAAD,KAGlB,EA7C6B,KAGCwB,SAH5B,IACcR,IAAoC,IAAzB,gBACrB,IACwBQ,IAAU,UAKhC,IAE6B,SAF7B,SARoC,GAAf,iBAA3B,IAYA,EAfEG,GAAAA,IAAuB,MADzB,EA+CS1B,GAAAA,IAAY2B,GAAAA,SAAD,MAAlB,EAIN,kBAMmBd,GAAAA,IAAa,SACX,GAAnB,OAIqC,KAAA,KACrC,OAOmC,KAAA,kBALnC,OAM4B,KAeNU,+BArBtB,MASU,yBAARC,IAE4B,QACbR,IAAsC,gBAA5B,IACzB,OAIAjB,IAAAA,MAAAA,GAEmB,KAAjB,IAFFA,GAGEC,IAAW,MACOuB,IAAU,UAC9B,IAE6B,SAjBvB,GAAmC,KAAA,sBAP3C,IAM4B,yCAN5B,0BAcI,sBAcI,KAAR,MAEA,OAYaE,GAAAA,IAAoB,MAC1B,uBAFP,MAKUH,IAAiD,mBAApC,gBACnB,IACGvB,IAAAA,GACc,KAAb,IADDA,GAEgB,KAAc,QAAb,IAAiC,KAAlC,KACIwB,IAAU,UAC/B,IAE6B,SAF7B,SARE,GAAmC,KAAA,IADpC,oBAFP,MAeAxB,QAAAA,KACkB,KAAC,KAAD,KAGlB,EA7Bc,KAGgBwB,SAH5B,GACUR,IAA6B,KAAlB,gBACjB,IACwBQ,IAAU,UAChC,IAE6B,SAF7B,SAJmB,GAAmC,KAAA,IAAhD,oBAAZ,GAQA,EAVOG,GAAAA,IAAuB,MAA9B,IA9BMpsB,UAAK,KAAX,IALMA,UAAK,KAAX,EAgES0qB,GAAAA,IAAY2B,GAAAA,SAAD,MAAlB,EAIN,oBAMe,GAAb,IAAA,GACE,IADF,GAEU,KAAUlJ,GAAAA,IAAlBwI,IAFF,GAGmB,KAAjB,IAHF,GAAA,GAIsB,KAAM,KACX,GAAjB,IAAA,IACkB,KACTL,GAAAA,IADP,OAsEOlI,IAtEP,OA4GOS,IA5GP,OAuHIrD,IAAW,KAAf,MAOI+K,IAAa,KAAjB,MAOAC,KAAwB,MAtI1B,IAwIQ,QAAA,QAAA,IAiBJY,GAAAA,IAAuB,QAjBnB,KAGJ,IAAqD,QAArD,IAKKA,GAAAA,IAAuB,MACHtB,GAAAA,KAER,KAF2B,OAKf,MAX7B,EACKsB,GAAAA,IAAsD,KAA/B,MACHvB,IAAQ,MACJ,SAU7ByB,GAAAA,IAAgB,QAhBpB,EARWC,GAAAA,kBAAyB,IAAhC,EAPOC,GAAAA,kBAAsB,IAA7B,EAVqB,MACjBC,GAAAA,IAGgB,MAAT,gBAHa,IAFtB,EArCuB,KAwBd/B,MAxBP,IACuB,QAArB,IAuBKA,IAAW,MACqB,KAzBvC,MAG6B,QADzB,IAEmB,KAAU,MACjB,MAHZ,IAImB,KAAU,MACjB,MALZ,IAmBE0B,IAAuB,MAMThB,KAEP,KAF4B,OAKjB,MAjC1BhP,EAUQgQ,IAEmB,KAFI,MAIHvB,IAEV,KAARc,GAAqB,IAFK,MAIJ,SAkBzBW,IAAgB,KAAvB,EAvGsB,KAqCX5B,MAtCT,OAKW,QAAT,IAiCOA,IAAW,MACL,KAvCf,SAMkB,KACFvH,IAAZ,IAYO,KADA,IAES,GAFT,IAAA,IAIA,KAAcU,IAJd,IAKHkH,KAAW,KAAe,KALvB,IAOLqB,IAA0C,KAAnB,MACHvB,IAAwB,KAAhB,MACJI,KAAS,OAAZ,MAKG,MAExB,KA1Be,QAAf,OA4BFmB,IAAuB,MAKnB,KAAUjJ,IAAlBwI,IAScX,KACA,KACA,KACA,KAEG,YALwB,IAQxBC,KAAS,OAAZ,MAKG,SAtBjBU,EAC0BN,KACZ,KAAM,KACH,KAEH,UAJmC,IAMpB,SAP7BM,EAhCQS,IAA0C,KAAnB,MACHvB,IAEV,KAAM,KAFY,MAIJ,SAoD3ByB,IAAgB,KAAvB,EA6FV,GACYhN,GAAAA,IAAV,IAIA,IAHQtf,YAAK,KAAX,EAMFynB,GAAAA,IAAKiF,SAAD,MACCC,OAAD,MACCC,IAAsBtN,IAAvB,MACJgI,IAAIsF,IAAD,KACEA,IAAsB,IAAA,KAAvB,MACN,EAEEtF,GAAAA,IAAIsF,MAAD,KACCD,IAAD,KACCD,IAAD,KACL,EACA,GACEG,GAAAA,KAAgBH,IAAuB,OAAxB,KACeE,IAAoB,KAArB,KACO,SAElC,IAAA,OACA,IADA,OAEA,IAFA,OAGA,IAHA,OAIA,IAEO,SAAP3oB,IACI,EAAA,QAENA,IACGwjB,IAAKkF,IAAD,MACAC,IAAD,MACR,EAEED,GAAAA,IAAuB,QAAvBA,IACGrF,IAAIsF,MAAD,KAA4BD,IAAD,KADjCA,EAEF,EAEA,kBAI0DG,QAHxD,OACiB,QAAf,IAIsB,KAAf,IAAsC,KAAc,MAApD,IAEiB,QAAjB,IACD,KAAa,MACN,QACX,KAJe,KAAJ7I,OAAX,IAA8B,EAJd,QAChB,IAAqC,MAArC,IAAoD6I,IAAM,IAAY,OASxE,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,QAlBb,GAAA,SAcqD,EAMrD,EAhBM,EAmBR,IACsBC,GAAAA,IAAqB,OAAzC,IACEA,IAAqB,IAAmC,MADP,GAA/BA,IAAqB,KAAzC,IAEAA,IAA4B,QAC9B,EAUA,EACQ/sB,YAAK,KAAX,EAIF,YACE,IAC4B,KAA5B,IAAmD,KAC5C4oB,KADP,IACOA,IAAiB,IAAa,IAAtB,MAAb,KAAyC,EADkB,GAAjC,KAA5B,IAAmD,KAAnD,MAEA,IAHuB,EAKzB,6BAQa,MAAA,IACc,IACG,MACF,MACN,MACpBoE,IACE,IAAoC,KAApC,IAEIC,IAFJ,EACIC,IAF0B,MAIb,MACfC,MAAJ,GAG8C,IAC1C,OAIe,IACiB,IAAd,IACQ,MAC1BH,IAAmCI,IAAH,MACb,MACZD,IAXT,GAaFH,IAAmCK,IAAH,MACNC,IAAT,IAAA,GAAiCA,IAAW,KAApB,IAC9B,IACiD,IAA5B,IAAd,IACU,IAC5B,GAIA,IAHQttB,UAAK,KAAX,IAhBUA,UAAK,KAAX,EAsBK,UAOFutB,GAAAA,MAAT,IAE0BA,IAAuB,MAA1B,IAFvB,EACKC,IAA4D,IAArB,MAErCD,IAAP,EAEF,EACeD,GAAAA,IAAb,IAIyBA,IAAW,KAJpC,EACwBE,IAAyB,OAE7C,IAA0C,KAA1C,GAGOD,IAAT,IAEIA,IAAkB,KAFtB,EACIC,IAAyB,KAE/B,OAIE,IAEW,IAEiB,KACfF,IAAW,KACXA,IAAW,MACfA,IAAW,MAJF,EAAA,IAAA,IAAA,KAAA,KAAA,IAOTC,IAAT,IAE0BA,IAAuB,MAA1B,IAFvB,EACKC,IAA4D,IAArB,MAD5C,IATQxtB,YAAK,KAAX,EAJiB,IACL,IAgBTutB,IAAP,EAEF,OACwB,MAAf,SAAqC,KAA5C,EAEF,SACaE,GAAAA,KAAwB,IACrB,MACd,OAIyB,MACXH,IACO,MACC,QACtB,IACE,IAC2B,KACI,KAAf,MACG,MAEF,MACJ,SAEf,OAC0B,KACP,gBAKQ,MAClB5D,IAAAA,IAAL,IAekB,KACO,MACH,MAJR,EAAA,KAAA,IAAA,KAAA,KAAA,UAOZ,IAG6C,YAC7C8D,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,aAzBhC,KACE,IAGkB,KACO,MACH,MAJwB,EAAA,KAAA,IAAA,KAAA,KAAA,IAAH,SAOxB,MAAN+D,GAEgB,KAAhB,MAFAA,EACD,MADCA,eAkBA,KA7BjB,mBAAA,UA+BA,IAE0B,SAC1B9E,IAAsB,KAAd,MAARA,KAA0D,IACxC,MACJ,MACA,MACS,MAEV,SACf,IAQO,IAAkC,MAAlC,EALsB,MACtB4E,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,IACT,KAJ1B,IAOU,KAAL,IAAA,IAA0B,MAA1B,IAAP,IAxEQ3pB,UAAK,KAAX,EA0EJ,KACaytB,GAAAA,KAAwB,IACrB,QACd,OAIyB,MACL,MACW,KACd,QACjB,IACe,MAC8C,QACpB,KAAjB,MAA4C,QAAlE,IAEA7E,IAAuB,KAAf,MAARA,KAA2D,IACzC,MACL,MAAb,IAA0C,MACnB,SAElB,IAAA,IAAA,IAAP,IAjBQ5oB,UAAK,KAAX,EAmBJ,EAAgC,EAChC,MACcwtB,GAAAA,IACHC,OAAwB,IACL,IACP7E,IAAa,KAAL,MAAT,GACpB+E,GACsB,QAAmC,IAC9C,MACXC,KAAaC,KAAqB,qBAAA,IAAgC,IAAA,IAAtD,MAIN,MADN,IAAA,GAGYN,IAHZ,OAGkCA,IAAkB,KAAc,QAAhCA,IAHlC,GAKO,WAAM,IAAA,MACXO,KAEEC,KAAwB,sBAAA,aAFhB,IAMGC,IAAb,IAIOtE,OAAAA,MAAP,IACEuE,KAAyB,OAE7B,IANUjuB,UAAK,KAAX,EAQN,GACO,WAAM,IAAA,MACH,KAAA,QAAA,IACMwtB,GAAAA,IAAyB,OACvC,IAIoC,MAChC,IAEyB,KAAA,KAFzB,EAC0B,IAAA,IAAH,MADvB,EAJgB,UACfA,IAAqC,MAChB,IAAA,IAAH,MAHvB,EAQF,EACA,MACY,SACM,MAChBU,GAAAA,OAAsB,KAAtBA,GAAgCC,QAAkB,KACpD,EACA,KAAA,OAAA,SACmB,KAAD,KAAhB,EACED,GAAAA,KAAuB3M,GAAAA,MAAD,KAAtB2M,GAAgCC,KAAmBnK,IAAD,KACpD,EAEF,UAC8B,MACjB,KAEwB,IACzB4E,GAAAA,IAAQ,MAAT,GAAP,EACA,IACA,EAGJ,GACaU,GAAAA,UAA6B,QACxC,IAAiB8E,sBAAqB,IACxC,EACA,GACaC,GAAAA,OAAuB,QACnB,MAAf,IAAkE,IAC/B,MAAjB,MAMKC,KALR,UAAA,KAAA,KAQL,MAC6BC,KAAqB,KAE1Df,MAF0D,OAAxB,MAKxB,KAAL,IAAA,IAAA,IAAP,EAGM,KAAA,OAAA,OAAA,QAAA,OAAA,IACGA,GAAAA,IAAyB,KAClC,IAIsB,MAClB,IAEoB,KACH,MACJ,MACS,MALtB,EACiC,MAAX,MADtB,EAJW,UACVA,IAAqC,MACT,MAAX,MAQtB,EAGOC,GAAAA,OAAwB,IAAE,KAAjC,EAEF,GACaY,GAAAA,OAAuB,IAClCb,IAAyB,QAAM,IAAA,MACVM,WACnB,MAGA/R,OAAAA,aAJ6B,IAAb,MAMpB,EACA,aACa0R,GAAAA,KAAwB,MAC5B1R,OAEMuR,MAAb,IACmBA,IAAW,KACR,SACpB,IAAqBkB,KAAmC,MAAjB,SAAvC,GAKFhB,IAAyB,QAAM,IAAA,MACVM,QAAW,eAAD,IAAb,MACpB,EAN2BA,mBAAU,IAAb,MAClB,EAOGW,GAAAA,wBAAe,IAAtB,EAGOC,GAAAA,wBAAgB,IAAvB,EAGOA,GAAAA,qBAAgB,IAAvB,EAGOA,GAAAA,wBAAgB,IAAvB,EAEF,YACqB,GAAnB,MAQA,MAAA,MAQF,MANsB,IACJ,MACZ,KAHF,QAPkB,IACb,KACH,KAHF,EAIIC,GAAAA,QAAG,KACL,EAOEA,GAAAA,MAAW,QACb,EAGN,UACS,QAAA,IAA8C,KAAC,IAAA,IAAD,KAC9CD,GAAAA,KAGLE,KAA2B,QAAA,uBAHN,IAAvB,EAOF,EAA4B,EAC5B,QACanB,GAAAA,OAAwB,MAC5B1R,OACa,KACpB,IAAA,IAGEyS,QAAkC,IAAhB,MAHpB,GAMqB,IAAA,IAAA,IAAH,MAClB,IAFkB,IAAhB,EAIJ,KACaf,GAAAA,OAAwB,MAC5B1R,OACa,KACpB,IAAA,IAGEyS,QAAkC,IAAhB,MAHpB,MAMuB,IACF,IAAA,IAAA,IAAH,MAClB,IAHkB,IAAhB,EAKJ,SACa9E,GAAAA,OAAAA,MAAX,IAKAd,MAAQ,MAARA,GACYiG,IAAuB,IAChCrB,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,MAChB,MACjB,EARQ,KAAJmF,KAAkC,QAAyB,IACxC,MAFrB,EAWJ,UACyB5G,GAAAA,YAErB,UAAA,OADmB,MAEX,KACW6G,IAAyB,KAC9CA,IAAuC,EAAH,MACpC,EACY,QAAc,IAC1B,GACwB,IACnBA,OAAoC,MAE3C,EAJY,EACc,IACnBA,IAAoC,MACzC,EAGOtB,GAAAA,OAAwB,IAAE,KAAjC,EAEF,MACauB,GAAAA,OAAiB,KACnB,UAAA,SAAA,MAOLC,KAAmB,KAAvB,GAEaC,mBAA2B,MADnC,IAIaC,KAAgB,IAChCf,gBAAqB,IACrBgB,KAAwB,OANrB,EAD2BC,KAAwB,MAS1D,EACA,oBACaL,GAAAA,KAAiB,KACjB,UAAA,MAAA,SAOPC,KAAmB,KAAvB,MAEuB,KAER,OADb,YAAA,OAEwC,KAFxC,OAGqB,SAHrB,IAM4B,YACA,WACJ,MACH,MACbrG,IAAQ,MAAZ,GAQF,EAP2B,SACvB,OAE+B,KAAd,MAAuC,MAFxD,KACiB,MAAYS,KAAyB,KADtD,GAGiB,MACjB,EAEF,EAGK6F,mBAA2B,SACpC,IACaC,KAAgB,OAC3Bf,mBAAqB,IACrBgB,KAAwB,OAH1B,EAHY,EACV,EAvB4BC,KAAwB,MA8B1D,EACA,GACuB,KAET7B,GAAAA,IAAVxJ,IAAAA,KACC,IAAA,GAAoCwJ,IAAdrJ,IAAtB,GAFH,EAKF,MAC2E,KAAA,IAA/B,IACvB,OACnB,IAE2B,KAAV,MAA+B,MAFhD,EACgB,MAEH,QACf,EACA,eACa4C,MAAX,IACwB,KACJ,MAAR,IACN,IACO,MACXyC,GAAAA,MAAiB,MALnB,EAOF,EA2LA,WACE,OAGc8F,GAAZ,GAAYA,QAAa,KAAjB,IAAsC,QAA9C,MAGF,EAAE,EAEkC,SAAhC,IAAmD,UAAnD,IAAA,IACJ,GACO,KAAA,IAAA,KAAA,OAAA,KAAP,EAOF,MAIW,MAAA,EACC,MAJH,KAAA,IAAA,KAAA,KAAA,KAAP,EAcF,cAGMrQ,GAAAA,IAA2B,MAAsC,MAC7B,MAAlB,IAAoC,MACpC,OAEd,IAAmC,UAAnC,IAAkD,KAJY,EAAA,KAAA,IAAA,KAAD,OADnE,MAMQhf,MAAa,KAAU,KAAV,KACvB,EAAE,EAAA,MACAkf,QAAW,KAAD,KAGZ,EACF,EAHYxb,GAAAA,IAAN,EAKN,QAAA,IAAA,IACS4rB,GAAAA,gBAAY,SACX,MACO,IAAA,KAAH,MACS,KAAZ,IACO,KAAH,MAIb,EAHEC,GAAAA,IAAAA,KAAsC,IAA8BC,GAAAA,IAAH,IACjEC,KAAiB1L,GAAAA,IAAO2L,MAAR,MAClB,EAGF,UACSJ,GAAAA,cAAY,SACX,MAC4B,KAAK,UACtB,GAAnB,sCACuB,KAAZ,IACM,KAAH,MAGI,KAAH,MAIC,OAChB,IAAA,GAC4B,MAAX,GAAf,IADF,GAEmB,KAAH,MAWhB,EApBWK,GAAAA,IAAyBH,MAAD,KAA/B,EAGAC,GAAAA,KAAiB1L,GAAAA,IAAO2L,MAAR,MAClB,EAKiB,OACfD,GAAAA,KAAiB1L,GAAAA,IAAO2L,MAAR,MACD,QAAA,GAAf,IACYE,MAAT,IAEGA,IAA0C,KAAA,KAF7C,IACiDjnB,MAAI,IAAA,IAAD,KAAA,UAAA,IAAA,IAAV,IAEjC+mB,IAAS,MACC,MAACA,IAAS,OACd,OADsB,EAAA,KAAlB,MAGxB,EAGJ,SACsB,QACpB,IAK4B,KAAA,OACxB5T,MACoBnT,MAAG,KAAA,OAAA,IAAA,IAAkB,KAAA,SADzCmT,EAL+B+T,GAAAA,IAAe,KAAA,OAAA,IAAA,IAAtB,QACNlnB,MAAG,KAAA,OAAA,IAAA,IACV,KAAA,SAKF,KAAA,KAAbmnB,GACgB,KAAA,KACNC,GAAAA,KAAsB,mBAAA,IACjB,KAAA,MAHfD,EAIF,EAGA,cAEI,IAEItD,GAAAA,IAES,gBAFW,IAFxB,EACIwD,GAAAA,iBAAgB,IAFF,QAStB,EACA,YAOuB,MACG,KACxBC,GAAAA,OAAoB,MACRC,mBAAe,MAQ3B,IAAyBC,IAAzB,GAEyC,KAAV,MACZ,WAAM,IAAA,MACb,KAAU,GAAJ,IAAA,MACdC,KAA4B,OAJ9B,EAMY,QAAM,IAAA,MACpBC,mBAAiB,IACI,KAArB,EAEF,iBAOE,OAgCc,KACI,KAAPC,MAAX,IACsB,KACC,MACT,IAAiC1G,GAAAA,IAAjC,EACC,MAAb,GAA8C,KAAuB,KAArE,IAGY,QAAM,IAAA,MACVc,GAAAA,OAAoB,MACF,KAAjB,MACG,MACc,MAA5B,EANW0F,GAAAA,KAA4B,OAAnC,EArCkB,SAEH,GADjB,IAEGG,GAAAA,OAAe,KAFlB,GAGiB,MAHjB,IAIoB,MAJpB,IAKsB,MALtB,OAQuB,MACC,MACpBC,sBAAyB,IAH3B,EAWQzF,GAAAA,KACC,KAIK,kBALqB,IAQT,KAAjB,MACG,MACc,MAA5B,EAgBJ,iBAOE,OACyB,KAErBnB,GAAAA,MAAY,SADd,GAES,KAAuB,QAFhC,MAKsB,IACU,MACd,KAAP0G,MAHT,IAQmC,KAAV,MACrBF,KAA4B,OAF9B,EAFc,WAAPE,OAAP,MAAmD,OAOlDG,GAAAA,sBAAuB,IAA9B,EAQF,WACgC,KACJ,OACZ,IAA0B,KACd,SAA1B,OAqCE,IAC2B,MAATC,IACe,MAE/BlJ,GAAAA,IAAKmJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IA1CvB,KAC2B,QAAd7H,MAAX,aASaU,IAAX,IAiB+B,UAAH,SAKhB,IAA8B,MAC1CjC,GAAAA,IAAKmJ,IAA0BC,MAA3B,MACJA,IAAkB,IAAA,IAjCpB,QAYQ,IACa,MAATF,IAE2C,MAA5B,MACW,UAAA,MAAH,MAKF,MAC3BlJ,GAAAA,IAAKmJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IAbrB,EAT8B,UAAH,MAK3BpJ,GAAAA,IAAKmJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IAmCzBP,GAAAA,mBAAiB,IACI,KAArB,EAEF,MAC0B,OACxB,IAAA,IAAA,IAE8B,KAF9B,IAIgB,WAAM,IAAA,MAJtB,EAKF,EACA,YAOgBxG,GAAAA,MAAiB,KAAjBA,GAEVtC,IAAkB,KAFRsC,EACV/B,IAEMgC,IAAgB,MAC1BmG,KAAoB,MACRC,sBAAe,MAQ3B,IAAyBC,IAAzB,GAEyC,KAAV,MACZ,WAAM,IAAA,MACb,KAAU,GAAJ,IAAA,MACdC,KAA4B,OAJ9B,EAMY,QAAM,IAAA,MACpBC,mBAAiB,IACI,KAArB,EAEF,iBAOMxG,GAAAA,MAAiB,OAArB,GAEEgH,IAAmB,OAErBZ,KAAoB,MACO,OAA3B,OAKK,OA2EsB,KACzBa,KAAgB,MACS,KAET,KAAwB,QAAtC/H,IAEIgI,KAAkC,KAAf,MACX,MACmB,KACd,KACG,UACT,GAAb,IAAA,IAEmBlH,IAAiB,KAAjBA,GAEXtC,IAAkB,KAFPsC,EACX/B,IAEUgC,IAAgB,MALlC,EACkBxK,KAAW,KAKoB,UAEhC,GAAf,OAAA,GAC8B,MAAf,GAAf,IADA,GADF,GAGiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GAHH,GAKI0R,IAAAA,GAAiCC,IAAlC,GACCC,mBAA6B,IAMnB,IACW,KACX,MACd9G,mBAAkB,IACW,KAC7B4G,OAAAA,OAEA1J,IAAyB,KAFzB0J,MAGAG,IAHAH,MAqDmC,MAAf,GAAf,IAAA,GACsB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADF,GAGgB,QAAM,IAAA,MACO,MAAf,GAAf,IAAA,GACuB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADH,EAAA,MAGiB,WAAM,IAAA,QAHvB,KArDC,GACE7G,kBAA0B,IAMD,KAE1BgH,IAAAA,GACAC,4BAA0B,IAD1BD,KADF,MA2BmC,MAAf,GAAf,IAAA,GACsB,KAApBH,IAAAA,GACqB,KAApBC,IADDD,GADF,GAGgB,QAAM,IAAA,MACO,MAAf,GAAf,IAAA,GACuB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADH,GAGiB,WAAM,IAAA,MACM,MACA,MApCjC,KAYKK,GACgC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADFA,GAGgC,MAAf,GAAf,IAC6B,MAAA,OACA,MAAf,GAAf,IACqC,MAAA,OAKT,MAAf,GAAf,IACiB,QAAM,IAAA,MACO,MAAf,GAAf,IACiB,WAAM,IAAA,MAWZ,MACA,MACE,SAnDrBL,KA7G6B,KACF,KACb,MACW,KACA,UACZ,GAAb,IAAA,IAEoBnH,IAAiB,KAAjBA,GAEZtC,IAAkB,KAFNsC,EACZ/B,IAEWgC,IAAgB,MALnC,EACmBxK,KAAW,KAKU,UAErB,GAAf,OAAA,GAC8B,MAAf,GAAf,IADA,GAEJgS,GACiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADHA,GAGIN,IAAAA,GAA0BO,IAA3B,GACCL,mBAA6B,IAMnB,IACe,KACf,MACd9G,mBAAkB,IACS,KAC3B4G,IAAAA,IAEA1J,IAAyB,KAFzB0J,GAGAG,IAHAH,GAwCmC,MAAf,KAAf,OACgB,QAAM,IAAA,QADtB,KApCA,GACE7G,kBAA0B,IAMC,KAE5BgH,IAAAA,GACAC,4BAA0B,IAF5B,GAoBmC,MAAf,GAAf,IACgB,QAAM,IAAA,MACM,MACA,MAvBjC,EAWKE,GACgC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADFA,GAGgC,MAAf,GAAf,IAC4B,MAAA,IACC,MAAf,GAAf,IACoC,MAAA,IACR,MAAf,GAAf,IACiB,QAAM,IAAA,MAKZ,MACA,MACE,SAtCrBN,EAnCAQ,KAAwC,MACtCC,KAAsB,OACtBC,mBAAkB,MA+KfC,yBAAoB,IAA3B,EASF,iBAQEC,GAAAA,OAAO,MACoC,QAAd7I,MAAP,OACtB,GAAA,GAEI8I,GAAcC,MAAyB,OACvC1B,KAA4B,OAF9B,EAI2B,KAC7B2B,IAA2B,MAEzBC,GAAkD,UAAhB,KAAlCA,IAEuB,MAAA,IACX,QAAM,IAAA,MACpB,IAAA,GAaI3B,mBAAiB,IAbrB,EAC6B7D,IAEhB,eAFoC,IAAvB,MAMEA,eAAoB,IAAvB,MAOkB,KAAf,MAC5BqF,GAAcC,MAAyB,OAClB,KAArB,EAEF,GAC2B,KACrB,MAAJ5L,GAMQ,KAAJA,GACA+L,GAAAA,IAA8C,SAArB,OADzB/L,EALA+L,GAAAA,IAEM,MACA,MAAwB,OAA5B/L,IAHuB,OAO7BgM,GAAAA,KAAsC,QAArB,MACnB,EAGS,aAAA,MAAP,EAEF,SACgC,KACVC,GAAAA,IAAmB,KAEH,QAAdpJ,MAAP,OAEf,KAEI,IAAoC,OAApC,OAEWqJ,IAAP,IAFJ,GAGJ,KACK,IAAwC,UAAxC,OACY,MADZ,EADoD,WAAM,IAAA,WAG/D5K,IAAK2K,OAAqBC,MAAtB,QACJ,OA2CyB,KACzB,IAEqC,MAFrC,OAaA,MA0CsB,KACA,KACV1H,KAES,KAF0B,MAAA,IAAA,IAAf,MAIX,KAAd3B,IAAP,IAAmD,MACnC,MACC,MACjB,IACgC,MAC9B,IAEoB,KAAA,KAFpB,EACiC,IAAA,IAAH,MAA8B,QAAM,IAAA,MAEhD,MACQ,MAC5B,EAzD0B,MACG,KACF,KACQ,KAC4B,KAArC,MAAA,IAAA,IACjBsJ,IAAP,IAAwC,KAAxC,IAKkB3H,KAAoB,MACO,WAAf0H,IAAH,SAN3B,EACgC,KACP,MACE,MACE,SAG7B,IAEqBhH,kBAAuB,IAM3B,QAAM,IAAA,MARvB,EACoBV,KAAoB,MAQrB,MACH,MACC,MACG,MAES,KACT,KAAM,KAExB,IAG2B,MAAV2H,IAEY,MAHzB,EAAA,KAAA,KAAA,KAFJ,EACIC,KAA2B,KAMP,MACO,KAAc,GAArBhC,IAAH,MACQiC,IAAH,MAC5B,EAjDOC,2BAAiC,IAAxC,EA/CwB,KACxB,IAAwC,MAAxC,OASsB,KACH,MACZC,GA4BHC,KAA4B,MA5BzBD,KACyB,KACE,KAChB,MAAA,IAAA,IACPE,IAAP,IAAA,IAGoBC,iBAAwB,IAH5C,EAC6B,MACC,SAOnBxH,kBAAuB,IAMd,MACL,MACM,MACA,MACN,KAAuBkH,KAA2B,KAA9B,MAGHC,IAAH,SA1BjC,EATyB,KAAdxJ,IAAP,IAEI8D,IAAM,UAEe,MAFrBA,EADqB,MAF3B,EAkHN,GACoB+F,GAAAA,KAChB,MAAA,OAAA,IACc,cAF0B,IAMpB,MACM,MAA5B,EAEF,QAME,IACYC,GAAAA,IAAT,IAEGA,IAAoB,KAAA,KAFvB,EACsB,IAAA,IAAH,IAEtBrG,GAAAA,OAA4C,iBAAxB,IACVkG,KAEM,KAAa,KAFS,MAI/B,QAAM,IAAA,MACe,MAC5B,EAEF,mCASE,MAiDyB,QAAd3J,IAAX,OAOI8D,GAAAA,MAAM,IAiB+B,KAArBpD,IAChB0G,IAAJ,GAAA,IA8DItD,IAAM,IAQA6F,KAAsD,KAA1B,MAC/B,WAAM,IAAA,MACb,EAvEc3E,MACZ,OACwB,GAAdtE,IAAR,MAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,MAAA,KAgCI,KAHA,KAQ4B,MAATkJ,IAAdN,MAAP,OAGF,IAAA,GAC8B,MAA5BA,IADF,GAE2B,MACzBhJ,KAA6B,MAC7B8E,sBAAqB,IAEzB2E,KAA+B,IACfC,OACdhzB,UAAK,KAD4B,KAK5BizB,gBAAsC,IAA7C,EA/EOA,GAAAA,kBAAsC,IAA7C,EAjDkB,WAAdjK,IAAJ,MAe2B,OAA3B,OAMyB,MACE,KACf6J,GAAAA,KAC4B,KAAtC,MAAA,IAAA,kBADkC,IAMpBxH,cAAuB,IAM1B,KAAM,IAAA,MACH,MACI,MACH,MACG,MACC,QAAdrC,IAAP,IACEyD,IAA4C,eAAxB,IACR,KAAuB8F,KAA2B,KAA9B,MAGHC,IAAH,MAC5B,EA7BmC,KAAV,MACN,QAAM,IAAA,MAFvB,EAdiB,WAAM,IAAA,MACJQ,GAAAA,OACfhzB,YAAK,KAD6B,KAKpCizB,gBAAsC,IAPxC,EAkJN,MACO,KAAM,IAAA,MACU,OACrB,IAAgC,KAAM,IAAA,MACtCC,GAAAA,KAAqC,UAAN,OACjC,EACA,eAOkC,OAChC,IAS6B,MACH,QACS,MACd,MACA,MACI,MAdzB,EACoC,UAAA,MAAA,IAAA,KAAA,KAAH,MADjC,EAeF,EACA,mBACgC,KACL,MACH,MACtB5C,GAAAA,KAAoD,gBAAnC,IACL8B,IAAmB,QACpBQ,MAAX,OAGE,OAAsC,QAAPrC,IAA/B,OACkC,KAA7B,OACiB,KAAlB,IAGuB,KAAlB,IAEoB,KAApB,IACI,KAAa,MACH,KACjB,EAJA4C,KAA2B,OADxB,EAFa,KAAhB,IACEA,KAA2B,OAQ/B,IACuB,WAAvB,IACsB,KAApB,IAAsC,KAAtC,IAEiB,KAHI,WAAvB,IAKO,KAAyB,KAAV,MACL,KAlBhB,GAAA,UAoBI,IAxBX,KACgBP,IAAAA,IAAoC,QAAM,IAAA,MAyB1DnL,IAAK2K,IAAD,MACqB,QAAdpJ,IAAX,OAEE,IAAA,WAAA,QAAA,IAgDgC,MAhDhC,KA6CIoK,kBAA2B,IAC3B,KAtB4B,KACH,UAAzB,IACuB,WACrB,IAAiCC,KAAkB,KAAnD,IAIqB,KACF,YAPrB,MAGwB,SAQxBD,oBAA2B,IAO3B,EAzC4B,SAC5B,IACwB,KACpB,IAAA,GACWC,KAAkB,KAA3B,IADF,MAG0B,QAL9B,IAOA,IAG+B,KAA+B,MAH9D,EACkC,KACT,MAEzBD,qBAA2B,IAO3B,EAvB2D,MAoD5C,KAArB,EAEF,MACuB,QAAdpK,MAAP,IAAA,KACE,IADF,KAEqB,MACM,MACV,QAAM,IAAA,MAJvB,EAKF,EACA,UACE,IAAA,GAA0D,KAAV,MAChDW,GAAAA,IAAgD,KAAlB,IAAA,IACS,QAA5BD,MAAX,OACA,GAAsC,KAAkB,KAAxD,OAE2B,KAA3B,IAC0B,KACViB,KAAqC,KAAjB,MACd,MACG,MAAmC,cAA1D,IACoB,KACqBA,KAE5B,KAFgD,MAAvB,MAIf,MANmC,cAA1D,IAOmB,MAEA,KAArB,IAdQ3qB,UAAK,KAAX,EAFmD,EAkBvD,WAKwB,KAAtB,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,OAAA,OAAA,SA+D2B,MACrBszB,GAAAA,OAAwB,OAF1B,EApB6C,KAA5B5J,MAAP,IACQ,QAAP6G,IAAX,IACE,GAMc,KAAM,IAAA,MAEI,KAC1B,IACuB,MACN,MACM,MACvB9I,GAAAA,IAAK2K,IAAwC,OAAzC,MACJ,MACK,EAdMmB,GAAAA,OAA2B,OAAlC,EAxBoB,KACxB,IAiBA9L,GAAAA,IAAK2K,IAAwC,KAAnBA,MAAtB,MACJ,KAjBsB,MAApB,IAMuC,KAAM,KAAlC1I,MAAX,IAEAjC,GAAAA,IAAK2K,IAAwC,KAAnBA,MAAtB,MACM/B,KAA4B,SAK/B,IAA0B,KAAjC,EAPSmD,GAAAA,OAAuB,OAA9B,EALE/L,GAAAA,IAAK2K,IAAwC,KAAnBA,MAAtB,MACW,QAAM,IAAA,MAFvB,EATwB,KAAK,MACL,KAAc,KAC1C3K,GAAAA,IAAKqB,IAAoB,QAArB,MACkB,MACtB,EAPAqJ,GAAAA,KAAgD,KAAU,QAAzC,MACjB,EALArI,GAAAA,IAAgC,OAAf,KAAjBA,GACEgH,IAAmB,KADrBhH,EAHA2J,GAAAA,OAAe,KACf,EAJAC,GAAAA,OAAmB,KAiEhBrD,GAAAA,OAA4B,OAAnC,EAEF,gBACE,IAA+B,KAAwB,KAAvD,IACwB,QAAbsD,IAAX,IAC4B,KAA5B,IACoB,KAAPpD,IAAX,IAAmD,KAAPA,IAA5C,IAEiB,KAHnB,MAKA,IAHI,IAHkC,IADyB,EAkDjE,4BAMgC,KAM1BqD,KANJ,OACgB,KAAd,OAMqB,KAAd,IAKc,QAAd,OACU,KAAf,IAAoC,KAApC,IAIsB,QAAjB,OACC,KAAa,MACN,KACX,KANgB,KACd,IAAqC,MACrCC,iBAA4B,OAHhC,EALe,KACf,GAAA,GAEAD,IAAgD,MAA5B,SAJf,IAGG5zB,UAAK,KAAX,EARiB,QACnB8zB,MAAAA,GAAAA,GAEcC,IAAmB,KACjCH,IAAgD,MAA5B,SAgBtB,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,QA5Bb,GAAA,SAwBgE,EAMlE,EAkEA,KACqB,MAAnB,IAAA,QAAA,OAY8B,UAC1B,IACuB,KAArB,OAC8B,QAFhC,IAGA,IAI4B,MAJ5B,KACII,GAAgD,MAAhDA,IAEc,MAAa,MAF3BA,EACmB,MADnBA,EAfkC,UACtC,IACmC,KAAjC,OAEsD,QAHxD,IAIA,IAEyB,MAFzB,EACqB,MADrB,EAeN,EACA,WAE4B,KAAtB,IAAA,GACa,KAAU,KAAwB,KAA/CL,IAI+B,KADnC,cAQE,OAC4B,KAAiB,KAAzBM,IAAJ,IACa,KAAZ,IACY,KAAZ,IACG,MACI,WALxB,cAPA,IAC4B,KAAiB,KAAzBA,IAAJ,IACa,KAARA,IACQ,KAARA,IADJ,IACA,IACG,MACI,WALxB,IAaW,KAAa,IAAA,MACF,MACxB,EAEF,yBAC+B,KAC7BC,GAAAA,IAAc,KACQ,uBA0TlB,EAFA,EAZEC,KAAc,IACwB,KAAvB,IACf,IAAA,GACmB,KAAhB,IAAA,IADH,GAEiB,WAAM,IAAA,MACvBzK,GAAoC,QAAdV,IAAtBU,IAGI0K,KAAgB,KAHpB1K,EACWmH,UAAAA,IAAP,IACAuD,KAAgB,KARtB,EAzHA9M,IAAI8K,IAAD,KACkB,KACrB,OACgC,QAAdpJ,IAAP,IACS,MACpB,UAmEE,MAEgBqK,KAAkB,KADhC,IAiBMzoB,IAAG,OAAP,IAAgB,MAAhB,IACEypB,IADF,IAAA,SAEE,IAFF,GAAA,MAGkB,KAAM,IAAA,MAEtBC,KAAkB,YACG,QANvB,EAbkB,KAAM,IAAA,MAEJ,KAClB,IAC8B,MACb,QAAM,IAAA,MACvBA,KAAkB,MACL,QARf,IASqB,YATrB,IAUkB,OAVlB,GAYSF,KAAgB,KAAvB,EASF,MAAJ9iB,GAGoB,KAChB,IAEyB,MAFzB,EACoB,MAEV,SAPdA,KAC4C,KAAjB,MACF,SAFzBA,KA3FA,MAGUijB,IADR,IAAA,IAEqC,KAAPhE,IAF9B,IAI+B,KAA7B,IACkB8C,KAAkB,QAClC,IAgDiB,KAlDnB,IAoDW,MAAb,IAAA,GACEzoB,IAAG,IAAKypB,IAARzpB,IADF,GAAA,MAEkB,KAAM,IAAA,MAEtB0pB,KAAkB,YACG,QALvB,KAjDoB,KAAM,IAAA,MACpBA,KAAkB,MACK,KACvB,IAC8B,MACb,QAAM,IAAA,MACI,MAEM,KAAjC,OAGa,KAAM,IAAA,MACU,KACzB,OAUyC,KAAhB,MACU,KAAhB,MACgB,KAAhB,MACO,MACH,MACoB,KAAhB,MACgB,KAAhB,MACc,KAAhB,MACS,KAAhB,MACO,OAEnB,IAGiB,KACO,MAFpB,EAAA,IAAA,QAHgB,MApB1B,EACyB,MACN,MACA,MACO,MACC,MACA,MACF,MACC,MACH,MAkBG,KAhC9B,OAiCA7M,IACE2K,IACoB,QAAnBA,OAAAA,IAFC,MAIiB,KAArB,EAtDMkC,KAAkB,SAoGjB,MAAjB,IAWAF,KAAgB,KAChB,EAV0B,MACP,MACY,KAAjB,MACiBxpB,IAAG,IAAN,MACD,MACZwnB,IAAmB,KAC9B3K,IAAK2K,IAAqBoC,MAA+BjE,IAA/BiE,KAAYjE,OAAAA,IAAlC,MAPN,EAzGwB6D,KAAgB,KAAvB,EAPjBtK,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IACpDL,KAAgB,KAFlB,EALEM,KAA0B,KAAK,MAApB,KACXN,KAAgB,KAFlB,EANEO,KAAgB,IAChBC,IAAmB,MACnBR,KAAgB,KAHlB,EA1CA9M,IAAI8K,IAAD,KACsB,KAEvB,IADF,GAEmB,KAFnB,OAGoB,KAAc,MAHlC,OAKE,IAA0C,MAA1C,IAeWU,MAAT,IACG+B,KAAuB/B,IAAD,KAAmC,MAD5D,EAdA,MAQqB,QAAd9J,IAAP,IAC+B,MACjB,QAAM,IAAA,MACpBoL,KAAgB,OAMlB,GAAgC,WAAdpL,MAAAA,MAAP,EAEY,QAAdA,IAAX,OAEc,IACG,IAAA,GAAoC,KAAhB,IAArCU,IAAAA,MAAAA,GAEkB,KAAM,WAAM,IAAA,MACP,QAAdV,IAAP,IACG,GAA2BoJ,IAAmB,KAAnBA,IAA3B,IAGGW,KAA+B,IAHlC,EACSwB,IAAN,OAC6B,IAEd,KAAvB,IAAsD,QAAM,IAAA,MAC5DH,KAAgB,KAChB,EAZ8B,MAA5B,IAnBUp0B,UAAK,KAAX,EAjCN,GAAqC,KAArC,QAQmB,GAAjB,IAA2D,KAA3D,IAIU6sB,KAAgBH,IAAuB,KAAxB,KACKE,IAAoB,KAArB,KACFkI,iBAAkB,IAArB,MAd1B,IASU90B,UAAK,KAAX,EARF+0B,IAGS,gBAHO,IAoBlBX,KAAgB,KAChB,EA1EAY,KAAc,KACAnI,KAAgBH,IAAuB,KAAxB,KACJ,KACzB,IAA8C,KAA9C,OAUE,GAC6B,KAA3B,IAIA0H,KAAgB,KAChB,IAJQp0B,UAAK,KAAX,EAMJ6sB,KAAgBD,IAAoB,KAArB,KACL5F,OACE,IAAA,IACLiO,IAAoB,KACPlQ,IAElBE,IAEI,aAJ4B,IAMpBgC,IAER,eAFkB,IAOViO,IAAwB,KAAA,mBAAA,IAAA,IAM5B,EAAA,KAAA,IACVC,gBAAiB,IACO,MACD,KAAvB,IAA8C,WAAM,IAAA,MAApD,EA3CAC,qBAAqB,IAOZ,KAAuB,KAA9B7E,IAAqD,WAAM,IAAA,MAsC/D6D,KAAgB,KAChB,EAvE+B,KAC7BO,KAAgB,IAChBrN,IAAIC,IAAD,KACCC,IAAD,KACH6N,KAA2B,IAChB,MAAX3L,GACqC,MAAd,MACM,MAC5B,IAAA,GAAoC,KAAhB,IAApB,GACC,IADD,GAES,KAAc,MAArB6G,GACsB,WAAdvH,IAAP,IADDuH,GAFF,GAIiB,WAAM,IAAA,MACbuC,IAAT,IACG+B,KAAuB/B,IAAD,KACP,IACpB8B,IAAmB,MACnBR,KAAgB,KAlBlB,EALEtK,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IACpDL,KAAgB,KAFlB,EAFOA,KAAgB,KAAvB,IAiTEp0B,MAEY,SADhB,QAAA,IADS,KAAX,EAMF,KACEk0B,GAAAA,MAAc,KACQ,uBA+ClB,EAFOC,KAAc,IAArB,EAHOO,KAA0B,KAAK,MAApB,KAAlB,EAFOC,KAAgB,IAAvB,EAFOrN,IAAI8K,IAAD,KAAV,EAfA9K,IAAI8K,IAAD,KACqB,KACxB,IAEkB,MAFlB,IAGyB,KAHzB,IAQwB,WACjB7B,MAAAA,SACuBA,OAAAA,IAAJ,SAD1B,IAJQvwB,UAAK,KAAX,EATKg1B,KAAc,KAArB,EAVEL,KAAgB,IAChBrN,IAAIC,IAAD,KACCC,IAAD,KACH6N,KAA2B,IACF,WAClB9E,QAAP,OAAkCA,MAAlC,UAC8BA,IAAAA,IAAJ,SAP5B,EAPEzG,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IAC3B,WACzBlE,MAAAA,SAC8BA,OAAAA,IAAJ,SAJ5B,EA+CA,EAKN,OACmB,UACjB,WACqB,GAAnB,OAMgB,MANhB,EAEO,KACL,EAAE,EACA+E,GAAAA,KAAuB,OAG/B,EAEE,KACS,IACT,EAAE,EACAA,GAAAA,UAAuB,OACzB,EACF,EAEA,2DACiB,GAAA,IAAf,OAEaC,OACS,KACP,KAAJpP,IAHT,OAAA,OAOkBoP,IAAhB,OACSA,IACP,GACoB,KACH,KAAJpP,IAAX,UACc,KAAZ,OAAA,OAAA,OAAA,IAAA,OAAA,OAAA,OAAA,IAAA,MA2BUnmB,UAAK,KAAX,KArBA,OACyB,KACF,QACJ,QAC4B,MACrC,KAAqB,KAAzBmmB,IAEI6K,QAAwB,QAAL,MAFvB7K,KAAAA,GADyC,SAMD,MAetD,EAAE,EACAmP,QAAkC,KAAX,OACzB,GACiB,QACjB,OAKiB,KAAP,IA7CZ,eAyC4B,KAAP,MACP,IACV,QA7Cc,MAAqB,IANJC,IAAvC,OAuDUC,SACuB,IACjC,EAEF,UAKgC,OAChB,IAAkC,MAChD,IACyC,KAMjCC,QAJO,KAANC,IAAL,IACsB,MACN,SACd3Z,IACE0Z,KAAiB,UAEN,KAPjB,IAUJ,EACA,UAC6B,OACZ,IAAoC,MACnD,IAC2C,QAE5B,KAANC,IAAL,IACwB,KACI,IAAZ,MAED,KALjB,IAQJ,EACA,GACuB,OACrB,IACmB,MAAUC,GAAAA,OAAuB,KACzC,MACI,MACF,MACE,MACH,MACM,MACC,MACA,MACD,MACH,MACE,QACnB,EACA,aAKsB,KAClBC,GADF,IACEA,KAA4B,OACV,KAFpB,IAGF,EACA,qBAKM3P,GAAAA,IAAJ,GAA0CA,IAAY,UAAnB,GAAnC,IAEIA,IAAiC,MAACC,IAAD,MACnC,EAAE,EACgB,uBA6EhB2P,KAAkC,OAKlC,KAZAA,KAAkC,OAKlC,KAtBAC,KAAe,MACW,QACW,UAAlB,GAAnB,IACE,GACmC,KAAf,MACiB,KAAf,MACc,MAAA,IACpC,EAAE,EACAR,KAAuB,OAE3BO,KAAkC,OAKlC,KA5C8B,UAC9B,OAE6B,SAF7B,OAIyC,QAGlB,MACF,KACjB9Z,IACUga,IAAP,IAEUA,IAAP,IACAN,KAAiB,OADjB,EADAA,KAAiB,OAOR,QAbjB,IAgBFI,KAAkC,OAKlC,EAtCAG,IAA+B,KAAU,MAAvB,KAClBH,KAAkC,OAKlC,EAjBAC,KAAe,MAEfD,KAAkC,OAKlC,EA2EAA,KAAkC,OAMxC,EACA,OAC8B,OAC5B,cAC0B,MACK,KAC7B,IAC6CI,GAAAA,IAAe,KAAA,OAAA,IAAA,IAAtB,SADtC,QAEiB,KAAC,KAAD,KAMrB,EANsB,GACJC,GAAAA,KAAyB,KAAOC,GAAAA,MAAP,OACrCC,IAAc,KAAA,KAAdA,GACGA,IAAc,KAAA,KAAyB,KAAA,MAD1CA,EAEF,EAGJ,qBAC6B,SAC3B,WAC+B,KAQzBd,GARJ,UAC+B,IAE3BM,WAA4B,OACC,QAC7B,OAAuC,MAAvC,GACoB,MACtB,EAAE,EACAN,QAAuB,OACzB,GATqC,SAAV,KAA7B,OAWa,WAAXe,IAAJ,MACgC,QAC5BC,GADF,IACEA,QAA4B,MACA,QAF9B,IAGJ,EACA,MAC4B,KACJ,KACF,uBAkEhBC,GAAAA,OAAkC,MAClCC,KAA2B,QAC3BC,IAAAA,MAAaC,KAA4B,KAAzCD,KARAF,GAAAA,OAAkC,MAClCC,KAA2B,WAC3BC,IAAAA,MACe,KAA2C,OAArB,IAAH,MADlCA,KAdAF,GAAAA,OAAkC,MAClCC,KAA2B,KACR,KACf,WAAJrQ,IAAAA,GAC2B,OAAb,IACP,KAAmB,MACxB,GAAA,GACgB,KAAb,IAAA,GAAwC,KAAU,KAAvB,IAA3B,GADH,GAEkCvb,IAAG,IAAN,IAF/B,GAGF6rB,IAAAA,MAAaC,KAA4B,KAAzCD,KAbAF,GAAAA,OAAkC,MAClCC,KAA2B,KAC3B,KANAD,GAAAA,OAAkC,MAClCC,KAA2B,KAC3B,KANAD,GAAAA,OAAkC,MAClCC,KAA2B,KAC3B,KATAD,GAAAA,OAAkC,MAClCC,KAA2B,WAC3BC,IAAAA,KACE,IADFA,MAEEX,KAAgC,KAAjB,MAFjBW,KATAF,GAAAA,OAAkC,MAClCC,KAA2B,WAC3BC,IAAAA,KACE,IADFA,MAEEX,KAAgC,KAAjB,MAFjBW,KAnBAF,GAAAA,OAAkC,MAClCC,KAA2B,QACvBC,IAAJ,GAEIE,KAAyD,QAA9B,OACzBC,KAAyB,MAC7B,EAAE,EACAtB,KAAkD,KAA3B,OAGvBqB,KAAyD,QAA9B,OAC7B,EAAE,EACArB,KAAkD,KAA3B,OACzB,EAuDFiB,GAAAA,OAAkC,MAChCC,KAA2B,KA1EjC,EA4EF,EACA,GAC0B,QACxBC,IAAAA,GAA0B,WAAM,IAAA,MAAhCA,MACAA,IAAAA,GAA6B,WAAM,IAAA,MAAnCA,EACF,EACA,gDACiB,GAAA,IAAf,OACclB,IACQ,KACJ,KAALvR,IAAX,OAAA,OAGsCuR,IAApC,OACeA,OACQ,KAAVsB,IAAX,UAC0B,KACxB,GACuB,KAAVA,IAAX,UACoB,0BA4Cd,UAAkC,KAAVA,IAAxB,QACQ72B,UAAK,KAAX,KAhB6B,QAC/B,YAEyB,KAAvB,OACoB,KAAM,KAAxB,IAAA,OAKwB,KAAM,KAL9B,KAEwB,KAAM,KAAU,KAK1C82B,WAAiB,OAVnB,QAvByB,KACX,KAAVD,IAAJ,MACE,OAGc,KAA2B,KAArCA,IAEI7F,QACY,QACH,KAFU,MAFvB6F,KACW,KADXA,GAMyB,SAElB,KACC,MAHiB,OAT7B,KAAgD,MAAA,IAAhD,GAe0B,QAC5B,IACEC,WAAiB,OADnB,EArBAF,QAAyB,MACzB,GAgEQ,KAAVC,IAAJ,QAEsB,QACpB,OACoC,KAChB,KAAlB,OAAA,KAE+B,KAC3B,GAIW,GAAf,UAEgB,MAFhB,QACO,KAIb,IArBc72B,UAAK,KAAX,EAqBN,EACAs1B,QAA8C,KAAvB,OACzB,GAEF,OAIoB,QACpB,OAKuB,KAAb,IA1GZ,eAsG+B,KAAb,MACJ,IACV,EAPU,IACV,KApGc,MAAsB,IAJHC,IAAzC,OAmHF,EAgCgBhM,GAAAA,OAAAA,MAAP,IAEIwN,UAAP,IAEoBnsB,MAAG,IAAN,IAFjB,EACAmsB,IAHG,EACHnsB,MAAG,IADP,EAMF,WACkB,KAALoZ,MAAX,OACWuF,GAAAA,OAAAA,IAAX,IAA0CyN,IAA1C,IAEaC,IAAuB,KAApC,IAMQ/O,IACR,IAEYgP,MAAAA,GACJA,MAA6B,IADzBA,GAGR,IAESC,OADP,OAON,EAlBUC,IAAN,IACgCvI,MAAuB,IAA1B,IAC7BuI,IAHF,EAFOJ,IAAgC,GAAhCA,IAAP,EAF0B,EAyB9B,SACWK,GAAAA,OAAT,OAMAC,MAAe,OACJ/N,OAAAA,MAAX,IAA6CyE,IAA7C,OACWA,IAAT7H,IACUoD,IAAAA,IAAP,IACEgO,IAAyC,IAAA,IACtChD,OAAN,IACEiD,KAA0BR,IAAP,MACrBS,KAAqB,SACrB,IAAA,GACQlO,IAAN,IADF,MAEc,KAALvF,IAAP,IAFF,GAGyCpZ,IAAG,UAAHA,IAAH,IACpC8sB,IAAAA,GAA+BrP,IAAkB,IACzD,IAlB6B,MACH,MACtBroB,YAAK,KAFL,EAmBJ,wBAEmC,MACR,MACH,MACI,MACV,MASiB23B,GAdjC,IASqB/Q,IAAK,KAAV,IACL,IACyB,OAClC,IAGOgR,IAAsC,MAAa,IAAA,MAAnDA,EAFM7Q,IAAX,IAA4CA,IAA5C,IAC6B4Q,IAAqB,MAAxB,IAEnB,GAAJ,IAhBP,IAkBiBE,IAEN7J,MAAT7H,IAA8B6Q,IAFH,MAI7B,OAKmC,GAAjBc,IACZ,MAFD,OAIH,IAAgCC,IAAc,KAC9C,IAcUC,IAAoB,KAA5B,OAAA,OAAA,UAAA,IAc2BC,IAd3B,EAW2BC,IACvB,EAJuBD,IACvB,EAJuBE,IACvB,EAJuB/P,IAcJgQ,KAErBC,KAAgC,KAAA,MAFO,MA9B3C,KACY,KAAV,IAM6BC,KAA0B,KAAA,MAC1CrQ,IAAT,IAEIA,IAAc,KAAA,KAFlB,EACiB,IAAA,IAAH,IADd,EANyBqQ,KAA0B,KAAA,QACvB,IACnBrQ,IAAT,IAEIA,IAAc,KAAA,KAFlB,EACiB,IAAA,IAAH,IAMhBE,IAAiBC,IAAmBC,IAApB,QAwBC,MACJ,MAzCd,EAHH,IAAiC0P,IAAc,KAC3B,MACI,MA4C5B,EACA,uDACkB,SAAA,IACU,IACfxO,OAAAA,IAAX,OAE+B,MAC3BgP,KAAmB,IAAvB,GAAiC,MAAjC,OAEYV,IAED7J,MAAT7H,IAA8B6Q,IAFR,MAIxB,UACW3Q,IAAX,OAA6C,MAAZA,IAAjC,UAAA,SAI6BkD,UACX,IAAA,IACKiP,KAAc,IAEjCxK,IADF,IAEEgJ,OAFF,IAI4B,IACcpsB,IAAG,UAAHA,IAAH,IACnC6tB,QAAiB,MAGjBC,KAAkB,IAMtBC,KAAwB,IACxBC,OAAgC,SAChB,IACP5P,IAAT,IAEwB,IACU,IAChBuL,IAJlB,IAAA,EAPI,EACAsE,KAAW,QAlBFC,KAAc,MAD7B,GA+BA,gBACE,IAC2BC,IAAmC,QAC5D,OAEgBC,KAA0B,SAF1C,GAFF,GAKA,UAMA,OAE6B,KAAQ,KAE1B3S,OADT,OAEG4S,QAAoC,QAFvC,GAGiBH,KAAc,YAC7B,IACqBC,IAAmC,WACtD,OAEgBC,KAA0B,SAF1C,GAFF,MAJF,IAWiCE,IAC/BT,KAAiB,MACjBjB,KAAmB,MACnBC,KAA4B7sB,IAAG,IAAV,MAHrB,KAKe,MACC,SAClB,OAAA,OAAA,UAAA,UAAA,OAAA,MA+FU5K,UAAK,KAAX,EAPAm5B,KAEEC,IACAC,IAHQ,OAKV,KAlDA7B,KAAmB,YACdnR,IAAL,OACiB,YACjB,IACqBO,IAAK,KAAV,IACG,OACG,UACpB0S,OAAAA,GACS,GAAJ,IALP,OAQQ1uB,IAAG,IAAHA,IAEL,IAEG,IAEA,IAEA,IAEA,IAEA,IAEO2uB,UAAKlT,IAAD,KAAX,IAFA,GAFA,GAFA,GAFA,GAFA,GAFJ,OAaF,IAYA8S,KAEEC,IACAC,IAHQ,OAKV,KAhBuBG,IACnBL,KAAe,KAGbC,IACAC,YAJa,IADmB,MAAlB,MASlB,KAnEF7B,KAAmB,YAEhBnR,IADH,IAEiBoT,UAAAA,IAAqC7uB,IAAG,IAAxC6uB,UAFjB,IAuBAN,KAEEC,IACAC,IAHQ,OAKV,KAvBYxB,IAAY,MAAtB,OAC2B,SACtB6B,IAAL,IAKqBF,IACnBL,KAAe,KAGbC,IACAC,YAJa,IADmB,MAAlB,MASlB,EAbElK,KAAgB,IACZ,MAAoB,MAAJhJ,IAAJ,IAAA,MAChB,EAlBJgT,KAEEC,IACAC,IAHQ,OAKV,IAPMr5B,UAAK,KAAX,EAxBgBw3B,KAAmB,MAwH3CC,KAA4B7sB,IAAG,IAAV,MACV,QAAJub,IACHkS,KAAgC,KAAA,MADpC,EA9HmCa,IAC/BT,KAAiB,MACjBjB,KAAmB,MACnBC,KAA4B7sB,IAAG,IAAV,MAHrB,EAvCa,EALf,IAHM5K,UAAK,KAAX,EAiLJ,MAC+B25B,GAAAA,IACzB,KAAQ,KAAc,MAA1BxT,GACGsS,OAAiB,MAAuB,WAAM,IAAA,MAC1CK,OAAc,SACrB,IACsBM,IACgB,MACpC,IAA4BvE,KAAsB,KACpD,EAEF,GACWuE,GAAAA,MAAT,IAEIA,IAAmC,KAAW,KAC5CA,IAD4C,MAFlD,EACwC,IADxC,EAMF,EACA,uBAaiBxQ,MAXL,KAAJ3E,OAAJ,GACwB,QACtB,OAE6B,SAF7B,SAIiC,KAA/B,UACyB,OACF,MACR,KAEN2E,OAAoB,OAAZ,MAAb,GAAqC,EAAA,EACvC,GANuC,SAAV,KAA/B,IAWc,KACV,KAAJ3E,IAAJ,MAAA,IAGE,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,KATb,OAK8D,IAOhE,KAXuB,MADrB,KANQ,IACA,EAmBZ,mBACqB2V,GAAAA,IAAD,MAAJ,IACKrC,IAAD,GAAJ,IACV,MAAe,IAAA,MACf,MAAgB,GAAJ,IAAA,MACA,MAAhB,IACqB3Q,IAAK,KAAV,IAED,IADJ,IAES,GAAJ,IAJhB,IAMF,EACA,GACa2C,GAAAA,OAAAA,MAAX,OAEAgP,OAAmB,IACPV,IAAY,SACbxR,IAAX,OACiByS,KAAc,MACjB,WAAd,aAAA,IACwBC,IAAmC,WACzD,IAEgBC,KAA0B,SAE5C,IAMA,IAEwB,KAAQ,KAAf,MACC,MAClBG,KAEEC,IACAC,IAHQ,OAKV5B,KAA4B7sB,IAAG,IAAV,QACrB,IATQ5K,UAAK,KAAX,EANqBk5B,IACrBT,KAAiB,MACjBjB,KAAmB,MACnBC,KAA4B7sB,IAAG,IAAV,MAHrB,EAT4B6sB,KAA4B7sB,IAAG,IAAV,QAA5B,IAHf5K,YAAK,KAAX,EA8BmB4wB,GAAAA,IAAwB,KAA3B,IAClBtJ,IAAIsJ,MAAD,KACL,EACA,uCACmB,MACC,MACM,YACxB,IACsB,MAAQiJ,GAAAA,IAAa,KAC9B7Q,GAAAA,IAAb,OACuBA,IAAc,KAAnC,OAEEkL,IAAc,KACS,QAAvB,OAAA,OAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,OA8BIC,KAAc,IA9BlB,KA0BIO,KAA2B,KAAK,MAArB,KACX,KAJApN,IAAI8K,IAAD,KACH,EAJA9K,IAAI8K,IAAD,KACH,EAJAuC,KAAgB,IAChB,EAJAK,KAAc,KACd,EAPAL,KAAgB,IAChBrN,IAAIC,IAAD,KACCC,IAAD,KACH6N,KAA2B,IAC3B,EAViC,KAAK,MACtC,IAAA,GACEtZ,IADF,GAEE0Y,IAAU,IA2Ba,KAnC/B,OAqCgB,IACM9J,KAAyB,KAAL,MAA9B,IACoC,IAArB,IACD,IACA,IAC8E,IAAjC,IAA5C,IAC2C,IAArC,IACtBvB,IAAb,IAC0BA,IAAgB,WAAxC,IAEsBA,IAAgB,IACF,MAFlC,IAK2B,MACmB,KACT,KACnC,IAC4C,KACpB,MACF,MAED,YAd6B,GAA9BA,IAAgB,KAAxC,IAgBgB,IAElB,EAEF,6DA4KuB,GA1KDJ,IAEhB2P,KAAwB,IACxB3L,IAAmCK,IAAH,MAC5ByM,IAAJ,GAEetM,IAAyB,QADtC,OAKkB,SAChB,OAAgC,MAAhC,GACW,QAPb,IAS4B,IAEnB,IACiD,IAA5B,IAAd,IACwB,IAC1CuM,IAA2B,SAC3B,UAAgD,KAAhD,aAQ6B,cAGb/C,IACH,WAAM,IAAA,MACjB,cAEe,GAFf,UAG6B,KAAZ,GAHjB,gBAO8B,KAEC,KAApBgD,IADT,OAAA,UAAA,UAAA,OAI0C,WACxCC,GAKsC,MACC,MANvCA,KACsD,KAAhB,MAEnB,KADoB,MAEQ,KAAhB,MAJ/BA,GAUA,GAEoD,KAA3B,OAAvB,MACsC,UAElC,OACsB,QAAlB,MAAA,GADJ,GAHJ,MASA,GAI2C,QAf7C,MAFFhkB,KAeM,GAMN,UAgCaikB,IAAX,SAKQl6B,UAAK,KAKFm6B,WAA0B,YACnC5F,OAAN,OAC+B,IACtBoF,IAAT,IAEIA,IAAuC,QAAA,KAF3C,KAC0C,IAAA,IAAH,IADvC,GAIA,GACc,KAAZ,OAAA,UAemB,KACE,KAEJ,KAAJxT,IADT,OAE6B,MAAX,GAFlB,OAAA,OAIoC,MAAf,GAJrB,IAKgB0J,IALhB,IAMSA,IAA0C,QAAA,KANnD,MAoBO,QAtCb,YA0BY,WAAM,IAAA,SACK,GAAJ,OACP,KAAM,IAAA,MACMuK,QAAsB,OAKtCC,KAAqB,MACrB,cA/BE,WAAM,IAAA,SACK,GAAJ,OACP,KAAM,IAAA,MACYC,KAAqB,OAK3CD,KAAqB,MACrB,KA7BAE,cAAkB,OAClBxH,KAA+B,IAC/B,QAlCc,WAAM,IAAA,YAGN,KAALvzB,IAAX,OAeW,WAAM,IAAA,SAAwB,MAfzC,WACE,UAEO,KAAM,IAAA,SACA,WAAM,IAAA,MACN,WAAM,IAAA,MACI,KAArB,OAC0B,KAAxB,IAEe+vB,WAAY,SACf,MACViL,QAAa,OAJf,QAAmD,MAAnD,GAMS,KAAM,IAAA,MAZnB,KAAgC,WAAM,IAAA,MAAtC,GAec,KAAhBC,IAAAA,GACEF,cAAkB,OADpBE,SAI2B,QAC3B,OAIoB,QAAA,KAJpB,IACwB7xB,MAAG,KAAA,OAAA,IAAA,IACV,QAAA,QACQ,MA8D/B8xB,QAAkB,KACpB,EAjJgC,OACA,IACd,IAwJtB,EATM,EAEA1R,OAAAA,OAAAA,MACE,IADFA,SAE6C,QAA5B,IAFjBA,KASiB4P,GAAAA,IAAwB,KAC7CA,IAAmCvL,IAAH,QACzB,IAA0BA,IAAjC,EAIQkH,GAAAA,MADR,IAEQA,OAFR,IAGQA,OAHR,OAK8B,IACrBvG,MAAT,IAAA,GACUrE,UAAAA,IAAP,IAAA,GACQ4N,IAAAA,IAAP,IADD,GADH,GAGEC,KAAoBxJ,IAAoBgJ,MAArB,MAHrB,EAIF,EACA,UAC6BzN,GAAAA,UACX,IAAA,IACKiP,KAAc,IAC/BxK,IAAJ,IAAmCgJ,IAAnC,MAC4B,IAAUyB,KAAiB,MAGnDkC,KAAY,IAMhBhC,KAAwB,OACR,IAChBC,OAAgC,MACnB5P,MAAb,IAIkB,MACW,IACtBuL,IAAP,IALQv0B,UAAK,KAAX,EARE,EACA64B,KAAW,QAcjB,IACkB7P,GAAAA,IAAhB,IAAkC4R,KAAkB5R,IAAD,KAAnCA,IAAhB,IACF,EACA,IACkBA,GAAAA,IAAhB,IAAmC6R,IAAW,IAA9C,GACED,KAAkB5R,IAAD,KADHA,IAAhB,IAAmC6R,IAAW,IAA9C,GAEF,EACA,GACaC,GAAAA,IAAsB,KAAwBjK,MAAnC,OACe,KAAb,QACxB,IAAgE,IAAhE,EAAgB6J,KAAkB,KAClCX,IAA2B,MAC7B,EACA,eAmCkB,GAhCa,KACD,KACF,KAAbpG,IAAX,IASYoH,KAAU,MACpB,IAKA,OAK8B,IACd,IACd,EANW,KAAM,IAAA,MACS,MACH,MAHzB,EAJS,WAAM,IAAA,MACC,IACd,EAXYC,KAAqCnK,IAAzB,OAD1B,IAwB2B,KAC7B,IAIc,OAjChB,OAmCM0D,IAAN,OAAmE,IACrE,EANoB,IACd,EAvBgB,IACd,EA4BR,EACmCrM,GAAAA,IACd+S,IAAyB,KAEzCA,MAAoC,SACb,IACtBC,iBAAc,IAOfD,OAAoC,SACb,IAE1B,EAJU,EACPA,IAAoC,MACb,IAC1B,EAGF,YAMK1C,GAAAA,KAAmB,IACN4C,IADhB,IAEW5R,OAAAA,IAAX,OAEkB,MACF,MAChB,OACiB,MACC,MACM,KAAxB,OAIiB,MACI,MACW,KAAoB,KAA/B6R,IACrBC,IAAgB,MACPrN,IAAT7H,IACuC,IAArB,IACc,IACb,WAAXiV,IAAP,IAAA,GACmB,KAAXA,IAAP,IADD,GAECE,IAFD,KAG6B,IAC5BlD,KAAmBH,MAAgB,KAAjB,MAIe,WAAXmD,IACF,KAAXA,IAAX,IAAA,IAgBmB,MAhBnB,EACmBH,IAAyB,KAC1CA,IAAoC,MACb/S,OACF,IACMqB,OACX,IAAA,IAChBwQ,IAA2B,MAC3BwB,KAA2B,MAC3BjF,KAA4B,MAChB,MACZkF,KAAmB,OACnBC,IAAY,IACI,IACK,IACrBR,IAAoC,MAEtCK,IAAAA,KAC8B,IACE,IACH,IACR,MACrB,IAA+D,IAC/DI,IAAwB,KAAZ,MACZjE,KAA4B7sB,IAAG,IAAV,MACrB,IAE8B,MACK,OAFjC,IAK4B,IACC,KACF,MACR,MAFkB,EAAA,KAAA,KAAd,MAHV,GADoB,KAFjC,IAUE4kB,IAAJ,GAKOmM,OAAAA,IAAP,IAAA,GACY,KAAV,IADF,GAEEpD,KAAmB,IACA,MACdqD,IAAP,IAIsB,IAJtB,EACaC,IAAT1V,IAEqB,IAA6B,IAFlDA,EACEkR,IAAiB,GAAA,IAGvBhP,IAAkB,IAClB,IAd0B,IAChByT,IACW,IAFnB,IAxDM97B,UAAK,KAAX,EAJwB,IAHlBA,UAAK,KAAX,EAsBEu4B,GAAAA,OAAmB,MACnB,EAwDN,yEACe4C,GAAAA,IAAb,MA8IA,EA7IuBnD,IAAqB2D,IAAD,KACtBV,IAAyB,KACvB/S,IAEnB+S,IAAoC,YACZ,OAAH,IACRE,IAAb,OAGmBA,IACY,IACH,IACf5R,OAAAA,IAAX,OAE2BA,UACX,IAAA,OACgB,KAAjB,IAAf,OACcgM,OACG,KACJA,IAAU,KAAVA,IAAX,UACuB,SACrB,YAC+B,KAA7B,aAC+B,OACd,IAAf,OACuBA,OACC,KAAtB,IAAA,IAAA,IAIIoB,QAA2B,OAJ/B,GAMmC,QACnC,IAIkBpB,IAAhB,IACmBA,OACW,KACE,KAC9BI,KAAuB,QACvB,OAIA,OAKU,IAdZ,YAUkB,MACJ,IACV,EANU,IACV,QAVkB,MACT,IAXyBJ,IAA1C,UAFqC,SAAV,KAA7B,UAiCyB,QACzB,OACmC,QACjC,OACqB,MACnB,GACqC,KACd,SAFvB,OAOM,IA9CZ,GAiDc,KAALvR,IAAX,OAAA,OAGqBuR,IAAhB,OACOA,OACQ,KAALvR,IAAX,OACe,KAAb,IAAA,IAAA,IAII2S,QAA2C,KAAhB,OAJ/B,GAM0B,QAC5B,OAKkB,KAAR,IAfT,YAWgC,KAAR,MACb,IACV,QAfS,MAAsB,IAvDYpB,IAAnD,UA2EiC,QAClB,IAAf,OACUA,OACc,KACN,KAALwG,IAAX,OAAA,UAGyCxG,IAApC,OACWA,OACQ,KAATyG,IAAX,IACE,GACmB,KAAjB,IAAA,IAAA,IAIIpF,QAAyB,MAE/B,EAAE,EACAtB,QAA4C,KAArB,OACzB,MACF,OAIgC,QAChC,OAKsB,KAAZ,IAvBT,YAmBoC,KAAZ,MACb,IACV,EAPU,IACV,QAjBc,MAAsB,IAJHC,IAAzC,OAgCgB,IAChBlN,IAAkB,IAEhBpC,IADF,GAEwBA,IAAY,UAAnB,GAFjB,IAKIA,IAAkC,MAACC,IAAD,MACpC,EAAE,EAAa,EA9HnB,IAOUlmB,UAAK,KAAX,IA2HI,GACc,IACnBi7B,OAAoC,MAHvC,EACQ,EACc,IACnBA,IAAoC,MACzC,EAIJ,GACgBd,GAAAA,aAA0B,MAC1BG,QAAqB,OACvBE,KAAa,OACXrL,KAAgB,MAC9B,IACGmI,IAAe,OAChBG,KAAqB,MACzB,EACA,oBACuB,KAArB,OAIwC,KAkB3B5H,KAnBX,OAKkC,QAAhC,OAOuC,KAAhC,IACgC,KAGJ,KAAK,MAAlC,GAFJ,IAGiC,MAAf,MAHlB,IAIcA,IAJd,IAKOA,IAA0C,KAAA,QALjD,GAyB6C,KAvCjD,MAqBoBsK,KAA0B,MAC1BC,KAAsB,OAKXI,KAAa,OAKxBrL,KAAgB,IAC9B,IACGmI,IAAe,OAChBG,KAAqB,MAFvB,EA3BFwE,KAA6B,OAK7B,EAbJA,GAAAA,KAA6B,OA2CjC,EACA,MACsB,QACpB,IAAsC,QAAA,KAC3B9M,GAAAA,OAAgB,IACvB,MAAoB,MAAJhJ,IAAJ,IAAA,MAChB6H,IAAAA,IAAAA,GACGgJ,IAAAA,IAAD,IADFhJ,GAESuG,OAAN,IACMA,OADN,IAEEyC,UAAAA,IACCA,IAHH,IAIOpsB,IAAG,IAAK6uB,IAAR7uB,UAJP,IAMIgvB,IAA6B,IAAA,IANjC,EAKGnB,OAAiB,MAEvBhB,KAAqB,MACvB,EACA,WACE,IACuB,KAAbyE,OAAP,IAEiBC,GAAAA,IACA,IAAA,UACPA,OAAP,UAAmD,OAAnD,GACUhN,GAAAA,OAAgB,IAChB7F,KAA6B,QAC7C,IACGgO,IAAe,OAChBG,KAAqB,MACzB,EAOA,GAEuB,KAArB,GAAA,OAAA,MAUUz3B,YAAK,KAAX,EAH0B,OAC1B,EAN8B,KACG,YACjC,IAAoD,SAApD,EAUJ,IAAwC,QAAA,KACxCo8B,GAAAA,OAAqB,MACvB,EAwbSjU,GAAAA,YAAgB,MAAvB,EAEF,MACU,SACA,QAC+E,MAAnB,MAAZ,MAAjB,MAAd,MAAb,QACF,MACF,SACS,MAC6D,MAArB,MAAnB,MAArB,SACR,MACqB,MAAb,MACH,MACc,MAAb,MACD,QAChB,EAEakU,GAAAA,KAAS,KAAA,mBAAA,IAAA,IAApB,EAEF,GACuB,KACZ,GAAA,GAAwB,MAAV,GAAhB,GAAP,EAEF,UACqB,GAAnB,MAEA,MAAA,IACuB,KACH1Y,GAAAA,IAAlB,IACkBC,IAAlB,OAEF,KAFqC,KADO,EAHnC4M,GAAAA,OAAe,OAAfA,MAAP,EAQJ,QAC8B,KAC5B,IAYiC,MACC,KAAV,QACC,MACO,MACH,MAhB7B,EACuB8L,GAAAA,KACV,KAEA,KACA,UAJqB,IAMO,KAAV,MACG,KAAV,MACe,KAAV,MACA,MACP,SAMQ,WAAP/L,IAAH,MACe,KAAV,MACK,KAAV,MACU,KAAV,MACkB,KAAV,MACU,KAAV,MACQ,KAAV,MACJ,OAEpB,IAEyB,KAAkC,MAAvD,EAAA,IAAA,QAHqB,MAIK,KAAV,MACQ,KAAV,MACQ,KAAV,MAClB,EAEF,4CAUqB,OAAnB,iBACK,OAGIpN,GAAAA,IADJ,OAGIG,IAHJ,OAOID,IAPJ,OAcIE,IAdJ,OAqBIC,IArBJ,OA4BI+Y,IA5BJ,WA+BC,IAAA,IACc,KACL7Y,aADP,OAIOD,aAJP,OAOOE,aAPP,OAUOC,aAVP,OAaOC,YAbP,SAkBI7jB,MAEA,OAAA,IAAD,UADH,IADS,KAAX,EArBO6yB,mBAAwB,IAA/B,EANUyJ,mBAAW,IACC9Y,IAAH,MACN,MAHb,EANU8Y,mBAAW,IACC/Y,IAAH,MACN,MAHb,EANU+Y,KAAmCE,eAAxB,IACCnZ,IAAH,MACN,MAHb,EAHI,UACJ,EAJOgI,KAAoC,gBAAb,IAA9B,EAL0BmF,GAAAA,OAAe,cAAfA,YA0D1B8L,GAAAA,mBAAW,IACF,MACP,MACC,MACT,EAGWA,GAAAA,mBAAW,OACR,MACd,EAGeA,GAAAA,mBAAW,IACCC,IAAH,SACN,MACO,IAAA,KAAH,MACtB,EAGUD,GAAAA,kBAAW,OACR,MACb,EAEF,GACSA,GAAAA,KAEU,OAAf,IAA6C,IAA7C,EAAiC,KAC3B,gBAHU,OAMR,MAEa,MAEC,MAHP,EAAA,KAAA,KAAA,KAAH,MAKd,EAEF,MAOU,SACU,QACsD,MAAvB,MAAf,MAAjB,YACC,MACoC,MAAf,MAAtB,QACI,MACHG,GAAAA,MAAa,KAAhB,MACqB,KAAhB,MAC6H,MAApB,MAAtB,MAAnB,MAApB,MAAxB,MAArB,MACe,KAAhB,UACG,SACE,MACzB,EACA,IAEiB,QAAb,IAA4C,MAA5C,IAA2D,IAEjDrZ,GAAAA,MACL,OAFA,EAAA,IAAA,OAAA,OAAA,QAAA,KAAP,EAQF,GACuB,QACrB,IAQYsZ,GAAAA,IAAoB,OACzB,IAAqC,KAA5C,EARqC,UAAhB,GAAnB,MAEY/9B,MAAW,KAAA,KAAgB,SAAA,KACjCqB,UACJ,IADS,KAAX,IAFQA,UAAK,KAAX,EASN,QACyB,KACTmvB,GAAAA,OAAgB,IACrBH,KAAiB,KA4CD3P,IACP,KAAlB,IAE6B,MAF7B,EACsB,MAEVkQ,KAAY,MACJ,KAAA,KAAH,QACNxT,OACX,IAAwC,MAC9Bye,KAAa,OACvB,IACGpM,mBAAqB,IACtBuO,KAAmB,OACrB,EAEF,EACE,EAEF,KACE,QACiB,GAAjB,IACqB,KAArB,GACqB,KAArB,GAAoD,KAAU,KAA9D,GAEoBC,GAAAA,OAAgB,QAC7B,IAEc,KAAjBC,GAEiB,KAFjBA,EACiB,KAAU,KAD3BA,GAFJ,EAF0B,KAAU,KAAlC,EAFwD,KAAxB,EADS,EADZ,EAYjC,EACE58B,MAAa,QAAA,OACf,EA5iQc,KAAA,OACG,MACb,EAyFc,KACO,MACL,KAChBogB,GACQ,MAALA,GAE6B,UAAZ,GAAd,MAA4D,MAA5D,EADoB,MAAA,IAEGM,GAAAA,IAAH,MAJ1BN,EAKF,EACiB,GACC,KAChBA,GACQ,MAALA,GAE6B,UAAZ,GAAd,MAA8D,MAA9D,EADqB,MAAA,IAEIM,GAAAA,IAAH,MAJ5BN,EAKF,EAEsBM,GAAAA,OAAH,QACnB,EAEY,KACU,KAAY,MAEhC,GAAA,QAAA,SAAA,GAA0C,IAA1C,EACyD,MAAtB,MAAnB,MACsCC,GAAAA,IAAH,MAA1B,MACwB,MAA1B,QACzB,EAKe,EACb,EAKS,GACG,MAALP,KAAmBne,MAAQ,KAAA,IAAlC,EAKoB,KAAA,KAAA,KAKb,IACU,KAAR,MACU,KAAA,OAAA,IAAA,IACrB0lB,GAAAA,IAAuB,OAAjB,MACS,MACV,KAAsB,MACTA,IAAgB,MAAT,KAAD,OAAT,MACK,MAAR,MACZkV,IAAiB,KACjB,EAbA,EAAc,EACd,EACSC,GAAAA,IAAW,KAAA,EAAA,MAAA,MAAlB,EAyCY,EACZ,EAmFyB,MAAA,MACzB,EACkB,UACRC,GAAAA,IAAR,IACEA,MAAuB,MACrBC,MAAS,KAAb,MAESC,IAAU,KAAd,UAMA,QAAA,OAKW,MAAuB,KAACC,IAAD,KAClC/b,IAA8C,MAAQ,KAAtB,MAC3BA,IAAY,SAHpB,OAOmBH,IAAS,OAF1B,OAMoBA,IAAS,OAD3B,IAEoC,MAFpC,GAFY,GADGA,IAAS,KAF1B,MASIG,IAAqC,MACrC,EAxBK,MAAuB,KAACgc,IAAD,KAC/Bhc,IAA8C,MAAQ,KAAtB,MAC3BA,IAAY,SAAlB,IACGA,IACY,MAAQ,IAAG,MADc,MADxC,EAJS,MAAuB,KAACic,IAAD,KA4BtC,EA4KS/b,GAAAA,IAAP,EAGa,oBAMT4b,GAAAA,IAAU,KAAd,OACK,QAAA,IAIMI,IAAT,IACK,EADyBA,IAAF,GAAA,IAA5B,EAL4BA,OAAiB,IAAA,IAO/CC,IAA2C,MAAA,UAC3C,UAAA,IAEgD,MAFhD,GAGSD,IAHT,QAAA,IAIIJ,IAAU,KAJd,GAKID,IAAS,SALb,MAO2BC,IAAU,KAAVA,GAErBD,IAAS,KAATA,OAEA,IAEAO,IAAU,MAFV,EACAA,IAAU,MAHVP,EACAO,IAAU,MAHWN,EACrBM,IAAU,MAMVlc,SAAJ,MAE0BA,WACtB,GAKQ,GAFEE,IAAS,QAHnB,UAOA,GACO,GADqCA,IAAS,QAArD,GAEWic,gBAAX,IACqBjc,IAAS,KAA0B,GAD7Cic,aAAX,IAEWC,UAAX,IACgBlc,IAAS,KAAoB,GADlCkc,OAAX,IAEa,GAAA,MAAb,SACE,IAEgC,WAFhC,IAKkBlc,IAAS,KACL,KAPX,GAAA,MAAb,QAa6BF,IACZqc,IAAiC,qBAAA,IAOpDJ,IAA0B,KADG,MAE/BK,IAKI9X,IAEE+X,IAFgB,MALtBD,EACI9X,IAEEgY,IAFgB,MASgB,MACL,KAC3Btd,IAAW,KAAf,MAcK,GAEY,eAFZ,KAXuB,OAF1B,IAG0C,MAAA,QAH1C,GAO2B,IAA+B,IAA/B,SADzB,GAFM,GAFkB,QAF1B,IAG0C,MAAA,UAH1C,KASgC,OAC5B,OAY6B,MACA,MACN,MAAA,IAA/Bud,GACoB,KAAoB,MAAA,KADxCA,KAEA,MAA2Czc,SAA3C,OAE2Bqc,IAAiC,MACtDH,IAAU,kBAD4C,IAOtDD,IAA0B,KADI,MAEhCzX,IAEEkY,IAFgB,MAIGC,IAAqB,KAA5B,IACd3c,IAdF,GA6D8B4c,IAAU,MAIpCC,IAAe,SAjEnB,KAiBeR,IAAiC,MAC1CH,IAAU,MACVlc,aAF0C,IAMrBic,IAA0B,KAA7B,MACpBzX,IAA2BkY,IAAT,MAET,MAAP,GAAA,GAA8BC,IAAqB,KAClC,MAAA,IAAnBR,GAA+B,KAAoB,MAAA,KAG1CE,IAAiC,MACxCH,IAfJ,GA6Bc,kBAD2C,IAOnDD,IAA0B,KADI,MAEhCzX,IAEEkY,IAFgB,MAIUE,IAAU,SAxC1C,EAec,MACV5c,aAFwC,IAMpBic,IAA0B,KAA7B,MACnBzX,IAA2BkY,IAAT,MACaE,IAE7B,IAAA,IAAA,IAFuC,MAIzCC,IAAe,SA0BF7c,IAAAA,GAAiB4b,IAAU,KAC9B5b,IAAAA,GAAiB2b,IAAS,KAE1C3b,IAAAA,OACC,IAAA,OAAkC,IAAlC,GAEqByc,GAElBH,KAEA/b,GACA2b,IAAU,MAHVI,EACAJ,IAAU,MAHQO,EAClBP,IAAU,MADQO,GADxB,GASwBJ,IAAiC,MAErDrc,gBAFqD,IAOnDic,IAA0B,KADI,MAEhCzX,IAEEkY,IAFgB,MAIUE,IAAU,MAIrB5c,IAAAA,OAAiB,IAGlCA,IAAAA,GACA,GADAA,OAEC,IAAA,OAAkC,IAAlC,GAJL,MAOmC,QAA/B,MAA8D,OAA9D,OAGkC,SAFhC,IAM+B,IAAiB,SAD9C,OAAA,OAAA,IAMW8c,IAAmB,KAER9c,OAAlB,QACE,IAEuB,UAFvB,IAOSE,IAAS,QARpB,QADFvL,KAaA,GAtBa,GADe,UAFhC,IAiCY8nB,KAEZtY,GACA+X,IAAU,MAHEO,EACZP,IAAU,MADEO,GADlB,GAOiBJ,IAAiC,MAE9Crc,gBAF8C,IAMlBic,IAA0B,KAA7B,MACzBzX,IAAgCkY,IAAd,MACUE,IAAU,MAItCC,IAAe,KACnB,EAKEpf,GAAAA,OAA2C,QAC7C,EAuPe,QAMb,OAC2B5M,GAAAA,IAAwB,IAC1BC,IAAsB,IAC/C,GAAA,KACQpS,UACJ,UAAA,IADS,KAAX,EAGaq+B,IAAwB,SACrCC,MAAAA,eADqC,IAMvC,GAgBK,GAEA,EADHxY,IAAiCyY,MAAf,MADf,EAfH,IACoB,MAAe,KADnC,IAEY,MAAe,KAAwB,MAFnD,GAWIzY,IAEE0Y,MAFgB,MAXtB,KAGI/Y,GACY,MAAe,KAD3BA,GAEAzC,IACc,MACZC,WAFgB,IAaxB,EAhCwB,EAkED,GAClB,KAAU,MAArB,EAGoB,GACT,KAAU,KACZ,KAAT,KAA4BjjB,YAAK,KAAX,EACtB,EAGU,cACOy+B,MAAAA,GACHC,GAAoB,KAAhC,GACQ,KAAU,MADlB,KAcI,IAKAzf,GAAAA,IAA2B,MAA2B,MAAA,IALtD,KACAA,GAAAA,IAA2B,MAAyB,MAChD,KAAU,KAAU,KAD4B,MADpD,EAZCwf,KACCzf,MAAsC,MAChC,KAAU,SAEd2f,KAHoC,OAKxCC,KACE5f,MAAsC,MAClC,KAAU,MAEZ2f,KAAAA,EAHoC,OADxCC,EAYN,EAiyB8B,EAAA,KAAA,IAYO,KACvB,KAAH,MAGI,KAAH,MAGK,KAAH,MAQW,KAAH,MAQC,KAAH,MAkBI,KAAH,MACc,KAAH,MA2BM,KAAH,MAcnC,EA9FA,MAMiB,SACA,SACE,SACW,QAC9B,EAGE3f,GAAAA,IAA2B,MAA6B,SAAA,OAC1D,EAEEA,GAAAA,IAA2B,MAA8B,SAAA,OAC3D,EACiB,GACK,MAAwB,OAC5C,IACE4f,GAAAA,IACW,MACTC,SAAiC,MAFtB,MADf,EAKF,EACyB,GACH,MAAwB,OAC5C,IACEC,GAAAA,IACW,MACTD,SAAiC,MAFd,MADvB,EAKF,EACuB,UAEN,GADf,IAEkC5J,GAAAA,IAAhC8J,IAFF,GAIwB,MAAwB,KAExB,MAAwB,OAC9C,IAAA,GACE,IADF,GAEEC,GAAAA,IACa,MACS,MACpBH,SAAiC,SACA,cAJhB,IAFrB,EASJ,EACwB,EAAY,EACD,kBAChB,GAAjB,WAEmB,GAAnB,OAGe,OAAb,SAAA,IAA4D,EAA5D,IAEC,IAAmD,MAApD,KACmB,MAAVI,KACY,MAAVA,KACY,MAAJ,GAAwB,EACjC,QAAZ,IAAqD,MACb,IAAdC,GAA6B,IACjC,IAAtB,IAC4B,IACJ,KAGb,EAAA,KAAA,KAAA,KAAA,KAHc,EAAA,KAAA,KAAA,IAAD,OAU1B,IAtBUn/B,YAAK,KAAX,IAFMA,YAAK,KAAX,EAyBkC,aAEnB,OAAb,SAAA,IAA4D,EAA5D,IAEC,IAAmD,MAApD,KAAA,GACW,SAAf,GACuB,OADvB,QAAA,KAEyC,KAAC,KAAD,KAApB,IAMvB,EAN4C,GAEzB,MAAc4hB,GAAAA,IAAzBiB,IAAAA,GACW,KAAQ,MAAauc,IAAhCvc,IAFK,GAAP,EAkmBK,GACoB,QAAtB,GACHqB,GAAAA,MAAsB,KAAtBA,IADJ,EAIe,MACJ,MACKiL,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACT,MACdxT,IAAAA,KAAuB,IAAvBA,GAA4D,MAClDye,KAAa,SACvB,IACGpM,mBAAqB,IACtBuO,KAAmB,OACvB,EACqB,MACR,MACKxN,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACb,SACI,MACdxT,IAAAA,KAAuB,IAAvBA,GAA4D,MAClDye,KAAa,SACvB,IACGpM,mBAAqB,IACtBuO,KAAmB,OACvB,EACoB,MACP,MACKxN,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACb,MACVxT,IAAAA,KAAuB,IAAvBA,GAA4D,MACjDye,KAAa,SACxB,IACGpM,mBAAqB,IACtBuO,KAAmB,OACvB,EA+2Ce,MACXtO,GAAAA,OAAuB,IAAmB,IAAA,MAExCtS,OAFwC,IAAH,MAIvC,EAImB,UACZ,QAAA,IAA8C,KAAC,IAAA,IAAD,KAC9C0S,GAAAA,KAGLG,KAA2B,QAAA,uBAHP,IAAtB,EAQOH,GAAAA,wBAAe,IAAtB,EAGOA,GAAAA,qBAAe,IAAtB,EAEO,GACIJ,GAAAA,OAAuB,MAC3BtS,OAAAA,GACgB,IACF,IAAA,IAAA,IAAH,MAClB,EAEU,MACCsS,GAAAA,OAAuB,OACrBtS,IAAsB,KACA,MAAjB,MACR,aAAA,KAAA,KAQA,MACmBsjB,KAA0B,KAErD7R,MAFqD,OAA7B,MAKd,KAAL,IAAA,IAAA,IAAP,EAGWa,GAAAA,OAAuB,IACnB,KAAA,IACW,MAA1B,EAIgB,GACRA,GAAAA,OAAuB,IAAgB,MAA/C,EAGkB5O,GAAAA,SAAU,OACH,IACX6f,KAAoB,QAAkB,MAAlB,MAClCjR,KAAuB,IAAgB,MAChC,IAAA,IAAA,IAAP,EAEgB,EAAY,EACR,MACRb,GAAAA,IACHa,OAAuB,IACF,IACjBL,MAAb,OAIOtE,OAAAA,MAAP,IACEuE,KAAyB,OACT,MACP,EAAA,IAAA,KACD,MACVzO,KAAYqO,KAAqB,mBAAA,IAAgC,IAAA,IAAtD,MAGN,WAAM,IAAA,MACXC,KAEEC,KAAwB,sBAAA,aAFhB,IAMV,IAlBQ/tB,UAAK,KAAX,EAqBSquB,GAAAA,OAAuB,IACbL,IAAkB,MACpBuR,IAAqB,GAAA,GAAA,QAEtC,IAAsD,QAAA,SAAtD,IAAA,IAAA,IACwB,MAA1B,EAgBO7f,GAAAA,KAAc4O,OAAD,KAApB,EAIWb,GAAAA,OAAwB,IAC5B+R,KAA8BlS,IAAW,QAAlB,OAA9B,EAGgB5N,GAAAA,KAAc4O,OAAD,OAAmB,IACtCb,KAAwB,IAAE,KAC7B,IAAA,IAAA,IAAP,EAmBO9N,GAAAA,KAAgB2O,OAAD,KAAtB,EAGgB,GACLb,GAAAA,OAAwB,IACnBH,MAAT,IAEHkS,KAA8BlS,IAAW,KAAlB,OAFpB,EACgB,SADvB,EAKgB3N,GAAAA,KAAgB2O,OAAD,OAAmB,IACxCb,KAAwB,IAAE,KAC7B,IAAA,IAAA,IAAP,EA8mCc,4BAMY,KAM1BgS,KANJ,OACgB,KAAd,OAMqB,KAAd,IAKc,QAAd,OACU,KAAf,IAAoC,KAApC,IAIsB,QAAjB,OACC,KAAa,MACN,KACX,KANgB,KACd,IAAqC,MACrCtK,gBAAiB,OAHrB,EALe,KACf,GAAA,GAEAsK,IAAsB,MAAe,MAAtB,SAJV,IAGGz/B,UAAK,KAAX,EARiB,QACnB8zB,MAAAA,GAAAA,GAEcC,IAAmB,KACjC0L,IAAsB,MAAe,MAAtB,SAgBjB,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,QA5Bb,GAAA,SAwBgE,EAMlE,EAsCsB,GACa,KAC5BC,GAAAA,UAAqB,MAA1B,GACwB,MACJ1J,IAAkB,KACpCnC,iBAA4B,IACA,MACd,QAAM,IAAA,MACpB8L,IAAY,MAEhB,EACwB,WACR,KACQ,KAETD,GAAAA,OAAqB,MADlC,GAAA,OAMyC,KACvC7S,KAAgBD,IAAoB,KAArB,OAEfqE,IACelM,IAIO,KAAU,MAAW,gBAJd,IAMR,KAAuB,MAE5CwL,GAAAA,OAGoB,MAERA,GAIF,IAEAqP,IAAwB,KAFxB,EACAC,IAAgC,MAL9BtP,EACF,IAEEuP,IAAS,KAFX,EACE5Y,IAAqB,MADvB,GAMW,KART,EAAA,KAAA,IAUiB,MACzBqJ,GAEI4E,gBAAiB,IAFrB5E,EACmB,QAAM,IAAA,MADzBA,EAdyB,MAD7BA,EAdwB,MAiC5B,EACmB,SACjBwP,OAUuC,KAAV,MAV7BA,EACgBlT,GAAAA,KAAgBH,IAAuB,OAAxB,KACAE,IAAoB,KAArB,KACEkI,iBAAkB,IAArB,MAMV,QAAM,IAAA,MATzBiL,EAWF,EA4/Dc,mCACZ,IAqBqB,GAAA,IArBrB,EAEW,KAAiC,KAD1C,IAEExY,GAAAA,IAAyB,KAF3B,GAOkB,KAAPgJ,MADT,IAEuB,QAAdvH,IAFT,IAYiC,WAAPuH,MAAP,MAAH,IAlBlB,EAWuB,IACjByP,KAAsC,OAFxC,EANc,GAAA,IAJlB,EAqBkB,MACE,uBAqZX1M,GAAAA,KAAwB,OAA/B,EAFOC,GAAAA,KAA2B,OAAlC,EAxB6B,KACF,KAET,QAAdvK,IAEIgI,GAAAA,KAAmB,MACzBS,GAAAA,KAAwC,MACrB,MACnB3H,IAAiB,OAAjBA,GACqBgH,IAAmB,OAExCZ,KAAoB,MACpBwB,KAAsB,OACtBC,mBAAkB,IAClBC,qBAAoB,IAftB,EAROnB,GAAAA,KAGS,KACA,gBAJgB,IAAhC,EAZ6B,KAChBO,GAAAA,KAA6C,KAA1B,MACU,KAAV,MAC9BiP,mBAAmB,IAJrB,EAV2B,KACE,KAAa,KACxC/P,GAAAA,KAAoB,MACT3Q,KAAW,KACA,KACP,KAAM,IAAA,MACrB+Q,gBAAiB,IACH,KARhB,EA9G4B,KAAK,MACP,KACG,KACL,KACtB7I,GAAAA,IAAKqB,IAAsB,MAAvB,MACoB,MACxB,OACMF,IAAmB,KAAX,MAAZ,MAc+B,KACzB,IAAA,GAAyC,MAAzC,MAFJ,MAMuB,KACrB,OAmC4B,KAArB,OAKmB,KAArB,IAeuB,cAfvB,KACkB,KACrB,IAIQ,KAAM,IAAA,MACC,KACf,IAAsB,KAAM,IAAA,MAC5BsK,KAA+B,OAKV,cAdlB,OAGKlzB,UAAK,KAAX,EANU,KAAwB,OAAlC8xB,IAEc,KAFdA,YAFG,KAlCgB,KAEE,kBADvB,OAKgB,KAAd,IA0BuB,iBA/BzB,SAMwB,QAApB,IACevC,KAA+B,GAAd7F,IAAL,MACX,MACc,WAC5B,IAC2B,MACA,KACzB,IAE+B,KAAV,MACJ,MAHjB,EACoB,MAGD,YAGb,KAAM,IAAA,MACO,KACvB,IAAkC,KAAM,IAAA,MACxCwJ,KACY,KADmB,OAK3B,KAAM,IAAA,kBA0BhB,UAEE,SACE,IAIqB,KACrB,IAKmB,QAXrB,MAOgC,KAAX,SAEjB,EAXgC,SAAtC,YA/DF,SAXY,KAAqB,KADjC,IAEG3L,IAAyB,KAF5B,GAImB8I,KAA4B,OAK7C,EAmFNC,KAGS,gBAHQ,IAMc,KAEjC,EAtHEA,GAAAA,KAGgB,KAAa,gBAHZ,IAMH,KAPhB,EATEA,GAAAA,KAGgB,KAAa,gBAHZ,IAMH,KAPhB,EATEA,GAAAA,KAGgB,gBAHC,IAMH,KAPhB,EAf6B,KACF,KAET,QAAdtH,IAEIgI,GAAAA,KAAmB,MACzBkP,GAAAA,sBAAgB,IAPlB,EAhBE/N,GAAAA,KAEgB,KAAU,MAFT,MAIU,KAC3B,IAOI7B,mBAAiB,IAPrB,EAC4B7D,iBAAoB,IAAvB,MAOX,KAdhB,EAFO+G,GAAAA,KAAuB,OAA9B,EAFA,EAPEC,GAAAA,KAAe,KACY,KAAa,KACxC5B,KAAO,MACPvB,gBAAiB,IACH,KALhB,EAlBAoD,GAAAA,KAAmB,KACnB,IAEwB,KACE,KAAc,MACxC3C,KAAgB,MAChB1G,kBAAkB,IACM,KAAc,MACtCpmB,IAMKqsB,mBAAiB,IACc,KAPpCrsB,EACsBosB,KAA4B,OAOlD,IAdQrwB,UAAK,KAAX,EAjB2B,KACF,KAET,QAAdgpB,IAEIgI,GAAAA,KAAmB,MACzBmP,GAAAA,sBAAoB,IAPtB,EAf6B,KACF,KAET,QAAdnX,IAEIgI,GAAAA,KAAmB,MACzBN,GAAAA,sBAAuB,IAPzB,EAvD0B,KAExBe,GAAAA,KAAwC,MAChB,KACL,MACU,MAAV,KACA,MACY2O,KAAuB,KAA1B,MAClBpP,KAAmB,MAC7B,OAAA,OAAA,OAAA,MAsCMhxB,UACJ,QAAA,IADS,KAAX,EATqBigC,KAIfjP,KAA6B,KAAV,mBAJe,IAOpC,EAhBiBkP,qBAAgB,IAOjC,EAhBiBC,qBAAoB,IAOrC,EAhBiBzP,qBAAuB,IA0C9C,EA1G8B,KAC9Be,GAAAA,KAAwC,MAChB,KACV1H,IAEZvC,IAAkB,KAFU,MAI9B0I,KAAoB,MACVC,qBAAe,IAQX,KAAM,IAAA,UAEL,GADf,IAAA,IAG+B,UAAd,GAHjB,IAIoB,KAJpB,IA+BqB,MACjBG,kBAAiB,IACe,KAjCpC,KAMoB,MACU,MACF,MACtBxG,IAAiB,OAArB,GAEEgH,IAAmB,OAGH,OAAhB,IAA4C,OAA5C,IACW,KAFe,MAI5B3G,KAAqB,KACHH,IAAH,MACS,MACD,MACvB2H,mBAAkB,IACDC,qBAAoB,IAYvC,IAkWE5xB,MAEY,SADhB,QAAA,IADS,KAAX,EAmT2BupB,GAAAA,UACX,IAAA,IAChB,QACW,KACD,GACS,MACf,IACyC3e,IAAG,UAAHA,IAAH,IACpC8sB,IAAAA,GAA+BrP,IAAkB,IALrD,EACQ,KACS,MACf,IACyCzd,MAAG,UAAHA,IAAH,IACpC8sB,IAAAA,GAA+BrP,IAAkB,IACvD,EASgC,EACpBroB,YAAK,KAAX,EAI8B,EACxBA,YAAK,KAAX,EAsBI08B,GAAAA,SAAoB,OACrB,IAA6B,KAApC,EAyBmB,IACd2D,GAAAA,KAIQ,QAAb,IAA4C,MAA5C,IAA2D,IAA3D,aAJiB,IAAnB,EAOwB,SACV,OAAd,IACiB,MAAd,IAIGphB,GAAAA,IAA2B,MAAqC,MACxD,KADwD,OAJnE,EACoB,MAAwB,KACzC,MACED,MAAqC,MAAO,MAAP,OADvC,EAOR,EACsC,KACpC,IACqB,KAArB,GACqB,KAArB,GAAoD,KAAU,KAA9D,GAEoB4d,GAAAA,OAAgB,QAC7B,IAEc,QAAjBC,GACiB,KADjBA,GAFJ,EAF0B,KAAxB,EAFgC,EADH,EAahB,MACJyD,GAAAA,IAAS,KAAA,KACpBna,WACWoa,MACaC,KAKpBC,KALiC,KAAA,qBAAA,IAAA,IAO3BnE,OAA2B,OAAA,YAAhB,IACI,MACR,MACO,UAAH,MAOnBnS,KAAqB,KAErBmW,IAAS,KAAA,SACXI,kBAAe,IACQ,KAAkB,OAAtC,GACc,KAAM,KAArB,GAAA,IAKqB,KAAM,KAL3B,EAEqB,KAAM,KAAU,KAMvC,EAE+B,MACjB,OAAd,IACiB,MAAd,IAIGzhB,GAAAA,IAAwD,MAChD,KADgD,MAJ3D,EACoB,MAAwB,KACzC,MACED,MAA4C,MAAO,MAAP,MAD9C,EAMR,EACsB,OACTshB,GAAAA,IAAS,KAAA,SACpBna,KACEua,KAAkC,cAAnB,IAGnB,EAFMJ,GAAAA,IAAY,KAACK,GAAAA,IAAD,OACd,EAE6B,GACf,SAAA,OAClB,E,KCtuQA,SAAA,KAAgC,E,QCgBlBz+B,MAAQ,KAAA,MAEf,MAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QAOA,IAAA,QAEgC,IAAA,KAIN,MAES,MAAA,IAAMA,MAAQ,KAAA,IAARA,IAA9C0+B,QAF+B,MAIA,UAAA,KAAuB,E,GCvC9C,QAAV,IAEe,MAGL,MAAV,IAEa,MAIU,KAANriC,GAAkB,EAArB,MACR,KAAqB,KAAQ,MAAdA,GAAsB,EAAzB,MACP,KAAQ,MAAI,MAAvB,GACQ,KAAQ,UAAa,MAC5B,E,OCnBU,MAAX,GACwB,EAAJ,MAOH,MAAY,KAAzB,OAAJ,cACQ,MAAmB,KAAH,MAIvB,EAH0BA,GAAAA,IAAM,MAANA,KAA+B2D,MAAI,KAAnC3D,EACF,IAArB,E,YCP6B,IAAA,KACY,MAAA,OAGlC,UAAX,MAU4B,IAAA,KACC,MAVP,KAUO,KAX7B,EAYC,EAXqB,GAEhByR,GAAAA,IAAiC,SAAA,MACnC,EAIF,EAJI,IACA/P,MAAW,MAA8B,SAA9B,MACX,E,eCd0B,IAAA,KAAX,QAYrB,IAAI,MAAJ,IAAI,MAAJ,IAAsC,MAAA,IAAtC,eAY4B,KAAZ,MAZhB,EAC8B,aAY7B,EADiC2H,GAAAA,IAAOC,OAAA,MAAA,KAAb,E,K,I,K,SCxBY,SAAA,KAAV,IA2Cb,EAAA,K,KAAA,QAAH,MAA4C,EA5B1D,UAKqBlJ,MAA+B,KAAA,SAMGgL,GAAc,EAAlD,KAAU,MAAA,SAAck3B,OACzC,GAAA,GACE5gC,MAAa,SAAC,QAAA,IAAD,KACb,EAGFuR,GAAAA,IAAuC,KAAA,IAEzBQ,IAFyB,IAG3BC,IAH2B,KAAf,OAK1B,EAGE6uB,GAAAA,IAAuBviC,YAAD,OACxB,E,QCzCuB,MAAA,QAEhB,IAAA,QAQO,MAAW,E,E,K,I,K,I,K,I,K,I,K,SClBJ,SAAA,KAAV,OAEG,QAIS,KAAf,MACgB,KAAf,MACc,KAAf,IACoB,KAAf,IACU,KAAf,QACsB,KAAf,IAQG,KAAH,MAyBO,KAAH,IAYL,KAAH,MA2DU,KAAH,MAID,KAAH,MAMC,KAAH,MAUL,KAAsB,KAAH,MAiBZ,KAAH,MA6BT,EAvKY2J,GAAAA,IAAe,MAAR,KAAA,OAAA,IAAA,OACf,SACA,MACJ,EAgFO,MAAA,QAAA,IAAP,EAGO,MAAA,QAAA,KAAP,EAEF,GACE,GAAY,OAAZ,QAAA,IACqBA,GAAAA,IAAhB64B,IAAH,GAAkC,KAAU74B,IAAO,KAAU,KAA7D,IAGe,KACX,OAAJ,IAKK84B,GAAAA,MAAgB,KAAvB,EAJe94B,IAAiB,KAAA,KAAV,KAAA,OAAA,IAAA,IAAsB,KAAC84B,IAAkBC,IAAnB,MAAxC,EAJgB,KAACD,IAAkBC,IAAnB,MAAhB,EAkCN,KACK,MAAA,OAAH,IAIgBjhC,MAAK,KAAA,WAAA,IAAA,QAEX,MACE,MAEZ,EARakhC,MAAc,KAAA,cAAA,IAAA,IAAzB,EA1Hc,SACKh5B,GAAAA,IAAjB1I,IAAJ,QAEA,OACA,SACA,SACA,SACA,WACA,OAEI,OAAJ,QAAA,IAEoB,QACZ,OAAJ,IASG2hC,IAAY,KAAnB,EARiBj5B,OAAiB,KAAA,KAAV,KAAA,OAAA,IAAA,IAAlB,EAEF,EAAA,IACWA,IAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EATqBk5B,IAAP,EADMC,IAAP,EADWC,IAAP,EADMC,IAAP,EADYC,IAAP,EADEC,IAAP,EAFU,EAiBjBC,GAAAA,SAAD,KACR,EAMgB,KACTvhC,MAAK,MAAZ,OAAJ,IAOe,KAAG,KAAH,IACRA,MAAK,KAAU,KAAW,KAAA,KAAjC,EANoBA,MAAK,MAAR,GAAA,IACRA,MAAU,MAAA,KAAjB,EAIgB,EAAsBA,MAAK,KAAU,KAAW,QAAA,KAAjC,EAIrB,EACDmJ,GAAAA,SAAe,KAAlB,IAEGpB,IAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,SAAA,OAAA,IAAA,KAAA,IACbH,GAAAA,IAAI,KAAR,IACgBA,IAAI,KAAP,IA6BW,OAAxB,IACE45B,IAAO55B,IAAI,IAAR,MAD6B,GAAV,KAAxB,IAGF,EAjCwC,IAAD,KAAd,EAEvB,WACE,GAAY,OAAZ,QAAA,IACqBG,GAAAA,IAAf05B,IAAJ,GAAiC,KAAU15B,IAAO,KAAU,KAA5D,OAWgB,KACV,OAAJ,IASJH,GAAAA,IAAO,IACD85B,GAAAA,IAAF,GAAA,MAAJ,IACE7wB,IAAQjJ,MAAD,KADT,EAGF,MAZoBG,IAAiB,KAAA,KAAV,KAAA,OAAA,IAAA,IACb,KAEH+I,GAAAA,IAFI,KAAD,QAGN,EAhBQ,YAAV,IACW,MADD,YAAV,IAGO,SAAP,IACO,SAAP,IAAkBA,GAAAA,IAAU,QAAJ,KAAxB,IACQ,KAELA,GAAAA,IAFM,KAAD,QAGR,EALyB0wB,GAAAA,IAAU,QAAP,MAAV,EAGhBA,GAAAA,IAAI17B,GAAAA,SAAD,MACL,EAOI07B,GAAAA,IAAI17B,GAAAA,SAAD,MACL,EAoCHiC,GAAAA,IAAW,MAACoB,SAAe,KAAc,KAACw4B,IAAD,KAA9B,KAAlB,EAGe,KAAA,IACJ55B,GAAAA,IAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EACS1I,GAAAA,SAAD,KACR,EAGa,KAAA,IACF0I,GAAAA,IAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,KAAA,OAAA,IACjBoB,GAAAA,IAAgBy4B,GAAAA,MAAD,KAAgB,KAAC,KAAD,KAGjC,EAFI75B,GAAAA,IAAe,QAAA,KAAY,KAAC8I,GAAAA,IAASC,IAAV,QAC7B,EAMyB,GACX,UAAA,MAAhB,EAgBY,KAAA,IACD/I,GAAAA,IAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,UAAA,KAAA,KACFoB,GAAAA,IAAgBy4B,GAAAA,IAAD,KAEP,IAiBZ,OAAX,kCAGkB,KAAC,KAAD,KAHlB,EACSC,IAAiB,KAAlB,mCAMV,EArBSC,GAAAA,IAAL,KACa,IACXjxB,SAAO,KAFT,EAIF,EAGEkxB,GAAAA,IAAqB,QAAA,KAEjBA,IAAgB,KAAYC,IAAQ,KAAxC,IACElxB,IAAO+wB,GAAAA,IAAkBE,MAAD,KAAlB,KADR,EAGF,EAMIh6B,GAAAA,IAAe,QAAA,KAAY,KAACk6B,GAAAA,IAAaC,IAAd,QAC7B,E,E,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,MC/JQ,IACC,EAAH,OA2BE,MAgBJ,MACA,MACA,MAEH,KAAkB,KAAH,QA6IrB,EAhND,EAAiB,EAsBf,GACY,KAAV,EACA,EACU,GAAA,IACHC,IAAP,EAKF,QACW,KAAT,EACA,EACU,GAAA,IACHA,IAAP,EAIF,WACI,MAKN,EAJI,EACU,GAAA,IACHA,IAAP,EAMJ,MACM,OAAJ,IAGI,OAAJ,MAGO,MACA,QACA,MACA,MACIC,GAAAA,IAAX,IACAC,MAAS,MACX,IAFmB,IANLr+B,MAAS,KAAA,WAAA,IAAA,IAAnB,IAHUA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAyBJ,KAAA,OAAA,OAAA,IACiB,KAAY,KAAA,IAAC,QAAD,IAAA,IAA3B,EACgB+D,GAAAA,IAAQq6B,IAAD,KAAA,OAAA,IAAA,IACb,WAAA,MACRE,IAAOC,GAAAA,IAAUC,IAAQC,IAAaC,IAAd,KAAA,UAAA,IAAA,MAAlB,MACR,EAEF,SACa,YAAX,IACa,MADF,YAAX,IAGI36B,GAAAA,IAAO,MAAX,GACEA,IAAU,MAAA,KAEJ,QAAR,IAcA46B,MAAc,MAChB,EAdY,MAAR,IAKQ,SAAR,IAKI,MAAQ,KAAA,OACZ,KALS,MACQ,MAAL,IAAA,IAAA,IAAH,QACP,KAPO,MACA,QACP,EAaN,KAAA,OAAA,MACEC,QAAa,KAAD,KAiBd,EAhBaL,GAAAA,IAAI,SAAJA,IAAuCM,IAAQ,MAA/CN,EAAgBM,IAAQ,MAAxBN,EACT,IAQUO,GAAAA,IAAeP,IAAI,QAAT,MACRJ,IAAZ,IAGEtxB,IAAQgyB,IAAQ,MAAT,MAHT,EACE/xB,IAAO+xB,IAAQ,MAAUE,IAAnB,MAIV,EAbQR,IAAI,MAAR,IAGEzxB,GAAAA,IAAO+xB,IAAQ,MAAUN,IAAI,QAAvB,MAHR,EACE1xB,GAAAA,IAAQgyB,IAAQ,MAAUN,IAAI,QAAvB,MADT,EAKA,EAUN,MAEE,OAMA,GAEG,OAFH,QAAA,IAIaS,GAAAA,MAAO,KACLb,IAAb,IAIe,KADf,IAEsBp6B,IAApBk7B,IAFF,GAQW,OAAJ,OAKF,MACA,MACPC,GAAAA,MAAM,KACR,EAPMb,IAAmB,KAAA,KAAV,MACT,KANO,MACA,MACPa,IAAM,KACN,EATOpyB,IAAaiyB,IAAP,MAAb,EAXKjyB,GAAAA,MAED9M,MAAS,KAAA,WAAA,IAAA,MAFF,MAAb,EA+BJ,SACS,MACA,MACH+D,GAAAA,IAAO,MAAX,GACEA,IAAU,MAAA,MAEZm7B,MAAM,KACR,EACA,KACU,SAAR,IACEZ,GAAAA,IAAiB,MAAX,QACC,MAED,SAAR,IAC0B,MAAG,KACzBA,KADF,IACEA,IAAiB,MAAG,IAAd,MAD6B,GAAb,MAAG,KAA3B,MAGO,MAEX,EAEA,SACqB,SAAA,OAAH,MACE,KAAA,OAAH,SACH,QACd,EAQA,KAAA,MACU,IACEa,GAAAA,SAAe,KAItB,KAJiB,OASfC,IAAL,GAAqBjB,IAArB,MACM,IACJrxB,IAAgBiyB,IAAV,MAEV,EAZQK,GAAAA,IAAJ,KACI,IACJvyB,GAAAA,IAAQwyB,SAAD,MACT,IAHY,EAIND,GAAAA,IAAJ,KACI,IACJtyB,GAAAA,IAAOuyB,SAAD,MACR,IAHY,EArIW,SACf,KAAiBt7B,GAAAA,IAAzB,IAGcA,IAAQq6B,IAAD,KAAA,OAAA,IAAA,IACrBE,IAAiBE,IAAO,KAAA,gBAAA,IAAA,MAAlB,MACN,EAJSc,MAAQ,OAAf,E,OCvEiB,SAAA,KAAV,OAEG,MACP,KAAqB,KAAH,MAUvB,EAV0B,QAAA,IACV,KAAC,KAId,KAJa,MAAhB,EAAiB,KAAA,IACRv7B,GAAAA,IAAe,KAACw7B,GAAAA,MAAC,IAAF,KAAU,KAAC,KAAD,KAAhC,EACSlkC,GAAAA,IAAP,EAED,KAAA,IACM0I,GAAAA,IAAe,KAACw7B,GAAAA,MAAC,IAAF,KAAU,KAAC,KAAD,KAAhC,EACQC,GAAAA,IAAN,E,uCCAgC,IAAA,KAAX,SACK,IAAA,KAAX,MAQrB,GAG4C,SAAD,MAE3C,EAAE,IAOF,+BACuC,KAAvB,MADhB,gCAUC,EAnB2C,EAAA,KAAc,EAAd,SAAc,MAa/CplC,GAAAA,IAAP,KAIOqJ,IAAOC,OAAA,MAAA,KAAd,E,E,K,ICXa,EAAA,K,KAAA,QAAH,QAA4C,EAb1D,GACS,OAAA,IAAA,GAAqC,KAAA,IAAU,SAAA,WAApB67B,IAAlC,EAOF,EACc/kC,MAAqB,SAAA,KAAG,KAC1B,QAAHilC,IAAAA,GAA6B71B,GAAAA,MAAgB,KAApD,E,OCwsBA,OAAA,IAA8C,EAA9C,EAAmC,KAAnC,EA5tBa,KAutBd,QAQD,KACoB,MACpB,EAAE,IAWI,MAAA,GAAJ,IAGEK,cAAQ,SAA+B,KAHzC,EACE5P,MAA6B,MAIhC,EAjvBc,gCAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,KAAA,MAGJG,MAAM,QACA,KAAL,IACWA,MAAM,KAANA,GAAyB,KAA5B,IAEJ,KAAA,OAAA,IAAwC,EAAxC,EAA+BuI,MACjB,MAAP28B,MAAH,IACe,MAAPA,MAAAA,GACK,SAAPA,OAAAA,GAatBC,IAAO,MAAD,MACR,EAAE,EACS,KAAH,IAGR,GAcY,UAoBc,QACA,QACL,QACA,IAIE,EAAH,IAYI,KACxBA,IAA0BC,IAAgB,KAApC,OAISplC,MAAM,SACSqlC,GAAAA,SAAqC,IAAD,KAAP,KAAT,KAApBA,GAC9B,MAAA,IAEIC,IAAW,QAA0BF,IAA1B,MAFf,MAAA,oCASEG,IAAsBvlC,MAAa,KAAA,KAAhB,MADwB,MAAvC,IAEqB,MAC3BwlC,IAAeC,IAAmB,EAAA,MAAA,QAApB,OACdD,IAGE,EAAA,IAAA,IAHY,OAKkBL,QAAM,OAAT,MAgBC,KAAH,MAUZ,KAAH,MAeI,KAAH,MAuEsB,KAAd,KACrBA,IAAoB,QAAiC,KAA/C,OAGe,MAKL,KAAH,MAmLSM,IAAD,KAErBN,IAAOM,QAAD,OAONN,IAAOM,IAAIL,IAAgB,KAArB,OAIND,IAAOM,QAAgB,KAAjB,OAmCS,KAAH,MA8DE,MAMdC,IAAoB,EAAA,IAGX,KAHW,KA6BZ,KA7BY,KAyCC,KAzCD,KAqGV,KArGU,KAuIR,KAvIQ,KA0JV,KA1JU,KAqKT,KArKS,KAuLH,KAvLG,KAAH,MA4MjB,EAzsBA,QACE1lC,MAAqB,KAAW,aAAA,MAAX,OAMX,IAAV,EAWF,MAEuB2lC,GAAkB,KAAsBJ,GAAAA,IAA7BI,IAAXA,GAA8DJ,GAAAA,IAA9DI,EACL3lC,MAAa,KAAe,KAAf,KACX0lC,GAAAA,IAAQE,GAAe,IAAhB,KAAA,UAAA,IAAA,IAIzBJ,IAA8CK,YAAgB,OAAzB,EAAA,QAAvB,OAEd,EAcF,GAEyC,WAAA,MAA9B,MAAA,IAAA,KAAP,EACA,EACO,MAAA,IAAA,KAAP,EAiBJ,EAAsB,EACtB,EAA8B,EAC9B,EAAuC,EAoCvC,KAAA,IACE,QAAmC,KAAC,KAAD,OAKrC,EALsC,KAAA,IAClCV,GAAAA,IAAOW,GAAAA,MAAmB,KAApB,OAGR,EAH4B,GACL,MAACr6B,GAAAA,OAAD,MAAnB,EAkCN,KAAA,OAAA,IAAA,KAAA,IAgEE+5B,GAAAA,IAAgC,EAhElC,KAgEkC,aAAlB,OAChB,EAhEE,QACeO,GAAAA,IAASC,GAAAA,OAAS,SAAV,OACX,SAAV,OAGqB,MACD,KAClB,GACI,OADJ,IAEIV,IAAW,SAAA,MAFf,eAUOW,IAAmB,KAAA,KAAY,KAAC,KAMpC,KANmC,MAAtC,UAPSA,IAAmB,KAAM,MAAN,KAAoB,KAAC,KAE5C,KAF2C,MAA9C,EAPW,MAAP,KA0BV,EAlBQC,GAAAA,IAAsB7zB,GAAAA,IAASC,eAAzB,IACR,EACE4zB,GAAAA,IAAqB7zB,GAAAA,IAASC,eAAxB,IACR,EAOA6zB,GAAAA,OAAY,MACZ9zB,MAAO,KACT,EAGS6zB,GAAAA,IAAuB7zB,GAAAA,IAASC,aAA1B,IAAb,EAON,EAAA,KAoBI8zB,GAAAA,kBAAAA,KAK8B,IAL9BA,EAAkBA,IAAoB,KAAA,MAblB,IAAtB,EALaH,GAAAA,IAAW,KAAA,MAAC,QAAD,IAAA,IAAtB,EACEC,GAAAA,IAAOz6B,GAAAA,IAAQ5G,cAAT,IACR,EAqDN,KAAA,OAAA,OAAA,IACcwhC,GAAAA,IAAH,IAEF,KAAP,EAAO,wBACDC,GAAAA,IAAUC,GAAAA,IAAd,OAIID,IAAUE,IAAd,OAUAlhC,IAAc,MACH,UAGMA,IAAO,MACtB,GACuBmhC,IAA8BnhC,IAAX,SACxC,MAMEA,IAAO,SAAX,IAKWA,IAAO,MAAX,IAQIA,IAAO,MAAX,IACLA,IAAc,MAAkB,MAAlB,MADT,EAPDghC,IAAUD,IAAd,IAKA/gC,IAAyB,MAAQ,MAAR,KANpB,EAEKkhC,IAAH,IACClhC,IAAO,MAAb,EALFA,IAAsC,MAAV,MAAhB,MAcNihC,IAAH,IAEQR,IAASW,IAAS3C,IAAMz+B,IAAhB,OACX,KAAV,IAgBiB,WAAV,OACGkhC,IAAH,IAGLlhC,IAAc,MACM,MAAT,YALN,KAbGA,IAAO,KAAPA,GAEJqhC,IAFIrhC,EACJkhC,IADC,IAIK,MAASI,UAAnB,OAKe,MACPthC,IAAO,KAFR,EAAA,IAAA,IAAP,EApCyBshC,OAAvB,OACA,EAlBJ,IAMOC,IAAU,IAAjB,EALE,IALQxlC,MAAK,KAAA,WAAA,IAAA,IAAf,EA6EN,MAC0B,MACH,MAAS,MAC9B,OA6Ba0kC,GAAAA,IAAyB,MAAkB,MAAnC,OAEX,SAAV,OAOiB,MAEjB,GACgB,QACIvgC,MAAS,KAAA,WAAA,IAAA,IAAhB,QACK,MACTohC,IAAP,EAGM,KAAR,GAqBE,EAlBgB,MAAmB,KAAP,IAGL,MAAX,MAQD,UAAX,QACgB,MACH,MAFb,EAYc,MACTA,IAAP,EA1CgB,MACM,MAAT,QACK,MACTA,IAAP,IA/BgB,UAGhB,IAAsC,MAAS,KAA/C,OAGgB,MACH,MACXH,GAAAA,IAAmB,MAER,MAAX,QAMF,IACgB,QACIjhC,UAChB,IADyB,KAAA,QACzB,OADyB,IAAA,IAAhB,MAINohC,GAAAA,IAAP,EATWA,IAAP,EA+ER,KAC4B,IAAd,EAAA,QAER,IAAJ,GACuB,IAAP,MADhB,GAII,IAAJ,GACyB,IAAP,SACK,IAAP,MAFhB,GAKI,MAAgB,KAAA,OACtB,EAEA,GACoB,MAALE,GAAoB,EAApBA,IACF,MACX,KACgB,QAClB,EAEA,MAIqB,MAAA,KAAD,IAAA,IAAH,MACI,KAACC,GAAAA,IAAD,MACT,QAAA,OACZ,EA8BA,KACE,GACgC3B,GAAAA,IAAD,IAC7B,GAImB,KAAf,OAAJ,MAIKhtB,MAAc,OAAT,KAAV,aACO,IAAc,KAAA,IAeH,MAAhB,EAKWyuB,GAAAA,IAAR,EAAA,IAAP,EAxBI,EAJ0B,KAAA,KAA1B,EASWv/B,GAAAA,IAAF,GAAA,IAAM0/B,IAAQ,KACf1B,GADN,IACMA,IAAW,KAAC0B,IAAU1/B,IAAX,MAAf,GADOA,IAAF,GAAA,IAAM0/B,IAAQ,KAArB,IAQAC,MAAU,QACD,MAET,EATIA,IAAaD,IAAS1/B,IAAD,IAAX,QACD,MACT,EAoBH,IAAA,MAAA,IAAP,EAjgB4C,GAA2C,WAAP,MAAe,EAoBtF,SACQ,IAAf,EAwDsC,GACxC,EAsC4B,GACjB,OAAA,IAAA,GAAsC,KAAtC,EACJ2jB,GACMic,GAAAA,IAATjc,IAAAA,GAGK,KAAJA,GAAwB,KAAxBA,IAAD,IAHAA,GADJ,EAQa,KACTjrB,MAAM,MAGWmnC,GAHrB,GAGqBA,IAAH,MAChBhC,IAAeiC,UAAT,OAJR,EACEpnC,MAAqB,MAASmnC,IAAT,MAKJnnC,MAAa,KAACylC,IAAD,KAAhB,MAChB,EAQO,KAAA,KAAP,EAuEmD,GACnD,EAOc,UACd,MAA0Cl8B,MAE3B89B,GAAAA,IACbC,kBAAI,IADsB,KAAA,UAAA,IAAA,IAKrBhnC,IAA2B,MAAA,SAA3BA,GAEM,KAAA,IAAO,KAAC,KAAD,KAFbA,KAAP,EAEqB,GACF,KAAN6lC,GAA6BoB,GAAAA,IAAS,KAAA,IAAtCpB,EAAoB,KAA3B,EAiLmB,GACzB,EAGqB,IACrB,EAkCa,IACAnmC,WAAM,KACR,IACX,GAAA,QAAA,SAAA,GACW,KAAA,KADX,UAGY,MAAA,IAIL,KAAA,IAAP,EACSmN,GAAAA,IAAI,KAAX,GACYA,IAAQ,KAAA,IACP/F,IAAPgB,IAAJ,GAFK+E,IAAI,KAAX,GAYA85B,MAAS,MACT,EAVIA,IAAU,QACD,MACT,EAuDC,gBACI,MACA,MAGa,MAAb,QACA,QACI,UAEF,MACH,MAEJ,MAAmB,KAACO,GAAAA,IAAD,QAEvB,GACE,GAAA,QAAA,SAAA,GAEiB,MAAA,KAAf,IACIlC,IAAW,KAAA,MADf,GAEKltB,MAAiB,KAAA,KAAX,GAAD,KAFV,GAGY,IAHZ,EAON,EAEM,KACK,MAEW,QAAW,IACL,MACZ,SAAd,IAIW,MAAX,EAHkB,MAAhB,EAMe,wBAAA,KACT,KAAR,MAoBiB,MAAW,QAAf,IAYMktB,OAZnB,OACkB,MAAW,IACT,MAET,MAAT,OAOS,MAAe,MAAxB,OACiBA,IAAW,KAAA,MACTA,IAAW,KAAA,MAE5B,GAAA,MAOO,GAKA,KAMKjkC,MAAK,KAAA,WAAA,IAAA,IAAf,EALQ,MAAa,YAArB,gBACqB,MAAN,KAAb,EANM,MAAa,YAArB,gBACqB,QAAN,MAAb,EARM,MAAa,MAArB,IAEe,MAAa,YAArB,IAlBoC,GAAjD,OAqCF,cAlB6B,MAAN,KAAb,cAFmB,QAAN,MAAb,kBATS,KAAb,EA3BF,EAIF,GACEomC,GAAAA,QAAW,MACXA,IAAaC,IAAH,MACVpiC,OAAY,MAEZ,GAGEA,QAAc,MACdA,MAAW,MAGL,GAAD,GAAP,EA0CI,eACW,MAAW,QAAf,IAGPggC,KAHN,IACkB,MAAW,IAClB,MAAe,MAAxB,IACIA,IAAW,KAAA,MADf,GAEQ,MAAa,SAFrB,IAF+C,KAAjD,OAUA,OAAA,WAAA,IAGgB,SAHhB,IAIuB,SAJvB,MAUaqC,GAAyC,EAAzCA,EAA2B,MAC7B,MACD,MAEV,GAMoB,MAAA,KAApB,MALa,MACa,MAAf,MACFf,IAAP,EAMM,SACE,SAAV,IAIU,SAAV,IACU,SADV,IAGiB,SAAV,IAIU,SAAV,IAAA,GACI,MADJ,EAHwB,MAAT,MAAX,MACE,UACF,MAHJ,EADa,MAAT,MASJA,GAAAA,IAAP,EAdc,MAAZ,EAiBI,QACW,MAAW,QAAf,IAAb,IACkB,MAAW,IAClB,MAAT,IAF+C,GAAjD,MAQF,EALmB,MAAM,MAAkB,MAAxB,MACbY,GAAAA,MAAa,KACNZ,IAAP,EAKG,UACU,MAAW,QAAf,IAAb,IACkB,MAAW,IAClB,MAAT,IAF+C,GAAjD,MAcUvlC,MAAK,KAAA,WAAA,IAAA,IAAf,EAXsB,MACR,WAAV,IACqB,MACnBmmC,GAAAA,IAAa,KAEf,EASS,GAEDpE,GAAAA,SAAM,KADF,EAAA,QAAA,QAAA,KAAH,MAML,UAAR,IAGU,MAGHwD,IAAP,E,eCxsB4B,IAAA,KAAX,SACS,IAAA,KAAX,MAUb,UAAN,IAAA,QAAAgB,IAAiC,MAAA,IAAjCA,GAAA,EAAA,IAAA,GACM,QAAN,IAAA,QAAAC,IAAqC,MAAA,IAArCA,GAAA,IADA,EAGwCt+B,MAAD,KACVu+B,MAGrB,MAAV,8BAK0B,SAaT,SACA,SACA,SACA,SACA,SACA,SACA,SACA,KAOjB,GAeY,MAAV,IACEC,QAEE,KAFY,MAIdA,QAEE,KAFY,MALhB,EAZAA,QAEE,KAFY,MAIdA,QAEE,KAFY,MAwBhB,GAKEA,QAEE,KAFY,gBAHdA,QAAiC,KAAnB,MAOf,EAnEyB,KAAA,IAWtBA,GAAAA,MAAqB,KAAP,MAChB,EAD6B9+B,GAAAA,IAAOC,OAAA,MAAA,KAAsBzE,GAAAA,IAAD,IAAlC,EAqBfwE,GAAAA,IAAOC,OAAA,MAAA,KAA0B,MAAvC,EAIMD,GAAAA,IAAOC,OAAA,MAAA,KAA0B,MAAvC,EASQD,GAAAA,IAAOC,OAAA,MAAA,KAAqB,MAAlC,EAIMD,GAAAA,IAAOC,OAAA,MAAA,KAAqB,MAAlC,EAWmCtJ,GAAAA,IAAM,UAAZ,IAAM,MAAN,EAKzBqJ,GAAAA,IAAOC,OAAA,MAAA,KAA8B,KAA3C,E,W,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,M,M,QC1FJ,IAAA,KAAA,KAAA,OAE6B,IAAA,QACL,IAAA,QACC,IAAA,KAAV,cAiBK,IAIgB,IAAH,IACE,IAAH,IACC,IAAH,IACa,IAAH,IACE,IAAH,IACsB,EAAH,IAElD,IACqB,IAAH,MAEI,IA4Jb,EAKH,KALG,IAsBF,KAtBE,KA2CY,KA3CZ,KAuDQ,KAvDR,KAkEM,KAlEN,KA2GK,KA3GL,KA6HD,KA7HC,IAiIA,KAjIA,KAqIY,KArIZ,KA6IO,KA7IP,KAqJH,KArJG,KAkLI,KAlLJ,KAmNU,KAnNV,KAgOK,KAhOL,KAAH,IA8QT8+B,KAAL,KACE1mC,MAAY,SAAA,KAGiB2mC,IAAQ,MACRA,IAAQ,MAFjB,EAAA,KAAA,KAHtB,EAQqBA,IAGyB,MAC5CA,IAAQ,MADoC,QAIhC,MAAoB,EArbhBC,GAAAA,IAAgB,OAAA,WAChC,IACcA,IAAQ,KAEtB,EAIWC,GAAAA,IAAI,GAAA,GAAA,IACGC,MAAa,IAC/BF,IAAmB,IACnBG,OAAoB,IACpBC,OAAgB,IAChB,EAQF,kBACgBH,GAAAA,IAAd,MACE7mC,MAAY,SAAA,MAWK4mC,IAAgB,KAAA,WACnC,OAIaI,IAAK,IACDD,IAAS,OAC1B,MAAA,KACE/mC,MAAa,SAAC,IAAD,KACb,SAQF,IAAA,EACEinC,IAAW,KAGb,OACE,UAAA,cAAA,cAMO,WAEA,MAcLjnC,MAAa,YAAC,IAAD,iCAHE,GAVN,EACQ,KADR,KAUK,GAVL,KAAD,KADH,KADI1B,IAAM,MAAgB,KAAA,IAAvB,oBAFA,iBAmBZ,EAAE,EAEA4oC,IAAW,KAAA,eAMf,EApDI,EA8BmB,EAINjmC,MAAQ,KAEbkmC,GAAAA,IAAkB7oC,IAAM,MAAgB,KAAA,IAAK8oC,GAAAA,IAA3B9oC,IAAlB6oC,MAFa,MAAf,EAwBV,IACME,GAAAA,IAAqB,KAAzB,IAUkCA,IACV,IAAH,IAIwB,OAA7C,IACEC,IAAoC,IAA1B,MAD0C,GAAT,KAA7C,IAOOD,IAAqB,KAArBA,IAAP,IArBE,EAwBJ,GACET,GAAAA,MAAW,IACXG,IAAY,IACZC,IAAQ,MACV,EAEA,KAGE,IAIcJ,GAAAA,IAAgB,KAAA,WAE9B,IACeI,IAAK,IAClBC,MAAW,SACX,QAAA,IAIEM,IAAW,KAJb,EAOJ,IAfI,EAqQFx8B,GAAAA,IAAU27B,IAAAA,WAAD,MACTA,IAAAA,KAAwB,qBAAA,IAC1B,EAGE37B,GAAAA,IAAU27B,IAAAA,WAAD,MACTA,IAAAA,KAAwB,SAAA,KAC1B,EAGE37B,GAAAA,IAAU27B,IAAAA,WAAD,MACTA,IAAAA,KAA8B,SAAA,KAChC,EAtPc,YAIF,KADDxmC,QAAA+I,IAAAA,IAAA,KAAA,UAAA,IAAA,OACC,IADD,IAAAC,IAAA,IAAA,GACC,eACGs+B,GAAAA,IACT,SAD0B,MAI5BC,IAAgBC,KAAezlC,MAAQ,KAAA,cAA5B,IACX,EAJQ0lC,GAAAA,IAAU,KAAY7/B,MAAZ,MAAhB,EAWS,YAIH,KADD5H,QAAA0nC,IAAAA,IAAA,KAAA,UAAA,IAAA,OACC,IADD,IAAAC,IAAA,IAAA,GACC,eACGL,GAAAA,IACT,SAD0B,MAI5BC,IAAgBC,KAAezlC,MAAQ,KAAA,cAA5B,IACX,EAJQ0lC,GAAAA,IAAU,KAAY7/B,MAAZ,MAAhB,EAeuB,SAAgD,KAAf5H,QAAA4nC,IAAAA,IAAA,KAAA,UAAA,IAAA,OAAe,IAAf,IAAAC,IAAA,IAAA,GAAe,eAC9DP,GAAAA,IACT,SAD0B,MAI5BH,IAA0B,KAAA,KAC1B,EAJQM,GAAAA,IAAU,KAAY7/B,MAAZ,MAAhB,EAWS0/B,GAAAA,aAAiB,MAC5BC,MAAmBxlC,MAAQ,KAAA,cAAhB,IACX,EAQmB,QAIf+lC,GAAAA,IAAoB,OAAxB,IACEC,QAAiB,KADnB,GAIgBjqB,GAAkB,MACfwpB,SACjBU,IACI,KADJA,cADkC,MAApB,IAahBF,IAAyB,KAACG,IAAD,KAEzB,IAC4BxB,IAAmB,KAAC,KAAD,MAW7CyB,IAA4BD,IAAG,IAE1BA,IAAP,EA1BkCC,GAAAA,IAA4BD,GAAAA,IAAD,IACrD,GACExB,IAAqB,KAAA,KACdyB,IAA4BD,IAAnC,IAEKR,SAAI,KAAX,EASkBK,GAAAA,IAA4B,KAACG,GAAAA,IAAD,WAClD,IACEH,IAA2B,SAAA,MAC3BV,IAAWa,IAAI7pC,IAAM,MAAgB,KAAA,QAA3B,OAEL8pC,IAA4BD,IAAnC,IACIH,IAAoB,OAAxB,IACEC,QAAiB,KADnB,EAGF,EAMgB,GAClBI,GAAAA,MAAa,KACCL,IAA4B,KAAA,WAC1C,IACEA,IAA2B,SAAA,MAGXI,IAA2B,IAC7C,GACEzB,IAAqB,KAAA,KACdyB,IAAP,IAGEJ,IAAoB,OAAxB,IACEC,MAAiB,KAErB,EAGEI,GAAAA,SAAa,KACf,EAGEA,GAAAA,SAAa,KACf,EAE2B,GACzBA,GAAAA,MAAa,KACChB,IAA6B,KAAA,WAC3C,IACEA,IAA4B,SAAA,MAEhC,EAGEgB,GAAAA,SAAa,KACf,EAMY,cACVt9B,GAAAA,IACc,KAAZu9B,QADO,MAKTpB,IAAa,MACmB,OAAhC,IACEI,IAAuB,IAAb,MAD8B,GAAV,KAAhC,IAImBJ,IAAM,KACzB,IAeF,EAdI,IAGE,IACEP,IAAmB,KAChB,KAEM,KAAOO,IAAM,IAAb,MAHU,MADe,GAApC,IASIA,IAAM,IAAZ,EAPO,GACC,EAUO,OAEfC,GAAAA,IAAkB7oC,IAAM,MAAgB,KAAA,IAAtBA,IAAlB6oC,OADF,IAOAD,IAAa,MACTc,IAAoB,KAAxB,IAC4BA,IACH,IAAH,IAEiB,OAArC,IACEV,IAA4B,IAAlB,MADkC,GAAT,KAArC,IAKEU,IAAoB,KAAxB,IACEC,MAAiB,KAGnBf,IAAc,OAAC,KAAD,KAKhB,EAtBI,EAiBa,KAAA,IACbP,GAAAA,IAAmB,KAAC,OAAD,MADD,EAEVnX,GAAAA,IAAN,EASmB,EACvB0X,GAAAA,MAAa,MACNqB,IAA8B,IAArC,GAAOA,IAA8B,IAArC,GACArB,IAAc,OAAC,KAAD,KAKhB,EALiB,KAAA,IACbP,GAAAA,IAAmB,KAAC,OAAD,MADD,EAEVnX,GAAAA,IAAN,EASAgZ,GAAAA,IAAJ,KAG0B,MAC1BxoC,MAAY,QAAA,OACd,IAJI,E,e,K,I,M,K,I,Q,O,WC/ZN,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAsE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAatC,SAAA,KAAgB,MAAA,EAbsB,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,K,OCCpE,MAGkCkE,MAAG,KAAA,OAAA,IAAA,IAAV,IA6Cd,E,KAAA,K,KAAA,QAKR,QAAiB,EA3C/B,UAAgE,KAAfzI,QAAA+I,IAAAA,IAAA,KAAA,UAAA,IAAA,OAAe,IAAf,IAAAC,IAAA,IAAA,GAAe,IACjD,GAAb,OAKI,OAAJ,IAMWu/B,GAAAA,IAAK,GAAA,GAAA,IAGZC,IAAqB,KAAA,KAAzB,GACEA,IAAwB,KAAA,KAD1B,YAIApqC,IAAqB,MAAC,KAAD,KASd6pC,IAAP,EArBYjkC,MAAS,KAAA,WAAA,IAAA,IAAnB,EALUA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAkBKwkC,GAAAA,IAAqB,KAACP,GAAAA,IAAD,KAA1B,GACE91B,IAAc,KAAYvK,MAAZ,MADhB,EAIE4gC,IAAwB,KAACP,IAAD,KAJ1B,EAMF,EASAO,GAAAA,IAAqB,QAAA,OACvB,E,KCjDahqC,MAAA,KAAA,IAAA,QAAA,S,KAAA,QA8BZ,EAnBc,OACA,MAAb,IAKI,OAAJ,IAKCiqC,GAAAA,IAAAA,KAAsC1gC,MAAe,KAAA,IAAlB,OAC7B,KAAA,KACC,QAAC,KAAD,KAMV,IAZc/D,MAAS,KAAA,WAAA,IAAA,IAAnB,IALUA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAWO,KAAA,MAELgb,QAAW,OAAD,MAFA,EAGFsQ,GAAAA,IAAN,E,Q,I,MCzBwB,MAAA,KAAX,UAQY,KAAnB,UACa,KAAb,UAEU,KAAV,UACY,KAAZ,UACY,KAAZ,UACa,KAAb,UACc,KAAd,UACS,KAAT,UACS,KAAT,UACe,KAAf,UACQ,KAAR,UACoB,KAApB,UAGZ,KAFY,UAMZ,KAFY,MAGZ,EApBqC7nB,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACAD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAEGD,GAAAA,IAAOC,OAAA,MAAA,KAAoB,MAAjC,EACQD,GAAAA,IAAOC,OAAA,MAAA,KAAoB,MAAjC,EACMD,GAAAA,IAAOC,OAAA,MAAA,KAAoB,MAAjC,EACOD,GAAAA,IAAOC,OAAA,MAAA,KAAoB,MAAjC,EACOD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACCD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACMD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACYD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACDD,GAAAA,IAAOC,OAAA,MAAA,KAAe,MAA5B,EACkBD,GAAAA,IAAOC,OAAA,MAAA,KAAe,MAA5B,EAG1BD,GAAAA,IAAOC,OAAA,MAAA,KAA0C,MAAvD,EAIMD,GAAAA,IAAOC,OAAA,MAAA,KAA0C,MAAvD,E,aC7BW,MAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAMc,IAAA,QACY,IAAA,QACV,IAAA,QACP,IAAA,QACK,IAAA,QACF,IAAA,KA4BV,MAAf,GACkC,MAAA,IADlC,Q,yD,SAW4B,MACP,MAFY,UAClB,OAAA,IADkB,MAEzB,GAAA,IAFyB,MAAH,IASP,QAUiB,SAAA,KAEY,KAAA,MAArB,KAAA,KAAA,IAaU,KAAAuB,IAAA,KAAA,KAAA,MAArB,KAuDjB,KAtDY,MACA,MACU,MACT,MACH,QAEQ,SAsjBP,MAAkB,EAhpBnB,KAAA,IAAA+C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAsEkB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAAAzE,IAAA,KAAA,KAAA,EAAA,OAAAC,GAAAA,IAAA,KAAA+/B,GAAAA,IAAA,MAAAt7B,IAAA,KAAA,EAAA,MAAA,EAaX,EAAA,KAAA,IAAAkR,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IA4DjBzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAoBA,MAAA,IAED,KAFC,IAMD,KANC,IApBA,IAqDA,MAAA,IAED,KAFC,IArDA,IAkEA,MAAA,IAED,KAFC,IAlEA,IAkHA,MAAA,IAGD,KAHC,IAlHA,IA+HA,MAAA,IAGD,KAHC,IA/HA,IA+IA,MAAA,IAED,KAFC,IA/IA,IA2KA,MAAA,IAED,KAFC,IA3KA,IAuLA,MAAA,IAED,KAFC,IAvLA,IA6MA,MAAA,IAED,KAFC,IA7MA,IA6NA,MAAA,IAGD,KAHC,IA7NA,IA8PA,MAAA,IAED,KAFC,IA9PA,IAuQA,MAAA,IAED,KAFC,IAvQA,IAyTA,MAAA,IAED,KAFC,IAzTA,IA8TA,MAAA,IAED,KAFC,IA9TA,IAqUA,MAAA,IAKD,KALC,IArUA,IA6UA,MAAA,IAKD,KALC,IA7UA,IAqVA,MAAA,IAED,KAFC,IArVA,IAuWA,MAAA,IAED,KAFC,IAvWA,IA+bA,MAAA,IAED,KAFC,IA/bA,IAodA,MAAA,IAED,KAFC,IApdA,IA+dA,MAAA,IAED,KAFC,IA/dA,IAkfA,MAAA,IAGD,KAHC,IAlfA,IA8fA,MAAA,IArgBD,KAqgBC,IAAA,IAAA,IA9fA,OALA,EAED,GAAcC,GAAAA,IAAA,KAAAggC,GAAAA,MAAA,MACZC,IAAA,KAAA,OAjDI,SACA,SACU,SACT,SACH,MAYM,MAEJ,MACC,QAEQ,MAEyBF,IAAyB,KAAA,OAAA,IAAA,IAA3D,QAKE,MAEC,QAGF,MACC,UAEC,MAEL,MACK,UACI,MACK,MACuBjI,IAAvB,MAQL,MAAA,IAAG,EAGhB,GACwB,MAAP,QACK,QACT,MACX,OAEe,MAEK,QACN,MACE,EAAH,UACC,MACI,MACR,MACuB,EAAH,MAEN,MAAA,IACV,MAChB,EAEA,GACa,MAAX,EAGF,MACU,MAAR,MAMKoI,GAAAA,IAAuC,KAAA,KAA5C,KACE/oC,MAAY,SAAA,QAAA,IAAA,OAGZ,EAIF+K,IACEg+B,IAAwB,IAAxBA,OAA0CC,IAA1CD,IAAqE,UAAA,IAD9D,UAKT,IACEh+B,IACEk+B,IAAW,UADJ,MAKO,MACpB,IAzBclpC,MAAK,KAAA,WAAA,IAAA,IAAf,EA2BJ,GACU,UAAR,IAAqC,UAArC,IAMQ,SAAR,IAGW,MAAX,EAFE,IANUA,MAEoC,UADsB,IADrD,KAAA,YACqD,IAAlE,OADa,IAAA,IAAf,EAWJ,OAC6B,MAC3B,WAAA,OAIQ,SAAR,OAIQ,QAAR,OAIA,IAAA,WAAA,WAAA,QAAA,MA4BwB,MA5BxB,KAoBI,EACyBiD,MAAU,MAAK,MAAL,KAAb,MACtB,KAAE,IACoB,MACtB,KAde,MAAX,OAAJ,IAA8C,MAA9C,GAEe,MAAR,MAGKjD,MAAwC,UAAnC,IAAA,KAAA,OAAA,IAAA,IAAf,EAFuBkpC,GAAAA,IAA2B,MAAC,IAAD,KAA9B,MADf,EADkBA,GAAAA,IAA6B,MAAK,MAAL,KAAhC,MADtB,EAJuBC,GAAAA,IAAkB,MAAK,MAAL,KAAgB,MAArC,MACpB,IALoB,MA6Bb,MAAX,EAlCa,MAAX,IAJA,EAJW,YAAJ,IAAiC,SAAjC,GAAuD,MAA9D,EA8CJ,cACiB,MAEfL,GAAAA,IAAc,MAAdA,GACEA,IAAc,MAAyB,MAEjC,MAAJ,MACI,MAAJ,MACI,kBAJiC,IADzCA,EAOF,EAGA,GAKwB,SAAtB,IACM,MAAqB,MAAC,aAAA,QAAA,KAAD,KAD3B,EAQF,EAEA,mBAMwB,MAAtB,OACM,QAAJ,IACM,MAAgC,MAAK,MAAL,KAC3B,MACY,MAAA,KACL,MAAK,MAAL,KAClB,GAAA,IAGE,KAHF,EACkB,MAKlBA,GAAAA,IAAc,MAAdA,GACEA,IAAc,MAA8B,MAE1CM,GAAmB,MAAnBA,MAEAC,GAAmB,EAAnBA,eAJ0C,IAD9CP,EAQJ,EAEA,SACwB,MAAtB,IAGc,QACM,MACF,MAAK,MAAL,KAElBA,GAAAA,IAAc,MAAdA,GACEA,IAAc,MAA0B,MAAA,MAC5C,IARI,EAUJ,SAMwB,MAAtB,IAGS,MAAT,GACgB,MADhB,EAGM,MAAU,IAAA,MAGhBA,GAAAA,IAAc,MAAdA,GACEA,IAAc,MAA0B,MAAA,MAExB,MAAK,MAAL,KACW,YAAA,SAC/B,IAbI,EAeJ,MAKwB,SAAtB,IAGkB,QAEEQ,IAFD,MAAA,IAAA,QAAA,KAAA,KAAD,OAMpB,IARI,EAWJ,SAKwB,MAAtB,OACE,GACU,UAAR,IAAqC,UAArC,IACgB,MADhB,EAGc,SACd,GACgB,MAGM,MAAA,MACT,MACG,MAAK,MAAL,KAGhBR,GAAAA,IAAc,MADhB,GAIEA,GACEA,IAAc,MAA6B,MAErC,MAAU,KAF2B,MAD7CA,EAHAA,GACEA,IAAc,MAA2B,MAAA,MAD3CA,EAUN,EAEA,GACO,MAAJ,GAAuB,IAAW,OAAC,KAAD,KAKb,IAAH,QACrB,EANsC,GAClC,GACY,KAAA,IADZ,EAGF,EAIF,uBACW,MAAT,KAEE,EAI0B,WAKpBpqC,MAAG,KAAA,OAAA,IAAA,IACiBC,MAAW,KAAA,KAAvC,GAAA,GAAA,IAAA,GAAA,OAAA,MACqC,IACc,MAAA,UACf,KAAA,QAClC,MAIqB,WAEyB,MAAA,OAFP,EAAA,KAAA,KAAA,KAAlB,MAJrB,KACQ,SAAgB,IAAJ,IAAA,SACC,QAAA,MAQvB,KAAA,EAAA,GAAA,EAGsByK,GAAAA,IAAA,QAA0B,MAAA,IAA1B,KAAkC,MAAC,KAAD,KAahD,KAAC,KAAD,KAGC,SAAA,KAJPmgC,IADF,EAXyD,MAClD,MAAoB,MAAzB,IAGK,MAAoB,MAAzB,MAGA,KAFE,QAHA,EAWK,GACU,UAANC,IAAsC,MAAtCA,IAAP,EAMR,MACoB,MAA6C,MAAA,IAAnB,QACrChqC,OAAP,EAGF,MACU,MAAoB,MAA5B,IAGI,MAA4B,MAAA,MAAM0D,WAAM,KAAT,IACrC,IAHclD,MAAK,KAAA,WAAA,IAAA,IAAf,EAQJ,MACoB,MAClB,EAMF,MACyB,MACvB,EAGF,YAEU,MAAoB,MAA5B,SAGA,IAAA,KAEYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAEF,KACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAE+B,MAAA,IAArB,MACH,QACI,MACK,MAAK,MAAL,KACpB,IAbcA,MAAK,KAAA,WAAA,IAAA,IAAf,EAeJ,iBACU,MAAoB,MAA5B,OAGQ,MAAR,QAGU,MAEJ,MAAJ,GAAiC,MAAL,GAAD,GAA3B,GAA8D,MAAL,GAAD,GAAxD,IAEE,MAAoB,KACtBypC,GAAAA,IAAyB,SAAuB,KAAvB,MADH,KAKpB,MAAoB,KACG,SAA8B,KAA9B,MADH,KAKpB,MAAoB,KACG,SAA0B,KAA1B,MADH,KAKpB,MAAoB,KACG,SAAqC,KAArC,MADH,KAKpB,MAAoB,KACG,SAAkC,KAAlC,MADH,KAKpB,MAAoB,KACG,SAA+B,KAA/B,MADH,KAOhB,UAAR,OAGQ,MAAR,OAMQ,UAAJp/B,IAA4D,MAA5DA,EAAuC,MAAvCA,EAC0CnH,QAAM,SAAlC,IAAH,MACT,MAAiC,MAAK,MAAL,KACrC8H,IACM,UADG,OAMH,UADG,OAKTy+B,IAAyB,MACnB,MACA,MACA,MACA,MAMA,MAEA,MAAwB,KAAA,KACxB,qBAbmB,IAqB7B,IAjFczpC,MAAK,KAAA,WAAA,IAAA,IAAf,IAHUA,MAAK,KAAA,WAAA,IAAA,IAAf,EAWEqK,GAAAA,IAAI,MAAoB,KAApBjB,GAAAA,IAAA,UAAA,KAAoB,MAD0B,EAMlDiB,GAAAA,IAAI,MAAqB,KAArBjB,GAAAA,IAAA,UAAA,KAAqB,MADgC,EAMzDiB,GAAAA,IAAI,MAAiB,KAAjBjB,GAAAA,IAAA,UAAA,KAAiB,MADgC,EAMrDiB,GAAAA,IAAI,MAA4B,KAA5BjB,GAAAA,IAAA,UAAA,KAA4B,MADgC,EAMhEiB,GAAAA,IAAI,MAAyB,KAAzBjB,GAAAA,IAAA,UAAA,KAAyB,MADgC,EAM7DiB,GAAAA,IAAI,MAAsB,KAAtBjB,GAAAA,IAAA,UAAA,KAAsB,MADgC,EAmDhE,KACe,MACL,MAAR,GACEqgC,GAAAA,IAA0B,MAAK,MAAL,KAMpB,MAAoB,MAF5B,IAGS,MAAoB,MAH7B,IAG6C,MAH7C,GAIQ,MAAoB,MAJ5B,IAOa,MAAA,IACO,MAAK,MAAL,KAGT,MAAA,MACb,EAEA,WACyBJ,KAAH,MACJA,GAAmB,EAAtB,MACoB1qC,MAAW,KAAA,KAAgB,MAEzD,KAGA,EALyD,MAA9B,QAMhC,EAJK,MACkC,MAAA,IAAM+qC,GAAAA,IAAO,IAAV,IACtC,EAIJ,MACiB,MACG,MAAC,MAAA,IAAD,KACG,MAArB,OACU,MAAR,GAEe,MAAR,GAOa,MAAC,MAAA,IAAD,KAPb,EACG,MACY,MAAC,EADrB,OAGqB,IAAD,KAHpB,MACqB,IAAD,KADpB,EAFkB,MAAC,MAAA,IAAD,KAUF,MAAC,MAAA,IAAD,KAZpB,EAcF,EAGA,UAKE,QAAA,MACyB,MAEzBC,GAAAA,IAAA,KAAAprB,IAAA,KAAAuqB,GAAAA,IAAA,OAAA,SAAA,OAAA,QAAA,OACF,EApgBEA,GAAAA,OAA2B,QAC7B,E,K,I,K,SCpJyB,SAAA,KAAV,IAiBAc,IAAH,MAAe,OAAmB,MAAe,KAA4B,KAAT,MAAkB,EAhBpG,IACM,KAAA,OAAJ,IAAsCr9B,MAAO,KAA7C,GAGEzN,GAAAA,MAAwB,KAAH,IAAP,MAQL,OAAmB,MAAe,KAA4B,KAAT,MAXhE,EACEA,GAAAA,IAAwByN,MAAO,KAAS,KAAA,IAAnB,IAAP,MAAoC,OAAmB,MAAe,KAA4B,KAAT,MAYlGq9B,GAAAA,IAAU,KAAA,EAAA,KAAA,MAAjB,EAV0B,aACXC,GAAAA,IAAa,MACxB,GAAW,IACAlrC,MAA+B,KAAA,MAClC,KAAR,GAGW,KAAX,EAFa,KAAS,KAAU,MAAT2H,OAAD,KAApB,E,UCVoB,SAAA,KAAV,I,KAQJ,MAAyB,OAAmB,MAAe,KAA4B,KAAT,MAAkB,EAP9G,YACU3H,MAAM,KAAU,KAAoB,KAAA,MACjCwP,SADX,GACWA,IAAc,QACvB,IAFMxP,MAAM,KAAU,KAAoB,KAAA,YAA5C,GAIA,E,W,I,K,I,K,I,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,OCMF,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAEoB,IAAA,KAAV,OACkB,IAAA,KAAV,IAmCD,KA+Hd,IA3H+BmrC,KAAD,GAAD,GAAZ,SA8HN,MAAe,EAxKK,OAAAnrC,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAYlC,IACuD,KAAC,gBAAS,KAAV,MAArD,EAA+D,EAClDhF,MAAW,MAAA,OAAXA,iBACL6b,OAAgBhH,OAAAA,IACL,KAAA,KAAjB,EAYExX,GAAAA,IAAM,QAAV,IAGSA,IAA8B,SAAA,KAArC,EAFA,EASa,EAAA,KAAA,IAAAsK,GAAAA,IAAA,KAAA,MAAA,IASf,KATe,IAAA,IAAA,IAsDd,MAAA,IAMD,KANC,IAtDc,IA2Ed,MAAA,IAKD,KALC,IA3Ec,IAwFd,MAAA,IAMD,KANC,IAxFc,IAkGd,MAAA,IAMD,KANC,IAlGc,IA4Gd,MAAA,IAMD,KANC,IA5Gc,IAsHd,MAAA,IAKD,KALC,IAtHc,QAAA,OA+Hd,EA/HcC,GAAAA,IAAA,KAAAogC,GAAAA,QAAA,MAAA,EASf,YAIEl+B,GAAAA,IAAAA,KAAU8+B,IAAAA,WAAD,MAEMC,IAAM,IACE,KAAC,KAAD,KAqBE,MAAC,OAAD,MAQzBD,KAAgC,MAAA,MAEzBZ,GAAAA,IAA6B,MAI5BjrB,GAAiB,KACTA,KAAiC/b,MAAQ,KAAA,IAAzC+b,EAAiB,MALI,EAAA,KAAA,IAAA,IAAA,IAAA,KAAD,KAApC,EA/BwB,KAEJ+rB,MAAhBC,IADF,GAEG1rC,GAAAA,IAAM,MAFT,GAE6CA,IAAM,MAAtB0rC,IAF7B,GAQoBC,IAAhBD,IAAJ,GAOU/mC,QAAM,KADP,EAAA,QAAA,IAAP,EAJY,KADL,EAAA,QAAA,IAAP,EALUlD,MAAK,KAAA,WAAA,IAAA,IAAf,EAgBsB,MAChB,SAAR,IAGmB,KAAK,KAAfmqC,IAAP,EAFa5rC,GAAAA,IAAe,QAAC6rC,MAAc,OAAL,KAAV,KAAsB,KAA3CD,IAAP,EAqBN,GACEE,GAAAA,IAAqB,MAAQ,MAAR,OAEd1rC,MAAa,KAACA,MAAa,KAACurC,IAAI,KAAL,KAKvB,WAAPjsB,IAA2BlR,IAAA,IAAA,MAGRu9B,IAA2B,MAAR,KADtB,EAAA,KAAA,EAFW,UALqB,EAAA,IAAhC,MAApB,EAiBF,GACEt/B,GAAAA,IAAAA,KAAU8+B,IAAAA,WAAD,MAETO,IAAuB,MAAA,KACH,KAAA,KAApB,GAGAP,IAAAA,KAAwB,MAAA,KAC1B,EAHI,EAUF9+B,GAAAA,IAAAA,KAAU8+B,IAAAA,WAAD,MAETA,KAAqC,MAAA,IACvC,EAOE9+B,GAAAA,IAAAA,KAAU8+B,IAAAA,WAAD,MAETA,KAAoC,SAAA,KACtC,EAOE9+B,GAAAA,IAAAA,KAAU8+B,IAAAA,WAAD,MAETA,KAAuC,SAAA,KACzC,EAME9+B,GAAAA,IAAAA,KAAU8+B,IAAAA,WAAD,MAETA,KAA+B,SAAK,QAAL,MACjC,E,e,K,I,M,K,I,Q,O,WCtKF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAvlC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAY9B,SAAA,KAK5C,wBACqB,EACL,KADK,IAOG,KAPH,KAUE,KAVF,KAaK,KAbL,KAgBH,KAhBG,KAmBF,KAnBE,KAsBV,KAtBU,QA4BW,MAAA,EA9C0C,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAoBhEmM,GAAAA,MAAJ,IACcd,IAAyB,KAAA,IAA5B,IAEJc,IAAP,EAGAd,GAAAA,IAAiC,MAAA,MACnC,EAEEA,GAAAA,IAAgC,SAAA,OAClC,EAEEA,GAAAA,IAAmC,SAAA,OACrC,EAEEA,GAAAA,IAA2B,YAAA,QAC7B,EAEEA,GAAAA,IAA4B,YAAA,QAC9B,EAEEA,GAAAA,IAAoB,SAAA,OACtB,E,Q,I,MC5CS,MAAA,KAAA,OAAA,IAAA,KAAA,IAyCH,KA4FP,OAGW,MAAQ,EA/FZ,EAAA,KAAA,IAWP/F,GAAAA,IAAA,MAAA,IAaD,KAbC,IAQD,KARC,IAAA,IAAA,IAUA,MAAA,IAWD,KAXC,IAVA,IA8CA,MAAA,IAcD,KAdC,IA9CA,IAgEA,MAAA,IAMD,KANC,IAhEA,IAwEA,MAAA,IAOD,KAPC,IAxEA,MAAA,MAiFA,EApFD,OAAuC,KAAA1D,IAAA,IAAAA,IAAG,IAAHA,EAAA,IAA4B,QAAAA,IAAA,IAAA2D,GAAAA,IAAAigC,GAAAA,IAAA,MAC7CtiC,IAAOC,OAAA,IAAA,KACY,MAAA,MAAgB,KAA9C,MACX,EAaA,GACW,MAAT,KACY7H,MAAK,KAAA,WAAA,IAAA,IAAf,EAGS,MAAX,EAVF,MACY,QACZ,EAWA,SACsB4H,GAAAA,IAAOC,OAAA,MAAA,KACF,KAAd,KAAM,KAEb,aAAJ,IACE,OAIM,IACF,IAEA,MAAJ,SACE,IAEY,KAAJ,IAED0iC,OAGyB,MACtB,KAAK,MADkB,EAAA,KAAA,IAAA,IAAD,KAApC,EAmBF,GACsB3iC,GAAAA,IAAOC,OAAA,MAAA,KACR,MAAK,KAAK,MAAV,OACV,MACX,EAMA,GACa,KAAK,KAAhB,EAQF,OACa,KAAK,KAAT,MAAP,E,ECpI2C,EAAH,IAuB3B,EArBA,KAqBA,KAbE,KAaF,KAJL,KAIK,OAAH,QAIZ,EAzBe,GACX2iC,GAAAA,IAAQ,IACVA,IADF,MAGc,IAHd,EACU,IAAI,GAAA,IADd,EAKF,EAEmB,GACbA,GAAAA,IAAQ,IAAZ,GACEA,IAAQ,IAAI,GAAA,IACA,MAAZ,IACSA,IAAP,IADF,EAIJ,EAEY,GACHA,GAAAA,IAAQ,IAARA,GAAgBA,IAAQ,MAARA,IAAvB,E,Q,M,QClBF,IAAA,KAAA,KASoDC,KAAuB,OAE7D,MAA2B,E,gB,M,O,M,K,I,Q,O,K,M,S,I,K,Q,I,K,Q,I,K,QCbjB,IAAA,QACD,IAAA,KA+Cf,QADsC,IACT,MAAY,KAAS,KAAO,MAAP,KADZ,I,qBAJC,M,SAID,IACiC,MAExD,KAiQpB,IAjQoB,IA2QtB,E,O,M,K,K,M,K,S,M,K,Y,Q,K,K,K,K,K,M,E,E,M,K,G,O,M,K,E,qB,G,yB,G,I,I,E,E,I,I,I,G,M,K,G,I,M,I,K,K,K,K,K,E,M,K,M,K,I,K,M,E,I,M,I,K,M,K,K,K,G,G,O,E,G,G,I,K,G,I,I,M,O,E,K,M,K,G,I,M,K,I,M,S,EADYC,GAAAA,IAAiB,KAAA,OAAA,IAAA,IAA5B,EA1QqB,EAAA,KAAA,IAKG7hC,GAAAA,IAAA,KAAA,MAAA,IAExB,KAFwB,IAAA,IAAA,IAgCvB,MAAA,IAED,KAFC,IAhCuB,IA6CvB,MAAA,IAED,KAFC,IA7CuB,IAsDvB,MAAA,IAED,KAFC,IAtDuB,IAmEvB,MAAA,IAED,KAFC,IAnEuB,IAuEvB,MAAA,IAED,KAFC,IAvEuB,IA2EvB,MAAA,IAED,KAFC,IA3EuB,IA+EvB,MAAA,IAED,KAFC,IA/EuB,IAmFvB,MAAA,IAED,KAFC,IAnFuB,IAuFvB,MAAA,IAED,KAFC,IAvFuB,IA2FvB,MAAA,IAED,KAFC,IA3FuB,IA+FvB,MAAA,IAED,KAFC,IA/FuB,IAmGvB,MAAA,IAED,KAFC,IAnGuB,IAwHvB,MAAA,IAED,KAFC,IAxHuB,IAkJvB,MAAA,IAED,KAFC,IAlJuB,IAwJvB,MAAA,IAED,KAFC,IAxJuB,IA4KvB,MAAA,IAED,KAFC,IA5KuB,IA+MvB,MAAA,IAED,KAFC,IA/MuB,MAAA,MA4PvB,EAjQoB,EAAAC,GAAAA,IAAA,KAAA4hC,GAAAA,MAAA,MACoB,EAA/B,MAC8B,EAAjC,MAC6B,EAA7B,MACuC,EAAlC,QACL,MAAiB,EAExB,WAOU,MAAR,GAMQ,MAAW,IAAnB,GAUI,SAGoBC,KAAXC,IAHU,EAAA,KAAA,KAAA,QAAA,QAAA,KAAH,MAOtB,IAVI,IATA,EAqBJ,KACiB79B,GAAAA,IAAA,EACoB,MAAA,MADpB,MAEN,MAFM,MAAA,MAIH,EAAkC,MAAA,IAAlC,MAA6C,MAA7C,MAAA,MACA,EAAkC,MAAA,IAAlC,MAA6C,MAA7C,MAAA,MACK,EACoB,MAAA,IADpB,MAER,MAFQ,MAAA,MAInB,EAEA,EACoB,EAAH,MACA,EAAH,MACG,EAAH,QAId,EAEA,MACwB,MAAtB,QAAA,SAAA,GACU,MAAW,MAAf,IAAA,MAAJ,IACa,MAAX,IADF,EAIa,EAAH,MACG,EAAH,MAId,EAEA,IACc,QACd,EAGS89B,GAAAA,MAAmB,IAA1B,EAGF,EACa,MAAX,EAGF,EACa,MAAX,EAGF,EACa,MAAX,EAGF,EACa,MAAX,EAGF,EACe,SAAW,IAAhB,GAAD,GAAP,EAGF,EACa,MAAX,EAGF,EAmBA,EAEA,SAEoB,MAAAvkC,IAAA,IAAAA,IAAGukC,GAAAA,IAAmB,IAAtBvkC,EAAA,IACH,QAAAA,IAAA,IAEP,MAAR,GAMQ,MAAQ,MAAhB,IASI,MAAa,IACjB,GACM,MAAkB,IAE1B,EANI,EATA,EAiBJ,KACoB,MAAQ,IACf,MAAX,IACA,EAGF,KACU,MAAR,GAOQ,MAAuB,KAAA,KAA/B,GASI,SAAa,MACnB,IAHI,IAVA,EAeJ,SAEoB,MAAAA,IAAA,IAAAA,IAAGukC,GAAAA,IAAmB,IAAtBvkC,EAAA,IACH,QAAAA,IAAA,IAEP,MAAR,GAUQ,MAAW,IAAnB,GAUI,MAAmB,EAAA,KAAA,KAAH,IAIpBwkC,GAAAA,IAAgBjgC,IAAwB,MAAA,KAA3B,IAIf,EAXI,EAVA,EAuBJ,SAEoB,MAAAvE,IAAA,IAAAA,IAAGukC,GAAAA,IAAmB,IAAtBvkC,EAAA,IACH,QAAAA,IAAA,IAEP,MAAR,MAOqB,MAAW,IAChC,GAAyB,QAAzB,IASY,MAAZ,IAUkB,MACF,MACa,MAAoB,MAARykC,KAApBA,IAAH,MAKdD,GAAAA,IAAQ,IAAZ,IACEjgC,IAAsB,MAAMigC,IAAQ,IAAd,MACtB,IAEJ,EAdI,EATA,EAXA,E,E,QCxQQ,QAAW,EAJzB,IACS7qC,MAAO,MAAI,KAAA,EAAA,MAAlB,E,UCJkB,MAAA,KAAV,OACoB,IAAA,KAAV,OACI,IAAA,KAAV,I,QA4BA,MAAsB,EAlBpC,GACM,OAAJ,IAGoBiqC,GAAAA,IAAhBc,IAAJ,GAGoBC,IAAhBD,IAAJ,KAGoBhB,MAAhBgB,IAAJ,GAAmChB,MAAkB,MAAA,KAArD,GAKA,EAFkBkB,MAAc,KAAvB,EAAA,KAAP,EAL+B,MAAA,IAAxB,EAAA,KAAP,EAHkB,KAAX,EAAA,KAAP,EAHO,EAAA,IAAP,E,OCdkB,SAAA,KAAV,I,QAkBE,MAAkB,EAhBhC,KACsBlB,MAAhBmB,OAAJ,GAEaC,MAAU,KAAA,UAAA,IAAA,IAEHA,MAAhBD,IAAJ,GAGKnB,MAAkB,MAAA,KAAvB,GACYhqC,MAAK,KAAA,WAAA,IAAA,IAAf,EAGW,MAAY,MAAY,MAC9BmpC,GAAAA,IAAoB,MAAKiC,MAAU,KAAA,OAAA,IAAA,IAAf,KAA3B,EAPSjC,GAAAA,IAAoB,MAAA,KAA3B,E,W,K,I,K,I,K,I,K,I,KClBc,M,KACC,M,KACE,MAER,IAAH,IACM,IAAH,MACH,MAAA,OAAA,IAAiDhpC,MAAjD,EAAoCirC,MAAvC,IAGmB,OAA1B,IACEC,IAAgB,IAAP,IACTC,IAAyB,KAAA,KAAI,IAFa,GAA5C,IAOAA,QAAwB,KAAA,QAAI,IAC5BA,QAAwB,KAAA,QAAI,MAkI3B,EAhID,KACe,QAETC,IAAJ,IAM0B,SAAA,WAC1B,OAAA,EAEsBC,IAEbA,IAAL,IAEG,IAAA,IAAA,IAAP,IAZYxrC,MAAK,KAAA,WAAA,IAAA,IAAf,EAiBSyrC,GAAAA,SAAO,OACC,OACO,IACjBD,OAAD,OAAA,IAAA,IAAR,EAGF,MACWA,OAAD,OAAA,IAAA,IAAR,EAGF,mCAEaC,GAAAA,MAAO,KACC,IACO,IAEZC,IAAIC,IAAW,OAAZ,KAAA,OAAA,IAAA,OAKPC,IACNJ,IADMI,QAKV,OAEKN,IAAwB,KAAA,KAAf,IAATA,IACAA,IAAwB,KAACrlC,IAAD,KAAf,IAATqlC,IACAA,IAAwB,KAACrlC,IAAD,KAAf,IAATqlC,IACDA,IAAwB,KAACrlC,IAAD,KAAf,IAHRqlC,IAAAA,IAAAA,IAIQ,GAAOO,IAAAA,IAAJ,IAAH,GACA,GAAOA,IAAAA,IAAJ,IAAH,GACA,GAAA,GAAMA,IAAH,IARM,UAAtB,UAWA,IAEKP,IAAwB,KAAA,KAAf,IAATA,IACAA,IAAwB,KAACrlC,IAAD,KAAf,IAATqlC,IACQ,GAAA,GAFRA,IAEcO,IAAH,IAGhB,IAEKP,IAAwB,KAAA,KAAf,OAATA,IACAA,IAAwB,KAACrlC,IAAD,KAAf,IAATqlC,IACAA,IAAwB,KAACrlC,IAAD,KAAf,IAATqlC,IAFAA,IAAAA,IAGQ,GAAOO,IAAAA,IAAJ,IAAH,GACA,GAAMA,IAAH,IAGhB,EAGF,GACSR,GAAAA,OAAOx0B,OAAAA,IAAD,IACXw0B,OAAOx0B,IAAAA,IAAD,IADDw0B,IAELA,OAAOx0B,IAAAA,IAAD,IAFDw0B,IAGLA,IAAOx0B,IAAD,IAHDw0B,IAAP,EAMF,yCAEe,IAMCS,GALd,IAEW,IAALC,IACM9lC,IAAD,IAAL8lC,IACK9lC,IAAD,IAAL8lC,IACQ,KAACD,IAHRC,IACAA,IADF,IAAA,IAGyB,KAAhB,KALiB,IAA9B,IAOkB,SAAA,KAAlB,EAGF,WAEiB,QACER,IACL,IAIWA,IACVS,KADb,IACY,KAACA,IAAuB/lC,OAAAA,OAAZ,OAAZ,QADZ,OAKA,OAOO,OACQslC,IAAD,OAALQ,IAA6BR,IAAD,IAA7B,IACI,KACRF,OAAOQ,IAAD,IACNR,OAAQQ,OAAAA,IAAF,IADNR,IAEAA,IAAQQ,IAAAA,IAAF,IAFNR,QAAAA,IADQ,KAFL,EANOE,IAAD,IACD,KACRF,OAAOQ,IAAD,IACNR,OAAQQ,OAAAA,IAAF,IADNR,QAAAA,IADQ,KAeK,SAAA,KAAjB,E,Q,K,I,K,MC1IW,MAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,IAwCC,KA4CX,OAGW,MAAY,EAvFb,OAAA1sC,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAwCC,EAAA,KAAA,IAKX8D,GAAAA,IAAA,MAAA,IAED,KAFC,IAAA,IAAA,IASA,MAAA,IAED,KAFC,IATA,IAeA,MAAA,IAED,KAFC,IAfA,MAAA,MAuCA,EAzCD,GAAcC,GAAAA,IAAAghC,GAAAA,MAAA,MACE,IAAH,MACb,EAEA,GAMM,MAAY,KAAC,OAAA,OAAA,IAAD,OAClB,EAEA,KAAA,OACa,MACF,KAAC,KAAD,KACH,KAAC,KAAD,KAFN,EACU76B,GAAAA,YAAA,QAAM,IAAerJ,GAAAA,IAAT3D,IAAN,EACTgN,GAAAA,YAAA,SAAS,IAAA,EAGlB,GACa,MAAW,OAAC,KAAD,KAAtB,EAA0CA,GAAAA,YAAA,QAAb,OAAO,QACP,IAEF,MAFE,IAEF,KAMrB,OAAJ,SAAkCjQ,MAAa,KAAA,KAA/C,GAAA,GACkB,KAAZ,OAAJ,IACS,MAAiD,SAAtB,IAAA,IAAJ,IAAA,MAEhB,KAAZ,GAAJ,IACiC,KAAR,MAEzB4M,IAAA,EAAA,MAAgB,EAAA,IAAA,KAAA,EAAhB,OAAA,IAGc7J,MAAM,KAAf,EAAA,IAAA,IAAA,KAAP,E,Q,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,MCrFNvE,MAAqB,KAAwB,IAAA,QAAxB,OAqBG8F,MAAO,KAAA,OAAA,IAAA,IAAd,IAOIA,MAAO,KAAA,OAAA,IAAA,IAAd,IAkFI,EAKd,WALc,MAad,SAbc,MAqBd,SArBc,MA4BF,KA5BE,KAwCd,SAxCc,MAgDd,SAhDc,MAwDd,SAxDc,MAgEd,SAhEc,MAwEd,SAxEc,MAgFC,KAhFD,KA6FU,KA7FV,KA2Gd,SA3Gc,MAmHd,SAnHc,MA2HA,KA3HA,KAmId,SAnIc,MA2Id,SA3Ic,MAmJd,SAnJc,MA4Jd,SA5Jc,MAqKd,KAGA,SAxKc,MAyLd,KAGA,SA5Lc,MAyML,KAzMK,KAAH,MA+Mf9F,MAAqB,KAAM,KAA2B,UAAA,UAAjC,OAOjB,MAAA,OAAJ,IAA4CL,MAAM,MAAb,GAArC,IACIK,MAAqB,MAACstC,IAAK,KAAY3tC,MAAM,MAAM,KAA9B,MAGrB4tC,IAAY,KAAC5tC,MAAM,MAAM,KAAY2tC,IAAzB,MAJhB,Q,S,S,S,S,SA4KyBxnC,MAAO,KAAA,OAAA,IAAA,IAAd,OAGL,OACD,OACG,IAyKf0nC,IAAwB,EAQJ,KARI,KA8DD,KA9DC,KAoGP,KApGO,KAAH,MA4KrBxtC,MAAqB,KAACwtC,IAAW,KACtBA,IADiD,UAAA,MAAvC,OAQjB,MAAA,GADJ,IAEW7tC,MAAM,MAAb,GAFJ,IAIIK,MAAqB,MAACwtC,IAAW,KAAY7tC,MAAM,MAAY,KAA1C,MAGM8tC,IAAH,MACND,IAAH,MACDA,IAAH,MAEEA,IAAH,MACR,KAA6B,KAAsBA,IAAH,MAA5B,MACpB,KAAgCC,IAAH,MAAuB,EA1zB1D,GACiBC,GAAAA,IAAe,KAAA,OAC5BpsC,MAAc,QACVqsC,QADU,OAKd,EAOJ,GACY,QAAR,IAYS,MAAM,MAAf,KACI,IAGS,MACE,MAAM,MAAjB,OAAJ,IACQ,MAAqB,MAAA,IAD7B,EAGJ,IAlBY,KAAA,OADJ,IAEWrsC,MAAO,KAAd,OAFJ,IAIIA,MAAa,KAEL,UAFK,MAJjB,EASA,EAsBR,aACIosC,GAAAA,IAAe,KASK,MAALhsB,GAAmBne,MAAQ,KAAA,IATpB,UAAA,MAAA,MAAA,MAAA,KAAP,MAafvD,MAAqB,SAAoB,UAApB,OAGRA,MAAW,KAAA,KACA,OAAxB,IACoB,IACVoI,IAAN,GACIpI,MAAqB,KAAY4tC,IAAwB,KAApC,OAHI,GAAT,KAAxB,IAMJ,EAsOA,KAAA,IACW,EACA,KADA,IAIA,KAJA,MAAA,IAAA,IAAP,EAEeC,GAAAA,SAAE,KAAM,MAAOzlC,GAAAA,IAAD,IAArB,EAGAylC,GAAAA,SAAE,KAAM,MAAOzlC,GAAAA,OAAI,IACvB,EAYR,KAAA,IACW,UACE,KADF,MAAP,EACS,IACaylC,GAAAA,OAAE,KAAM,MACTzlC,GAAAA,IAAD,IAAW,KAAA,EAAA,MAAvB,EAcZ,kBAAA,KACiBpI,MAAW,KAAA,KAChB,KAAR,WASwBA,MAAa,KAAU,KAC9B,UAAA,MAD0C,EAAA,IAAtB,MAAhB,MAKG,KASN8tC,KATlB,IACoB,IACM,KAAhB1lC,IAAN,GACuBpI,MAA+B,KAAA,MAClB,KAChCA,MAAqB,KACN,KAFA,GAIX+tC,IAEMH,IAAwB,KAF9BG,EACMD,IAAoB,KAJT,OALI,GAAT,KAAxB,IAeA,EA5BI,EAKAE,GAAAA,IAAc,cAAA,SAClB,EA+BJ,KACI,MAA+BhuC,MAAM,KAArC,IAIcutC,GAAAA,IAAY,KAAA,KAC1B,IACcU,IAAcC,IAAWluC,MAAqB,MAAA,OAAtB,KAAX,MACvButC,IAAY,KAAA,SAEhB,EARWD,GAAAA,IAAP,EAkBR,GACoBY,GAAAA,MAAWluC,MAAqB,MAAA,OAAtB,KACR,KAAA,aAAA,IAAA,IAAlB,EAUO6tC,GAAAA,SAAE,KAAO,MAAhB,EAWAA,GAAAA,SAAE,OAAkB,MACxB,EAUIA,GAAAA,SAAE,OAAqB,MAC3B,EAUIA,GAAAA,SAAE,QAAuB,MAC7B,EA4BA,KACWhvB,IAAAA,GAAc,OAAA,IAArB,EAUkBsvB,GAAAA,IAAgB,QAAA,OAClC,IAKA,IAJc3oC,MAAS,KAAA,WAAA,IAAA,IAAnB,EAaR,KAAA,IACW,EACA,KADA,IAaA,KAbA,MAAA,IAAA,IAAP,EACO,EACmB2e,GAAAA,SAAY,KACN,KAACiqB,GAAAA,IAAD,KACxB,IACY,MAAkBC,OAA1B,IAGW,KAJf,IAMA,EAJmB,MAAX,EAOT,KACK,UAAJ,IAAuCvpC,GAAAA,MAAQ,QAA/C,KAGkBqf,GAAAA,SAAY,KAIN,KAACiqB,GAAAA,IAAD,SACxB,IACY,MAAkBC,OAA1B,IAEI,IAEe,KAAR,IAGa,KAACD,IAAD,QAHb,EACU,KAACA,IAAe,KAAhB,SADV,EADa,KAAP,SAUN,WAdf,IAkBA,IAGsBC,IAFF,UAAA,MAAA,MAOhB,IAGa,MAHb,EACiB,KAACD,IAAD,MAKzB,EAYR,KACIpuC,MAAqB,SACG,IAEpBsuC,GAAAA,MAA8B,QAHb,OAKzB,EAQA,OAAA,OAMkCtuC,MAAa,KAACwtC,GAAAA,IAAW,KACtC,UAAA,MADkD,EAAA,IAAxB,MAAhB,MAQG,OAA9B,IACIC,IAAsC,KAAsB,IAAxC,MADe,GAAT,KAA9B,IAIA,EAfID,GAAAA,IAAgB,QAAA,OACpB,EA8BJ,SAEwBA,GAAAA,IAAhB,IAAJ,MAIa,MAAb,MAA8BhsC,MAAa,KAAU,IAAV,KAA3C,GAGa,GAAb,MAOUgE,MAAS,KAAA,WAAA,IAAA,IAAnB,IANsBhE,MAAe,GAAV,KAAA,OAAA,IAAA,IACM,KAA7B,IACwB,IAAZ,IAD0B,GAAT,GAA7B,IAGO+sC,IAAuB,KAA9B,EAPOA,IAAiC,IAAV,KAA9B,EAJAJ,IAAgB,OAAWpuC,MAAG,KAAA,OAAA,IAAA,IAAd,MAChB,EAzhBO8tC,GAAAA,SAAE,KAAM,MAAM,KAArB,EAQOA,GAAAA,SAAE,KAAM,MAAf,EAQOA,GAAAA,SAAE,KAAM,MAAf,EAOsBA,GAAAA,SAAE,KAAM,QAC9B,IAGO,IAAA,IAAP,EAFW,IAAP,EASR,EACI,EAOJ,GACI,EAOJ,GACI,EAOJ,GACI,EAQOA,GAAAA,SAAE,KAAM,MAAf,EAQaA,GAAAA,SAAE,OAEH,MACG,MAAM,MAAjB,OAAJ,IACQ,MAAsB,MAAA,IAElC,EAOiBA,GAAAA,SAAE,OAEH,MACS,MACN,MAAM,MAAjB,OAAJ,IACQ,MAA+B,MAAA,IAE3C,EAMA,EACW1iC,MAAQ0iC,GAAAA,SAAE,KAAM,MAAM,MAAf,KAAd,EAOJ,EACW1iC,MAAQ0iC,GAAAA,SAAE,KAAM,MAAM,MAAf,KAAd,EAQAW,GAAAA,IAAcX,SAAE,KAAH,KACjB,EAOWA,GAAAA,SAAE,KAAM,MAAf,EAOJ,EACW1iC,MAAQ0iC,GAAAA,SAAE,KAAM,MAAM,MAAf,KAAd,EAQOA,GAAAA,SAAE,KAAM,MAAf,EASOA,GAAAA,SAAE,KAAM,MAAf,EASOA,GAAAA,SAAE,KAAM,MAAf,EAEJ,GACI,KACI,EAESA,GAAAA,SAAE,OAEH,MACG,MAAM,MAAjB,OAAJ,IACQ,MAAmB,MAE/B,EAQYA,GAAAA,SAAE,KAAM,MAAT,GAAP,EAEJ,GACI,GACIW,GAAAA,IAAcX,SAAE,KAAH,KADjB,EAGJ,EASS,EAET,EA6WgB,WACZ,OAGI,OAAJ,IAAuC/oC,GAAAA,MAAQ,KAA/C,KACcU,MAAS,KAAA,WAAA,IAAA,IAAnB,EAGc2e,GAAAA,SAAY,KACTrf,IAAQ,KACb2pC,KAEVtjC,MAAO,KAFGsjC,IACVtjC,MAAe,MAAR,KAEQs1B,GAAoBiO,IAApBjO,EAAUkO,IAAVlO,GAIRgO,KAAgBtjC,MAAe,MAAR,KAC1BsjC,KAAgBtjC,MAAe,MAAR,KAJjB,EAAA,KAAA,KAAA,KAAA,KAAA,IASQ,KAAA,KACxB,SAOA,IAEY,MADR,IAEQ,MAFR,IAQW,WATf,IAaS,MACb,EARY,EAZS,KAAA,MACb,IAxBA,EAoDW,WACf,OAIkBgZ,GAAAA,SAAY,KACdrf,IAAQ,KAARA,KAEVqG,MAAO,KAFGrG,IACVqG,MAAe,MAAR,KAEQs1B,GAAoBiO,IAApBjO,EAAUkO,IAGP,KAAA,OACxB,IAEY,YADR,IAEQ,MAFR,IAeW,QAhBf,IAkBJ,EAbY,IAEe,KAAR,IAGa,KAAA,KAHb,EACU,KAAgB,KAAhB,MADV,EADa,KAAP,MAMb,IAvBJ,EAoCK,0BACT,OAAiC,KAAZ,OAArB,OAKkBxqB,GAAAA,IAAY,KACP,KACC,KAAA,QACxB,OAKqByqB,IAAS,WAK9B,UAEY,MAAR,MAAA,EACI,OAEe,KAAR,IAGa,KAAA,QAHb,EACU,QAAgB,KAAhB,SADV,KADa,KAAP,SAWjBC,UAEQ,QAAJvpB,MAAmB,MAFL,SAIH,MAAX,GAAJ,OAYQ,MAAkB+oB,IADnB,UAEQ,MAAS,MAApB,GAFG,OAIC,MAAqB,SAAA,KAJtB,EAVH,GACQ,MAAc,QAAA,MACtB,EAAE,EAEM,KAAA,GADJ,IAEW/sC,MAAO,KAAd,GAFJ,IAIIA,MAAa,QAAA,KAWrBwtC,OAAS,KAAb,MAIW,WA1Cf,OA4CAD,IAAkB,MAClBE,MAAa,MACbC,IAAgB,MAEI,MAAb,GAAP,IAzDI,EARUxpC,MAAS,KAAA,WAAA,IAAA,IAAnB,E,KC3vBL,SAAA,OAEWypC,MAAOC,MAASC,MAASC,MAA1B,EAAA,KAAA,KAAA,KAAA,QAAH,MAAuC,E,KCd5C,KAHP,OAAA,OAA+B,OAA/B,MACA,MAAA,OAAA,IAAgCjK,MAAM,MAAtC,GAC+B,IAAH,QAApB,KADR,EAA6CA,QAAO,QAAD,MAAnD,IADsE,KAAtE,EA0mBG,EAvmBI,SAAA,MAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,OAGJ,MAAA,OAAA,IAAA,GAAqCtlC,MAArC,GACA,MAAA,GAAA,IAAA,GAA+BkkC,MAA/B,GADA,GAEA,IAAA,GAAA,IAAA,GAAiCnkC,IAAjC,GAHO,QAMM,IACQA,QAAZ,IAAA,GAAoC2I,UAAd,IAEd3I,QAAhB,IAAA,GACUA,QAAV,IADA,GAIQ2rC,MAAI,KAAA,IAAA,IACR,IACA,OAIkB3rC,QAAd,IACoBA,QAAjB,IAfD,EAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IAsBA,MAAX,SACoB,QAahByrC,MAAW,MAAXA,GACA,QADAA,YADmB,IA1ChB,SAAA,SAsGP6D,IAAO,KAAoB,KAAH,MAOxBA,IAAO,KAAuB,KAAH,MAI3BA,IAAO,KAAiB,KAAH,MAKrBA,IAAO,KAAiB,KAAH,MAIrBA,IAAO,KAAiB,KAAH,MAIrBA,IAAO,KAAqB,KAAH,MAQzBA,IAAO,KAAkB,KAAH,MAQtBA,IAAO,KAAoB,KAAH,MAQxBA,IAAO,KAAqB,KAAH,MAQrBG,IAAO,MAAX,GACEH,IAAO,KAAW3mC,MAAM,MAAa2mC,IAAO,KAAU,MAApB,IADpC,IA8Kc,QAAH,IAiEXC,IAAO,KAAmB,KAAH,SA4Cd,KAACA,IAAO,KAAR,KAmBA,KAACC,IAAQ,KAAT,KAETA,IAAQ,KAAmB,KAAH,MASxBA,IAAiB,KAAH,MAMS,QAAH,IAEpBA,IAAoB,KAAH,MAQMxvC,IAAM,MAAT,MAEP,MAAa,KAAA,IAAA,IAC1B,EAAE,EACuB,KAAH,MAMb,MAA0BI,MAAa,KAACqB,MAAK,KAAN,KAAhB,MACvB,MAAa,KAAgC,MAAV,MAC5C,GAoGc,MAETzB,IAAM,MAAX,GACEA,OAAY,MACZA,IAAiBsvC,IAAH,MACdtvC,IAAiBuvC,IAAH,MACdvvC,IAAkBwvC,IAAH,MAGCF,IAAH,MACGC,IAAH,MACIC,IAAH,MACH,MAEbpvC,MAAqB,KAAwB,EAAA,QAAxB,OAEvB,EA9kBE,MACS2F,KAAO2pC,MAAQ,KAAwB,MAAA,KAA9C,EAuBF,GACM,UAAJ,MACS/qC,QAAM,KAEX,cAAiC,MAAA,KAArC,OAAA,IAGuB,MAAA,IAAvB,IAFYiB,UAAU,IAAD,KAAA,QAAC,OAAD,IAAA,IAAnB,EAKJ,GACM,UAAJ,MACUjB,QAAM,KAEhB,EAIF,KAAA,IACiB,EACP,KADO,IAOX8qC,GAAAA,IAAO,UAAX,OACW9mC,MAAM,MAAa,KAAH,IAKpBgnC,IAAP,EAXgBC,GAAAA,IAAW,MAAA,IAChB,IAAO3uC,IAAP,IAAA,IAAP,EAMO0uC,GAAAA,IAAP,EAON,UACa,EAAH,MAEeL,GAAAA,IAAnBnE,IAAJ,KAIWvpC,MAAa,KAAA,KAAjB,OAIA,KACLxB,MAA0B,MAAA,KAAiB,KAAC,KAAD,MADtC,EAHU,KAAC,KAAD,YAJA,KAAC,KAAD,UAYnB,EAZoB,GACH,YAAA,QACb,EAEgB,MACH,QAAO,OAAW,IAAlB,QACb,EAE4C,MAC/B,MAAO+qC,GAAAA,IAAO,IAAd,QACb,EAgEJ,GACU,MAAR,KAGa,QACf,IAHWxhC,MAAc,MAAK/D,MAAS,KAAA,WAAA,IAAA,IAAd,KAArB,EAKJ,KAAA,MACa+D,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,KAAA,OAAA,IACjBkmC,GAAAA,IAAgB,KAAH,MAGI,KAAH,QAGhB,EALIp9B,GAAAA,IAAQo9B,GAAAA,IAAM,QAAP,KACT,EAEEn9B,GAAAA,IAAOm9B,GAAAA,IAAM,OAAP,KACR,EAIJ,EACmBC,MAAU,KAAA,OAAA,IAAA,IACbC,GAAAA,MAAe,KACL,SAAA,KACxB,EAGF,EACmBD,MAAU,KAAA,OAAA,IAAA,IACbC,GAAAA,MAAe,KACZ,SAAA,KACjB,EAGF,EACiBlD,MAAU,KAAA,UAAA,IAAA,IACTjrC,MAAU,KAAL,KAAA,OAAA,IAAA,IAEG,OAAxB,IACa+C,MAAmB,MAAK,IAAL,KAAtB,IADwB,GAAV,KAAxB,IAGiB,SAAA,KAAjB,EAGF,GACS,KAAP,KAGiBkoC,MAAc,MAAJ,KAAA,OAAA,IAAA,IACjB,KAAKA,MAAU,KAAA,UAAA,IAAA,IAAf,KACG,MAAX,EAJgB,OAAA,KAAhB,EAQJ,OACe,MAEI,KAAH,MA4CV4C,GAAAA,IAAO,MAAX,GACc,KAAH,MAiBU,KAAH,MAsBN,KAAH,MAiBLA,IAAO,MAAX,GACkB,KAAH,MAKH,KAAH,MAIT,EA/GiB,MAWK,MAAP,MACC,MACd,OACgB,SADhB,KAEW,OAAJ,OAEIA,GAAAA,IAAO,MAAX,KAAoB9D,MAAI,KAAwB,MAAA,KAAhD,MAEI8D,IAAO,MAAX,KAAwB/C,MAAQ,KAAwB,MAAA,KAAxD,MAEI+C,IAAO,MAAX,KAA4BO,MAAe,KAAwB,MAAA,KAAnE,MAEIP,IAAO,MAAX,GAA2BA,IAAO,MAAlC,GAA2CQ,MAAU,KAArD,GAIIR,IAAO,MAAX,KAA4BhE,MAAW,KAAwB,MAAA,KAA/D,GAAyEyE,MAAiB,KAA1F,KAGmB9vC,MAAM,KAAU,KAAc,KAAA,KAAxC,SAHT,KACmB+vC,MAAW,KAAd,SADhB,KAHmBA,IAAgB,MAAL,KAAd,QAEAxE,MAAU,MAAL,IAAA,IAAD,KAAA,UAAA,IAAA,IAAX,SAHT,EADyB,KAAA,IAAhB,SADT,EADa,SADb,EADS,SADT,EADS,SAiBP,KAAY,SAAA,KAArB,MACM,OAAJ,IAEe,MAAR,GAA0B,MAAU,KAApC,GAEI8D,GAAAA,IAAO,MAAX,KAA4BO,MAAe,KAAwB,MAAA,KAAnE,GACD,KAAY,SAAA,MADX,EADD,KAAY,KAAqB,MAAU,KAA/B,MADX,EADD,KAAY,SAAA,MADlB,EAQJ,EAGc,GACKI,GAAAA,MAAQ,KACvB,MAIQ,MAAR,MAEe,MAAR,GAEQ,MAAR,KAGEzmC,MAAe,KAAKgiC,MAAU,MAAL,IAAA,IAAD,KAAA,UAAA,IAAA,IAAT,KAAtB,IAFUlqC,MAAK,KAAA,WAAA,IAAA,IAAf,IAFOkI,MAAe,KAAKgiC,MAAU,MAAL,IAAA,IAAD,KAAA,UAAA,IAAA,IAAT,KAAtB,IAFOhiC,MAAe,KAAK,MAAL,KAAtB,EAJA,EAce,GACT,MACWymC,GADnB,GAgBkB,MAAA,IAAO,KAACC,IAAD,KAAvB,EAfiBD,MAAQ,KACzB,QAGI3E,MAAkB,MAAK,MAAL,KAAtB,GAQS9hC,MAAe,KAAK,MAAL,KAAtB,EAPOA,MAAe,KAChB,MAAiB,MAAa,KAC5B,MAAiB,MACjB,MAAiB,MAAkB,MAAiB,MAAxD,IAFgC,MADd,KAAtB,EAHA,EAkBI,GACKymC,GAAAA,MAAQ,KACvB,MAIQ,MAAR,GAEe,MAAR,GAEQ,MAAR,KAGEzmC,MAAe,KAAK,MAAL,KAAtB,IAFUlI,MAAK,KAAA,WAAA,IAAA,IAAf,IAFOkI,MAAe,KAAC2mC,IAA0B,MAAL,KAAtB,KAAtB,EAFOC,IAAmB,MAAL,KAArB,EAJA,EAec,GACE,KAAA,IAAO,KAACC,GAAAA,IAAD,KAAvB,EAIQ,GACM,KAAA,IAAO,OAAC9rC,MAAI,MAAL,KAAvB,EASJ,GACkC,MAAA,IACzBoN,GAAAA,IAAe,KAAA,WAAfA,OAAP,EAGF,2BACwBy9B,GAAAA,IAAhB,IAAN,KACY3pC,MAAS,KAAA,WAAA,IAAA,IAAnB,EAGQ8Z,GAAW,EACH,MAEG6vB,IAAjBkB,IAAJ,KAiBa9rC,QAAM,KAAT,SAjBV,KACW,MAAT,MAGgB,KAAR,MACgB,MAAR,MACJ,KAAZ,GACqB2qC,IAAa,KAAN,KAAA,OAAA,IAAA,IAAd,MAEK,MAAR,MACM,KAAR,MACU,MAAR,SACX,GAAkB,SAAlB,IACc,QACE,MAMQ,MAAP5vB,GAA2B,MAA3BA,MAAH,MACL,KAAX,GAA4B,KAA5B,GACqB4vB,IAAe,KAAR,KAAA,OAAA,IAAA,IAAd,MAEAoB,IAAuB,MAAPhxB,GAAsB,MAAtBA,MAAAA,EAAD,KAAlB,MACQ,KAAPA,GAAoB,KAApBA,KAAH,MACY,MAAPA,GAAsB,MAAzB,MACE,MAEJ,MAAT,IAAkC,UAAlC,IAAA,MAGc,MAAA,KAEN,MAAR,IAAiC,UAAjC,OACa,UAAX,IAA2C,UAA3C,OAEsB,cACE,MAAK,KAAL,KAEL,KAFjB,GAKsB,cACW,MAAK,KAAL,KAAlBixB,MAAAA,EAAuDhtC,MAAI,KAAA,OAAA,IAAA,IAAU,MAAA,QAAtE,IAAA,IAAJ,IAAA,MANV,EAE6B,OAA6BA,MAAI,KAAA,OAAA,IAAA,IAAU,MAAA,QAA3B,IAAhB,MAAnB,MAQhB,IAlBciC,MAAS,KAAA,WAAA,IAAA,IAAnB,IA5BYA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAoDN,OACiB8mC,MAAQ,KAAA,OAAA,IAAA,IAAf,IAED,MAAA,IACC,SAAA,KACE,KAAC,KAAD,KAQV,EARW,GACP,MACyB,SAAA,KACD,MAAA,IAAU,KAAC,kBAAD,MACV,KAAA,KAAa,KAAC,cAAD,MACnCkE,GAAAA,IAAW,QAACC,QAAkB,KAAQA,MAAkB,KAA7C,MAJb,EAMF,EAIJ,KACoBvB,GAAAA,IAAO,KAAA,OAAA,IAAA,IAAd,IAGiC,KAAC,kBAAD,MAKpC,SAAA,KACF,KAAC,KAAD,KAGI,KAAC,KAAD,KAQV,EAXO,GACkB,SAAA,UAAdrE,IAA0C,MAAU,QAAV,MAAjD,EAEO,GACe,SAAA,KACD,MAAA,IAAO,MAAA,IAC5B,GACwB,KAAA,KAAU,MAAA,IAChCE,GAAAA,IAAc,MAAA,MAFhB,EAIF,EAMJ,aACwBqE,GAAAA,IAAhB,IAAN,KACY5pC,MAAS,KAAA,WAAA,IAAA,IAAnB,EAEF,GACY,EADZ,IAIS,MACY,WAAP8Z,IAA4C,MAA/C,MACG,MAAJ,IAAA,GAA0B,YAAJ,IAAzB,MACkB,SAAPA,IAAoD,SAAvD,MACI4vB,IAAe,KAAR,KAAA,OAAA,IAAA,IAAd,MACM,KAAP5vB,MAAH,MACM,SAAA,KAChB,EA2CA,KAAA,OAAA,MACa/V,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,eAAA,KACC4lC,GAAAA,IAAQkB,GAAAA,IAAOK,IAAR,KAAA,OAAA,IAAA,IAEd,MAAX,GAA6B,MAAO,MAApC,uBAIcvG,MAAc,KAAA,OAAA,IAAA,IAArB,IAMM,KAAH,MAaVwG,IAAc,KAAH,MAMXA,IAAgB,KAAH,MAMbA,IAAc,KAAH,MAcXA,IAAQ,MAAQ,MAAuB,KAPrC,OACSC,IAAchxC,IAAM,MAAS,SAA7BgxC,GAAqChxC,IAAM,MAAS,MAA3D,EACA,OAKI,OAEG,UAAX,IAEkB,UAAX,IACL+wC,MAAmB,MADd,EADLA,IAAmB,MAKCA,QAAlB,IAAJ,GACMtB,IAAO,MAAX,GAGEA,IAAO,MADF,GAEE,KAAY,SAAA,KAFd,GAGE,KAAY,KAAA,KAAwB,SAAA,WAHtC,IAKLsB,QAAgB,MALX,EADLA,QAAgB,MAUhBD,IAAJ,GAAmBA,IAAI,KAAX,OAAZ,IAAkDA,IAAI,KAAoBxB,IAAxBwB,IAAlD,GACE1wC,MAA0B,MAAC0wC,IAAI,KAAL,KAAsB,KAAC,KAAD,KADlD,EAKS,KAAgB,KAAC,KAAD,KAKd,MAAX,iCACS,MAAwB,MAAUG,QAAV,MAE/BF,IAAyB,KAAH,MAQxBA,IAAQ,MAAQG,IAAO,MAAd,SAAA,IAAkDA,IAAO,MAA1D,KACV,EA1FsBxwC,IAAO,MAAa,KAAA,eAAA,IAAA,IAAzB,KAAb,EAMAqwC,GAAAA,IAAS,MAAA,MACX,EAEa,MAEDA,GAAAA,IAAG,MACCA,IAAG,MACNI,GAAAA,IAAaJ,IAAyB,MAAA,IAAzBA,MAAAA,EAAD,KAHT,EAAA,KAAA,KAAA,IAKiBA,QAAjB,IAAA,GAAgD,KAAY,SAAA,KAA5D,EAAuBA,IAAG,MAA7B,MACcA,QAAd,IAAoBA,IAApB,GAAsC,MAAtC,EAAuB,MAAvB,IAAH,MACRnwB,MAAW,OAAD,MAGZ,EAFInO,GAAAA,IAAY+8B,GAAAA,IAAS/C,GAAAA,IAAM/sB,IAAP,KAAA,OAAA,IAAA,MAAb,KACT,EAGY,EACZkB,UAAW,OAAD,MAGZ,EAFIlO,GAAAA,MAAW9M,MAAS,KAAA,WAAA,IAAA,MAAd,KACR,EAGc,EACdgb,UAAW,OAAD,MAGZ,EAFIlO,GAAAA,MAAW9M,MAAS,KAAA,WAAA,IAAA,MAAd,KACR,EAGY,EACZgb,UAAW,OAAD,MAGZ,EAFIlO,GAAAA,IAAWhS,GAAAA,IAAO,MAAa,KAAA,eAAA,IAAA,MAAzB,KACR,EAgCiD,GAC/CqwC,GAAAA,IAAoB,MAAOK,GAAAA,IAAeN,GAAAA,IAAI,KAAQ,MAAb,KAArB,MACtB,EAGEC,GAAAA,IAAoB,YAAA,QACtB,EAQMA,GAAAA,IAAG,SAAP,IACEG,IAAO,MAA2B,MAAUD,QAAV,MADpC,EAGF,EApiBF,MACSlrC,GAAOsrC,GAAAA,IAAmB,OAACjxC,MAAM,KAAU,KAAc,KAAA,KAA/B,WAAnBixC,IAAd,EAyDqB,GAClBC,GAAAA,SAAa,KACZF,OAAc,KACH,KAAI,IACnB,QAAaG,OAAWA,IAAAA,IAAd,IAChB,EAE8B,GACjB,KAAKD,GAAAA,SAAa,KAA7B,IACF,EAEwB,GACfA,GAAAA,SAAa,KACL,KAAA,OAAR,GAAqB,KAAI,IAAhC,EAGsB,GACX,KAAmB,KAACA,GAAAA,SAAa,KAAd,KAA9B,EAGsB,GAClB,KAAKA,GAAAA,SAAa,KAAUF,OAAc,KAAjB,IAC/B,EAE4B,SACL,KAArB,QAAA,SAAA,GACU,KAAmB,KAAA,KAA3B,GACe,KAAc,KAAI,gBAAlB,IADf,IAIJ,EAEyB,KACX,IAAH,IACG,KAAC,KAAD,KAGLI,GAAAA,MAAW,KAAlB,EAFE5B,GAAAA,IAAU,QAAA,OACZ,EAIyB,KACb,IAAH,IACG,KAAC,KAAD,KAGL4B,GAAAA,MAAW,KAAlB,EAFE5B,GAAAA,IAAU,QAAA,OACZ,EAI0B,KACd,IAAH,IACG,KAAC,KAAD,KAGL4B,GAAAA,MAAW,KAAlB,EAFE5B,GAAAA,IAAU,KAAC,OAAA,OAAA,IAAD,OACZ,EAmPwB,GACbL,GAAAA,IAAyB,MAAX,EAAA,KAAP,KAAA,aAAA,IAAA,IAAlB,EAgEyB,GACdC,GAAAA,IAAa,MACV,MACI,MACHF,IAAY,KAAL,KAAA,OAAA,IAAA,IACX,KAJyB,EAAA,KAAA,KAAA,IAAA,IAAjB,KAAA,aAAA,IAAA,IAAnB,EASmBE,GAAAA,IAAQ,KAAA,MAAO,aAAP,IAAA,QACd,MACb,EAKkB,GACdiC,GAAAA,IAAwB,KAAA,WAA5B,IAIWjC,IAAyC,KAAA,KAA1B,EAAA,KAAA,IAAP,KAAA,YAAA,IAAA,IAAnB,IAHYkC,MAAU,KAAA,WAAA,IAAA,IAApB,EAUqB,MACT,SACH,QACGjwC,QAAK,KACC,MAAR,MACZ,E,Q,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OCveJ,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,IAAkC,QAAA,IA6Bf,IAmBMmsC,KAAW,KArBX,QAqBW,MAArB,KA+NZ,KA9NgB,MACN,MACG,MACD,SA8ND,MAAa,EAlRO,KAAA,IAAAhgC,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAgDnB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IA8EZzE,IAAA,KAAA,MAAA,IAED,KAFC,IAMD,KANC,IAAA,IAAA,IAsBA,MAAA,IAED,KAFC,IAtBA,IA+BA,MAAA,IAED,KAFC,IA/BA,IA0DA,MAAA,IAED,KAFC,IA1DA,IAkEA,MAAA,IAED,KAFC,IAlEA,IA6EA,MAAA,IAED,KAFC,IA7EA,IAkFA,MAAA,IAED,KAFC,IAlFA,IAAA,MAiJA,EApMD,WAIEC,GAAAA,IAAA,KAAAonC,GAAAA,MAAA,MACA3iC,IAAA,KAAA,OA1BQ,SACN,SACG,SACD,MAeI,MASA,MACJ,UAAJ,IACc,IAAA,OAG0B0Q,GAAW,EAAE,KAAvCkyB,IAAG,EAAmBC,IAAA,KAAAC,IAAA,MAIpC,GAAuC,MAAnB,GAApB,MACEpwC,MAAY,SAAA,KAMiB,MAAf,MAId,KAXF,EAeItB,MAAW,KAAA,KAAc,KAA7B,IACEsB,MAAY,KAERtB,MAAW,KAAA,KAAmB,SAAA,SADhC,QAAA,QAAA,IADU,KAQTwB,MAAa,KAAA,QAAlB,KAIyBmwC,IAAAA,KAGvBzrC,IAAAA,KAAQ,WAARA,IAA+B0rC,IAAAA,KAHU,KAAA,UAAA,IAAA,IAAzB,MAKDC,IAAe,GAAA,GAAA,IAAlB,MACM,MAAA,IACpBD,IAAAA,KAA6B,MAAiB,EAAA,IAAW,kBAA5B,IAA4C,EAG3E,EACa,MAAX,EAGF,SACE,QAAA,OAGQ,MAAR,IAAA,IACEvlC,GAAAA,IAAAA,KACEk+B,IAAAA,KAAW,YADJ,MAIT,IAGEA,IAAAA,KAAkC,MAAK,MAAL,KAHpC,EACEA,IAAAA,KAA+B,MAAK,MAAL,KAKnB,QAClB,IAdclpC,MAAK,KAAA,WAAA,IAAA,IAAf,EAgBJ,EACU,MAAoB,MAA5B,IAA4C,MAAoB,MAAhE,IAIsB,MAAP,MACJ,YAAA,QACb,IALI,EAOJ,KACU,MAAoB,MAA5B,OAIoBkqC,GAAAA,IAAAA,KAAhBiB,IAAJ,MASI,OAAJ,MAKoBnB,MAAhBmB,IAAJ,GAAmCnB,MAAkB,MAAA,KAArD,GAKUhqC,MAAK,KAAA,WAAA,IAAA,IAAf,EAJEuwC,IAAAA,KAAgC,MAACrF,IAAAA,OAAc,KAAY,MAA3B,MAChC,EANAqF,IAAAA,KAA0B,MAAW,MAAX,QAC1B,EAVAvlC,IAAAA,KACEk+B,IAAAA,KAAW,YADJ,MAITA,KAA0B,MAAW,MAAX,MAC1B,IATUlpC,MAAK,KAAA,WAAA,IAAA,IAAf,EAyBJ,EACU,MAAoB,MAA5B,IAIAuwC,GAAAA,IAAAA,KAA0B,MAAK,MAAL,OAC5B,IAJcvwC,MAAK,KAAA,WAAA,IAAA,IAAf,EAMJ,kBAEqB,OAAA,OACC,OAAA,OACpBuwC,GAAAA,IAAAA,KAA2B,MAA8B,MAA9B,OAEvBrH,IAAAA,KAAW,MAAf,GAAmC,UAAnC,IACEA,IAAAA,KAAkC,MAAK,MAAL,KADpC,EAGF,EAEA,EACM,MAAuB,OAAC,KAAD,KACL,IAAH,QACrB,EAF8B,GAAa,KAAA,IAAZ,EAI/B,IAAwB,IAEhB,MAA0B,SAAqB,KAArB,MADV,IAAA,IAgBhB,MAA0B,SAAkB,KAAlB,MAhBV,IAwBhB,MAA0B,SAAoB,KAApB,MAxBV,IAuChB,MAA0B,SAAoB,KAApB,MAvCV,IAAH,QA4DrB,EA3DuD,GAC3C,KAAQ7+B,GAAAA,IAAI,MAAlB,OAGqD,KAC3C,KAAV,IAAA,QAAA,IAKW6+B,GAAAA,IAAAA,KAA6B,MAAG,KAAH,KACpC,EAJOC,GAAAA,IAAAA,KAAkB,MAAG,KAAH,KAAS,MAMtC9+B,IAAkB,MAAKomC,GAAAA,IAAAA,KAA0B,EAAA,IAAZ,KAAA,cAAA,IAAA,IAAnB,OACpB,IAZI,EAa4C,GACxC,KAAQpmC,GAAAA,IAAI,MAAlB,IAGAA,IAAsB,MAAP,MACG,MAAL,MACK,MAAKomC,GAAAA,IAAAA,KAAc,KAAA,WAAA,IAAA,IAAnB,OACpB,IALI,EAM8C,GAC1C,KAAQpmC,GAAAA,IAAI,MAAlB,IAGAA,IAAsB,MAAP,MACG,MACZomC,GAAAA,IAAAA,KACM,MACE,MAFgB,EAAA,KAAA,KAAV,KAAA,cAAA,IAAA,IADF,KAOI,MAAA,IACZ,MAAA,MACZ,IAZI,EAa8C,GAC1C,KAAQpmC,GAAAA,IAAI,MAAlB,OAGAA,IAAsB,MAAP,MACG,MACZomC,GAAAA,IAAAA,KACS,KADe,EAAA,IAAV,KAAA,cAAA,IAAA,IADF,KAKA,MACZA,KAEQ,KAFgB,QAAA,KAAA,KAAV,KAAA,cAAA,IAAA,IADF,KAOI,MAAA,IACZ,MAAA,MACZ,IAjBI,E,aCxQG,MAAA,OAAA9xC,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAOb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAmBuC,KAkFpC,IAAA,MAAA,EAlFoC,EAAA,KAAA,IAkCpCkK,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAwBA,MAAA,IAED,KAFC,IAxBA,IAiCA,MAAA,IAED,KAFC,IAjCA,IA4CA,MAAA,IAED,KAFC,IA5CA,MAAA,MAgDA,EA7ED,MAAyCC,GAAAA,IAAA,KAAAwnC,GAAAA,MAAA,MACnCzrC,IAAAA,KAAQ,SAAZ,IACEmG,IAAAA,OACE0lC,QADO,MAQR,GAAD,GAAA,GAAqC,KAAnB,OAAA,IAGjB,GAAD,GAAA,GAAqC,MAAnB,OAAA,IAEpB,GAAA,GAAA,KAEO,IACL,KACEzwC,MAAY,SAAA,KAId,KACEA,MAAY,SAAA,KADd,EAPkB,MAatB,EAEA,QAKM,QAAJ,IAA+B,KAAA,KAA/B,UACuCsI,GAAAA,IAAAA,KAAiC,WAAA,OAApC,IAM7B,EACG,KADH,IAAP,EAEQooC,GAAAA,MAAJ,IACExmC,IAAI,MAAJ,IAAmC,SAAA,KAEnCwmC,IAAmB,KAAA,IACP,IAJd,EAMF,EAIJ,OAGQ,KADCxwC,QAAA+I,IAAAA,IAAA,KAAA,UAAA,IAAA,OACD,IADC,IAAAC,IAAA,IAAA,GACD,IAGNZ,GAAAA,IAAAA,KAAqB,MAAK,KAA1BA,KAAqB,OAAA,IAAe,KAAA,KAAV,MAC5B,EAEA,MAGEyC,GAAAA,IAAAA,OACE4lC,UADO,MAIL,MAAJ,IAAmC,MAAmB,MAAA,KAAnB,KACnCroC,IAAAA,KAAwC,MAAA,KAC1C,EAGSA,GAAAA,IAAAA,KAAmC,SAAA,KAA1C,E,e,K,I,M,K,I,Q,O,WC3GJ,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAhE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAmB1B,UAAA,KAE/C,MAAA,EArByE,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,UCH7D,MAAA,QAAA,IAAA,KAAA,IAWX,KAAA,IADkB,QAON,MAAkB,EAN9B,MAAiCuF,GAAAA,IAAAwmC,MAAA,MACN,KAAA,IAAhB,QACT9xC,MAAa,QAAA,MACf,E,Q,K,I,K,MCbW,MAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAIO,IAAA,QACK,IAAA,KAAV,IAKL,KA+BP,QAGW,MAAQ,EA5CT,KAAA,IAAAwN,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAC,GAAAA,IAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAUH,EAAA,KAAA,IAAAuD,GAAAA,SAAA,MAAAC,IAAA,KAAA,IAgBPtD,IAAA,MAAA,IAKD,KALC,IAAA,IAAA,IAQA,MAAA,IAKD,KALC,IARA,IAAA,MAeA,EA3BD,SAIEC,GAAAA,IAAA4mC,GAAAA,MAAA,MACA7lC,MACEsE,IAAAA,GAAiBlM,IAAjBkM,IADO,MAKT/B,IAAA,QAAA,OACA,KAAc,MAAQ,EAMxB,GACEvC,GAAAA,IAAc,KAAK,OAAT,UAAD,MACE,KAAK,KAAhB,EAMF,GACa,KAAK,MAAT,KAAP,E,Q,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OCtCJ,IAAA,KAAA,KAAA,OAE2B,IAAA,KAsBU,KAbf,QAae,MAArB,KAuHb,KAtHW,MACE,MACH,SAuHC,MAAc,EAlJkC,KAAA,IAAAmB,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAwB9C,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAiBbzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAMA,MAAA,IAED,KAFC,IANA,IAqBA,MAAA,IAED,KAFC,IArBA,IAyBA,MAAA,IAED,KAFC,IAzBA,IAoDA,MAAA,IAED,KAFC,IApDA,IA+EA,MAAA,IAED,KAFC,IA/EA,IA0FA,MAAA,IAED,KAFC,IA1FA,IA8FA,MAAA,IAED,KAFC,IA9FA,IAkGA,MAAA,IAED,KAFC,IAlGA,IAAA,MAsGA,EAzGD,EAAcC,GAAAA,IAAA,KAAAulC,GAAAA,MAAA,MACZ9gC,IAAA,KAAA,OAVG,SACE,SACH,QAKI,MAIK,MAAA,IAAG,EAGhB,IACkB,QACL,MACC,QACd,EAEA,KACkB,MACE,MAAC,MAAA,IAAD,QAClB,IACU,MAAR,GAEe,MACK,MAAC,EADd,OAGc,IAAD,KAHb,MACc,IAAD,KADb,EADa,MAAC,MAAA,IAAD,KAMF,MAAC,MAAA,IAAD,KARpB,EAUF,EAEA,EACYvN,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,SACe,QAEb,QAMA8wC,GAAAA,IAAAA,KAAoC,MAAK,KAAL,KAAgB,KAClD,KAOA,KARkD,QAgBtD,IArBc3sC,MAAS,KAAA,WAAA,IAAA,IAAnB,EAOMkG,GAAAA,IAAI,MAAR,GAGAA,OAAY,MACO,SAAA,OACrB,IAJI,EAMEA,GAAAA,IAAI,MAAR,GAGAA,OAAW,MACQ,SAAA,OACrB,IAJI,EAQR,eAAwC,SAAA/D,IAAA,OAAAA,IAAA,IAAAA,EACzB,QAEb,QAMAwqC,GAAAA,IAAAA,KAAiC,MAAK,KAAL,MAA0B,KACzD,KAOA,KARyD,MAgB7D,IArBc3sC,MAAS,KAAA,WAAA,IAAA,IAAnB,EAOMqG,GAAAA,IAAI,MAAR,GAGAA,OAAY,MACO,SAAA,OACrB,IAJI,EAMEA,GAAAA,IAAI,MAAR,GAGAA,OAAW,MACQ,SAAA,OACrB,IAJI,EAQR,IACe,MAEL,QAAR,IAAsC,SAAtC,IACa,MAAA,IACQ,MAAA,KAGV,MAAA,MACb,EAEA,EACa,MAAX,EAGF,EACa,MAAX,EAGF,EACa,MAAX,E,e,K,I,M,K,I,Q,O,WC9IJ,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAjG,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAO1B,UAAA,KAE/C,MAAA,EATyE,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,a,M,O,M,K,I,Q,O,M,S,I,K,Q,I,K,QCA1E,IAAA,KAAA,KAKEolC,OADF,GAESA,KAA6B,KAAA,IAAE,MAAtC,SAFF,IAIoBA,KAA6B,KAAA,IAEpB,UAATj5B,IACE,MAAhB,MAAJ,IACmC,UAAlB,QAAA,IAAA,IADjB,oB,SAuEC3J,MAAM,MApER,IA6B2B,KAyDzB,IAzDyB,IAyDzB,MAUa,KAab,IAAA,MAAA,EAlBM,cAAsS,SAAA,KAA7S,EA9D0B,EAAA,KAAA,IAOzB2B,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAIA,MAAA,IAED,KAFC,IAJA,IAQA,MAAA,IAED,KAFC,IARA,IAYA,MAAA,IAED,KAFC,IAZA,IAgBA,MAAA,IAED,KAFC,IAhBA,IAoBA,MAAA,IAED,KAFC,IApBA,IAwBA,MAAA,IAED,KAFC,IAxBA,IA4BAkoC,IAAA,EAAA,IAID,KAJC,IA5BA,IAkCA,MAAA,IAED,KAFC,IAlCA,MAAA,MAkDA,EAtDD,SAAyBjoC,GAAAA,IAAA,KAAAylC,GAAAA,IAAA,MAFa,IAAzB,MAGP,OAAJ,wBACE5vC,MAAW,KAAA,KAAgB,KAAC,KAAD,KAE/B,EAFgC,GAAOwL,GAAAA,IAAW,MAAM6mC,IAAM,IAAZ,MAAf,EAInC,EACM,MAAmB,KAAC,OAAA,OAAA,IAAD,OACzB,EAEA,EACYhxC,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAKF,EACa,QAAekH,MAAM,MAAU,IAAA,IAA1C,EAGF,IACU,MAAc,OAAtB,UAGiB,MAAc,QAAlB,IAAH,IACC,MAAqB,MAAC,SAAD,MAAhC,MAHE,EAG+B,aAG7B+pC,QAAuB,MAAL,QADlB9G,IAGA8G,SAAuB,IAAL,SAHlB9G,IAAAA,IAIW+G,GAAAA,OAAVt2B,OAJDuvB,IADF,EAkBU,EAAA,KAAA,IA2CbthC,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAIA,MAAA,IAED,KAFC,IAJA,IAQA,MAAA,IAED,KAFC,IARA,IAYA,MAAA,IAED,KAFC,IAZA,IAgBA,MAAA,IAED,KAFC,IAhBA,IAoBA,MAAA,IAED,KAFC,IApBA,IAwBA,MAAA,IAED,KAFC,IAxBA,IA4BA,MAAA,IAED,KAFC,IA5BA,IAgCA,MAAA,IAED,KAFC,IAhCA,IAoCA,MAAA,IAED,KAFC,IApCA,IAwCA,MAAA,IAED,KAFC,IAxCA,IA+CA,MAAA,IAED,KAFC,IA/CA,IAmDA,MAAA,IAED,KAFC,IAnDA,IA4DA,MAAA,IAED,KAFC,IA5DA,IAgEA,MAAA,IAvGD,KAuGC,IAAA,IAAA,IAlGA,MAAA,IAED,KAFC,IAkGA,MAhEA,OA9BA,EAGD,YAA6CC,GAAAA,IAAA,KAAAqoC,GAAAA,MAAA,QAdxB,MAgBnB,MAAaC,IAAe,KAA5B,MAMM,OAAJ,IAMyB,KAAA,IANzB,EAEOA,IAAe,QAApB,KACYjtC,UAAS,IAAA,KAAA,OAAA,IAAA,IAAnB,EAKgB,UAAA,WAApB,GACyB,KAAW,QAAPktC,MAAJ,MAEN,MAAA,QAAnB,GACK,IAEe,MAAA,KAApB,MAAA,GAGS,IAAA,MAvBX,EACW,MACA,MAAc,UAAA,KAAvB,GACM,MAAK,IAAA,MAsBf,EAEA,EACYrxC,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACsB,KAAA,IAApB,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACU,QAAR,IACmCuuC,GAAAA,IAAe,KAAA,OAAA,IAAA,IAAtB,MAEjB,MAAX,EAGF,EACsB,KAAA,IAApB,EAGF,UACU,QAAR,IAG2B,MAA+B,KAAA,IACpC,MAAa,KAAA,WAAjB,OACP,MAAJ,IAAA,IAAP,EAJa,MAAX,EAOJ,EACYvuC,MAAK,KAAA,WAAA,IAAA,IAAf,EAtGF,GACMsxC,GAAAA,MAAJ,IAGUA,OAAsB,KAAK,MAArC,IAA2D,KAAK,SAAhE,IAAA,IAAoF,SAApF,IAAA,IAAA,IAFYtxC,MAAK,KAAA,WAAA,IAAA,IAAf,EAKJ,EAEA,E,c,K,I,K,MCnIW,MAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,MAEbrB,MAAqB,KAAwB,IAAA,QAAxB,UAEQ,IAAA,KAMY,MAAxB,KAiBZ,KAE+B,MAAY,SAAZ,MAuBX8F,MAAO,KAAA,OAAA,IAAA,IAAd,IAElB9F,MAAuB,KAAY,KACtB,EAAA,IADkC,EAAA,KAAxB,MAInB,KAAA,OAAJ,IAA2CuI,MAAM,MAAb,OAApC,IACIvI,MAAqB,KAAY,KAAYuI,MAAM,MAAc,UAA5C,OADzB,Y,S,S,SAWqB,KAkBhB,IAKezC,MAAO,KAAA,OAAA,IAAA,IAAd,IAYb9F,MAAuB,KAAgB,KAC3B,EAAA,IACD,EAAA,IAFwC,EAAA,KAAA,KAA5B,MAInB,KAAA,GAAJ,IAA2CuI,MAAM,MAAb,OAApC,IACIvI,MAAqB,KAAgB,KAAYuI,MAAM,MAAc,UAAhD,OAMF,MACDqqC,IAAH,MACJ,MAED,MACR,KAAiC,KAAmB,MAA5B,MACxB,KAAuBA,IAAH,MAAc,EAzH3B,KAAA,IAAAplC,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAC,GAAAA,IAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAiCb,EACmBnL,MAAa,KAAC4yC,GAAAA,IAAW,KAAZ,KAC5BC,IAAe,MAAiB,KAAA,KAChCC,IAAgB,OAAA,MAChB,EAKJ,GACQA,GAAAA,IAAgB,KAAA,OAApB,IAGAA,IAAgB,OAAA,MACI,MAAC,MAAA,IAAD,OACxB,IAJQ,EAoDR,OACmBC,GAAAA,IAAW,KAAA,OAC1B,IAGA,IAFcvtC,MAAwEwtC,IAA+B,GAA9F,KAAA,QAAA,OAAA,IAAA,IAAnB,EAzFS,EAAA,KAAA,IAAAtkC,GAAAA,SAAA,MAAAC,IAAA,KAAA,IAOZtD,IAAA,MAAA,IAID,KAJC,IAAA,IAAA,IAAA,MAUA,EAbD,GAAcC,GAAAA,IAAAsnC,GAAAA,MAAA,MACVhkC,IAAA,KAAA,OACUpJ,MAAS,KAAA,WAAA,IAAA,IAAnB,EAKJ,OACoBstC,GAAAA,IAAgB,KAAA,KAC5B,OAAJ,IAGA,IAFcttC,QAAoE,IAAyB,GAApF,KAAA,QAAA,OAAA,IAAA,IAAnB,EA6CS,EAAA,KAAA,IAMhB6F,GAAAA,IAAA,MAAA,IAID,KAJC,IAAA,IAAA,IAMA,MAAA,IAID,KAJC,IANA,MAAA,MAYA,EAdD,GAAcC,GAAAA,IAAA2nC,GAAAA,MAAA,MACVF,IAAW,KAAOG,IAAiB,IAAxB,MACf,EAKWC,GAAAA,SAAS,KAAhB,EAMAC,GAAAA,IAAYD,SAAS,KAAV,KACf,E,aC3EO,cAAX,GACiB,KAAH,MADd,EAMC,EAFGlqC,GAAAA,IAAOC,MAAA,MAAA,KAAwB,gBAAA,MACjC,E,Q,I,M,M,Q,I,K,K,O,I,K,K,OCTF,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IA4BW,KAiIR,OAGW,MAAS,EApIZ,EAAA,KAAA,IAAAgB,GAAAA,IAAA,KAAA,MAAA,IACT,KADS,IAAA,IAAA,IAwER,MAAA,IAED,KAFC,IAxEQ,QAAA,OAiIR,EAjIQC,GAAAA,IAAA,KAAAkpC,GAAAA,QAAA,MAAA,EACT,wBAMMntC,GAAAA,IAAAA,KAAQ,SAAZ,OAUWA,IAAAA,KAAQ,SAAZ,6BAEH+C,IAAOC,OAAA,IAAA,KAAqD,KAC9D,GACE,EAEuD,KAAA,OAGhDoqC,MAAAA,GACEplC,MAFmB,EAAA,IAAA,MAAA,KAM9B,GAAsB,MAAtB,GAC6B,MAAV,MAKWqlC,GAEzB,EAAA,IAAD,IAAA,IAF0BA,EACb,UAAA,MAEsB,KAAA,IACA,KAAA,IACD,KAAA,IAEtC,GACsC,KAAbC,MAAH,MAEtB,GACwC,KAAdC,MAAH,MAEvB,GACwC,KAAdC,MAAH,MADvB,oBAoBoC,MADpB,KAbC,KAcmB,OArD/B,EATLL,GAAAA,IAAY,6BAAA,wBAgEhB,EAhBqB,MACAnhC,GAAAA,IAAS,MAAxB,IAQsBA,IAAS,MAAxB,OACLoN,IAAAA,GAAWA,IAAO,MAAlBA,MAAgCA,IAAiB,MAAA,IAAjDA,EARkBpN,IAAS,MAA3B,IAEyBA,IAAS,MAA3B,IAEkBA,IAAS,MAA3B,IACLwhC,IAAc,KAAdA,GAA0BA,IAAsB,KAAA,IAAhDA,EAFAD,IAAc,KAAdA,GAA0BA,IAAsB,KAAA,IAAhDA,EAFAD,IAAa,KAAbA,GAAyBA,IAAqB,KAAA,IAA9CA,EASN,EACgB,EAA0BlyC,MAAY,QAAA,KAAjB,EAKzC,uBAImB,SAAAqG,IAAA,OAAAA,IAAA,IACI,QAAAA,IAAA,IACA,QAAAA,IAAA,IACJ,QAAAA,IAAA,IAEbzB,GAAAA,IAAAA,KAAQ,SAAZ,iCAC+B,IACb,IAIZ,OAAJ,MAEW1E,MAAa,KAAA,iBAAjB,6BACoB,KAAC,KAAD,KADpB,EADO,IAAA,4BAoBdmyC,IAAAA,KAA6B,MAElBL,MACEplC,KACTqlC,IACM5gC,KAENihC,IACAC,IACAC,QAEoBx0B,IAAO,MAAP,KAVtB,EAAA,IAAA,IAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAYA,KAb2B,MAmBjC,EArCgC,UACxB+oB,GAAAA,IAAsB,KAAN,IACT,SAAP,IAEc,SAAP,MACkB9jC,QAAM,KAAT,IADf,IADaA,QAAM,KAAT,IAIV,MAAP,KACuBA,QAAM,KAAT,IAEb,KAAP,GAAyBwvC,IAAAA,GAAqB,IAAE,QAAxB,IAAxB,IACqC,EAChB,KAAHC,MAAH,IACbT,IAAY,KAAA,KAHd,EAKF,EAiBalL,GAAAA,OAAS,IACpB4L,QAAQ,KAARA,EACF,E,e,K,I,M,K,I,Q,O,WC3JR,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAruC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAmCtC,SAAA,KAA8B,MAAA,EAnCQ,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,QCArC,SAAA,KAAX,MAEP,MACtB,IACiC,EAAf,SADlB,MAK6C,KAAvB,OAA4C,EAArB,IAAA,E,aCPnC,QAAV,IAA2C,MAA3C,KAG+B,IAAA,KACZ,KAJnB,EACyB,wBAoBE,KAAb,MACF,MAAZ,QAC6B,KAAb,MADhB,IAG8B,KAAhB,UACqB,KAArB,UAGW,KAAX,UAGZ,KAFY,UAI6B,KAA7B,UAG4B,KAA5B,UAOgB,KAAd,MACf,EA3BMqF,GAAAA,IAAwC,YAAA,MADpC,EAIsBnC,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAEQD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAEOD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAE5BD,GAAAA,IAAOC,OAAA,MAAA,KAD0B,EAGJD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAGjBD,GAAAA,IAAOC,OAAA,MAAA,KAAyC,KAAtD,EAGAD,GAAAA,IAAOC,OAAA,MAAA,KADkC,EAIzCD,GAAAA,IAAOC,OAAA,MAAA,KADiC,EAOND,GAAAA,IAAOC,OAAA,MAAA,KAAb,E,W,M,M,QC/C9B,IAAA,KAAA,KAAA,IAEoB,EACL,KADK,QAgBN,MAAe,EAfd,KAGTtJ,GAAAA,IAAwB,MAAA,OACxB0B,MAAW,UAAC,IAAD,KACb,EAAE,IACAA,MAAW,MAA+C,KAAA,QAA9C,IAAD,KACO,KAAA,IAEhB4yC,GAAAA,IAAAA,KAAJ,GACEA,IAAAA,KAAoC,MAAA,MADtC,EAGF,E,e,K,I,M,K,I,Q,O,WCbF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAtuC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAMnC,SAAA,KAAwB,MAAA,EANW,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,K,O,O,ICAjD,EACjB,KADiB,QA0BX,QAAoB,EAzB1B,UAIOnG,GAAAA,IAA2B,MAAA,OACpC,MAGE0B,MAAW,UAAA,KAHb,IACEA,MAAW,UAAA,KAIf,EAAE,IACAA,MAAW,MACwD,KAAA,QAAjE,IADS,KAGO,KAAA,IAIlB2H,GAAAA,IAAOC,MAAA,IAAA,KAA+B,QACxC,MAC6C,eAAA,OAE/C,E,e,K,I,M,K,I,Q,O,WCvBF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAtD,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAMnC,SAAA,KAA6B,MAAA,EANM,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,K,SCAjD,SAAA,KAAV,IAEG,UAAH,MAQ+B,IAE/B,EAEI,KAFJ,KAeD,KAfC,KAyBI,KAzBJ,KAAH,OA8BE,MAAU,EA5BL,UAA6C,KAAtBvE,QAAA+I,IAAAA,IAAA,KAAA,UAAA,IAAA,OAAsB,IAAtB,IAAAC,IAAA,IAAA,GAAsB,IAEjD5K,GAAAA,IAAM,MAAb,OAAJ,IAIMu0C,IAAJ,OAAA,IACEA,IAAc,KAAA,MADhB,EAHAC,IAAM,MAAa,KAAb,IAAA,IAAmB,KAAA,KAAN,MAOvB,EAGY,UACIC,GAAAA,IAAS,IACvBhoC,QAEE,MAAsCrM,MAAW,KAAA,KAAoB,KAAA,QAArE,IAAA,IAFO,MAGP,GAL+BwB,QAAA0nC,IAAAA,IAAA,KAAA,UAAA,IAAA,OAK/B,IAL+B,IAAAC,IAAA,IAAA,GAK/B,IAEF7nC,MAAO,IAAO,KAAA,MAChB,EAGgB,MAAA,MAChB,E,Q,M,QCzCF,IAAA,KAAA,KAMiCsI,QACnB,MAA4B,E,ECDU,EAC7C,KAD6C,KAE5C,KAF4C,KAQ3C,KAR2C,KASpC,KAToC,KAU/C,KAV+C,QAatC,QAAqB,EAZ5B,EAAI,EACH,EACJtI,MAAa,SAAA,OAIf,EACO,EAAI,EACG,EAAI,EACf,EAAI,E,Q,O,I,KC0BY,M,KAwCF,QAAgB,EAxEnC,KAAA,IAUI2H,GAAAA,IAAOC,MAAA,MAAA,KAAyC,KACvB,YAGzB,KAHyB,OAmB7B,EAhBI,GAOE,KACoB7H,MAAiB,KAAZ,KAAA,OAAA,IAAA,IACQ,MAAd,MACjBsS,GAAAA,MAAQ,KAGVA,GAAAA,QAAQ,KACV,EAMJ,EAUI1K,GAAAA,IAAOC,MAAA,MAAA,KAAyC,KAE/B,MAAnB,KACY7H,MAAK,KAAA,WAAA,IAAA,IAAf,SAGuB,YAGvB,KAHuB,OAoB3B,EAjBI,GAQE,KACoBA,MAAiB,KAAZ,KAAA,OAAA,IAAA,IACQ,MAAd,MACjBsS,GAAAA,MAAQ,KAGVA,GAAAA,WAAQ,MACV,E,e,K,I,M,K,I,Q,O,WC5EJ,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA/N,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAe7B,UAAA,KAAwB,MAAA,EAfK,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Q,K,I,K,M,M,Q,I,K,K,OCC7E,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAkC6B,EAAH,IACd,IACgB,EAAH,MAC4BhG,MAAG,KAAA,OAAA,IAAA,IAAV,IACmBA,MAAG,KAAA,OAAA,IAAA,IAAV,IAExD,KAD4E,MAIjD,IAOT,EACS,KADT,KAKS,KALT,KASJ,KATI,KAkCD,KAlCC,KAsEF,KAtEE,KA2EH,KA3EG,KA+ER,KA/EQ,KAmFJ,KAnFI,KAuFP,KAvFO,KA6FP,KA7FO,KAiGP,KAjGO,KAwGqB,KAxGrB,KAmHJ,KAnHI,KAkJH,KAlJG,KAmLkB,KAnLlB,KA4LE,KA5LF,KAwMa,KAxMb,KA2ND,KA3NC,KAiQA,KAjQA,KAAH,OA0QL,QAAZ,IACEqL,KAAoC,MAAgB9E,QAAhB,MAOlCA,IAA6B,UAE3B,KAF2B,MAUhBA,OAAH,MAAe,EA9UK,OAAAtG,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAwChC,KAA2C,IAAd,EAYH,MAAA,MAC1B,EAG2B,MAAA,MAC3B,EAEc,GACE,OAAC,KAAD,OAiBhB,EAjBiB,GACA,MACXjB,GADF,GAGE+F,IAAAA,KACW,QAATioC,IAGS,YAJF,OAMThuC,IAA6B,MAClB,MACA,MACA,KAHkB,OAT/B,EACEA,IAA4B,MAAU,MAAkB,MAA5B,MAD9B,EAeF,EAQe,QAAA,IAAA,IAKewlC,GAAAA,IAAAA,OAAuB,IAA1B,IAC3ByI,IAAoB,EAAA,KAEb,KAFa,KAAH,OAwBjB,GACEC,IAAmBD,IAAS,IAAZ,IAElB,EAzBO,KAEY,UAAb,IAAA,MAAA,GACa,MACfE,GAAAA,IAAAA,KACEC,IACEC,GAAAA,IACAC,IAFkC,MAIvB,MACA,MACbC,IAAAA,GAA4BA,IAAwB,KACvC,MACbC,IACAF,IACAG,IAEAC,IAAAA,SAAiB,SAFjBD,wBAXe,IAgBnB,EAQY,GACdR,GAAAA,IAAoB,KAAA,KAAH,IACjB,EAIAjuC,GAAAA,IAA6B,cAAA,SAC/B,EAEU,EACDtG,MAAW,KAACu0C,GAAAA,IAAD,KAAlB,EAGY,EACLv0C,MAAW,KAACw0C,GAAAA,IAAD,KAAlB,EAIApmC,GAAAA,IAAA,EACKomC,MADL,MAAA,EAMOD,GAAAA,OAAS,IAAhB,EAKYjuC,GAAAA,IAA0B,MAAA,IAC3B8H,IAAA,EAAMmmC,MAAN,MAFJ,EAAA,KAAA,KAAP,EASoC,MAAA,MACtC,EAOc,WAKZ,kBAIc,IAAH,IACTU,GAAAA,IAAAA,KAAQzyC,IAAD,KACP0yC,IAAAA,KAAsB,MACWC,IAAQ,GAAA,GAAA,QAAvC,IACA,KAFoB,MAKxB9oC,GAAAA,IAAAA,KACEkoC,IAAS,IAATA,GAAqBA,IAAS,IAAQ,MAAtCA,IACA,QAAA,QAAA,QAAA,QAAA,IAFO,MAQTa,IAAAA,KAA2B,MAAC,EAAA,IAAD,KAC3Bb,IAAS,IAAY,YAAA,MACvB,EAbY/xC,GAAAA,IAAN,EAkBS,cAKb,kBAEI,MAGA8B,MAAc,MAAA,SAHd,IAAA,IADO,IAKT2wC,GAAAA,IAAAA,KAAQzyC,IAAD,KACP0yC,IAAAA,KAAsB,MACYC,IAAQ,GAAA,GAAA,QAAxC,IACA,KAFoB,MAKxB9oC,GAAAA,IAAAA,KACEkoC,IAAS,IAATA,GAAqBA,IAAS,IAAQ,MAAtCA,IACA,QAAA,QAAA,QAAA,QAAA,IAFO,MAQTA,IAAS,IAAY,SAAA,MACvB,EAZY/xC,GAAAA,IAAN,EAoBJ6yC,GAAAA,IAAAA,WAAwC,KAC1C,EAOoB,EAEkB,cAAwB,KAAxB,SAGtC,EAH8D,EAAM,KAAN,EAAM,EAElE,EAQ6B,GAKzBC,GAAAA,IAAiB,KAAA,KAArB,KACEh0C,MAAY,SAAA,QAAA,IAAA,KAIdg0C,IAAiB,QAAA,MACjBC,IAAuB,QAAA,QACzB,EAOiB,QACMD,GAAAA,IAAiB,KAAA,KACtC,KACEh0C,MAAY,SAAA,IAAA,KACRk0C,IAAAA,KAAJ,GACEA,IAAAA,KAA8C,MAAA,KADhD,EAGA,QAEU,OAAE,KACP,KAAC,KAAD,KAKC,MAAC,KAAD,KAgBV,EApBUA,GAAAA,IAAAA,KAAJ,GACEA,IAAAA,KAA8C,MAACC,GAAAA,IAAD,KADhD,EAGF,EACO,KACLn0C,MAAa,KAAA,KAGXk0C,GAAAA,IAAAA,KADF,GAEoBE,IAAAA,KAAlBC,IAFF,GAIEH,IAAAA,KAA2C,MAACC,GAAAA,IAAD,KAAa,OACtD,KADsD,KAJ1D,EAYF,EAPM,GACE,GACED,GAAAA,IAAAA,KAA8C,MAACC,GAAAA,IAAD,KADhD,EAGF,EAWQ,GACWF,GAAAA,IAAuB,KAAA,KAClD,KACYl0C,UAAK,IAAA,KAAA,QAAA,OAAA,IAAA,IAAf,IAEgB,IAAE,IACtB,EAaI,EACE,KADF,EACE,EACE,E,Q,I,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,OCrVV,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAEA,IAAA,KAAA,KAAA,IAsBkB,KAqGf,IArGe,MACwCtB,MAAG,KAAA,OAAA,IAAA,IAAvC,MACmCA,MAAG,KAAA,OAAA,IAAA,IAAvC,QACC,MACM,SAoGd,MAAgB,EAnH5Bm1C,GAAAA,IAA0B,YAAwB,KAAxB,QAG5B,EAFIjsC,GAAAA,IAAOC,OAAA,MAAA,KAAmB,IADsB,EAWlC,EAAA,KAAA,IAAAgB,GAAAA,IAAA,KAAA,MAAA,IAMhB,KANgB,IAAA,IAAA,IAyBf,MAAA,IAUD,KAVC,IAzBe,IAwCf,MAAA,IAUD,KAVC,IAxCe,IAuDf,MAAA,IAED,KAFC,IAvDe,IA0Ef,MAAA,IAQD,KARC,IA1Ee,QAAA,OAqGf,EArGeC,GAAAA,IAAA,KAAA+qC,GAAAA,QAAA,MAAA,EAOTA,GAAAA,IAAY,MAAjB,GACEA,IAA6BtrC,GAAAA,IAAAA,KAAiC,KAGhD,YAHgD,OAApC,MAM1BgsC,MAAa,IAGVV,IAAY,MAAjB,GACEA,IAAmCtrC,GAAAA,IAAAA,KAAiC,KAGtD,YAHsD,OAApC,MADlC,EAQF,EAUA,EAIwB,MAAgBsrC,GAAAA,IAAY,YAA5B,OAAtB,EAWF,EAIwB,MAAgBA,GAAAA,IAAY,YAA5B,OAAtB,EAGF,QAKEA,GAAAA,IAAuB,MAAA,IACT,KAAA,KAAd,KACE5zC,MAAY,SAAA,QAAA,IAAA,KADd,QAKU,QAAA,MACH,EACG,KADH,IAAP,EAEIiG,GAAAA,IAAa,KAACa,IAAD,OACf,EAUJ,YAC+B,EACC8sC,GAAAA,IAAY,MAA1C,GAAA,GAA0DW,GAA1D,IAAA,GAAA,IAA0DA,IAAA,KAAA,MAA3C,IAAU,OACE,IAAX,IAChB,EAAA,EAAA,GAAA,EAC4B,EACEX,IAAY,MAA1C,GAAA,GAAA,IAAA,GAAA,IAAyDW,IAAA,KAAA,MAA1C,IAAU,OACC,IAAX,IACf,EAAA,EAAA,GAAA,EAEIC,IAAAA,OAAJ,IAAkCA,IAAAA,KAAkB,MAApD,IACEA,IAAAA,KAA+B,YAAA,MAG7BC,IAAAA,KAAJ,IAA4BA,IAAAA,KAAY,MAAxC,IACEA,IAAAA,KAAyB,aAAA,MAD3B,MAIO,EAAA,KAAA,KAAP,E,e,K,I,M,K,I,Q,O,WC3HJ,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAnwC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAOtC,SAAA,KAAgB,MAAA,EAPsB,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,e,K,I,M,K,I,Q,O,WCA7E,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAQnC,SAAA,KAAsB,MAAA,EARa,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,E,K,I,QC0I5D,QAAiB,EA3HpBiwC,GAAAA,MAAY,IAAnB,IAAA,EACA,MACO,IAAP,EAIJ,IAEE,E,ECrB8C,IAAH,IAE1B,MAAA,IAAH,IAEK,EACL,KADK,KAML,KANK,KAUU,KAVV,QAuBP,QAAgB,EArBd,MAAA,IACZC,IAAkB,OAAC,KAAD,OACpB,EAD0CC,GAAAA,SAAD,KAAZ,EAIpBA,GAAAA,IAAP,EAG2B,KAAA,IAI3BD,GAAAA,IAAe,KAAA,KACR,EACG,KADH,IAAP,EAEiBA,GAAAA,IAAiB,OAAC,KAAD,KAApB,MACZ,EAD6CtiC,GAAAA,OAAAA,IAAJ,E,O,M,K,I,Q,O,K,Q,MCrBE3T,MAAa,MAAC,UAAD,KAAhB,IAiBpB,MAAA,EAXnB,GAEEm2C,GAAAA,IAAW,MADlB,IAGOA,IAAW,MAHlB,IAMWA,IAAW,MAAlB,EAFOA,IAAW,MAAlB,EAFOA,IAAW,MAAlB,E,W,K,I,K,M,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,KCbkC,KAAS90C,MAAT,KAAA,KAAA,KAAc,MAAA,E,K,I,G,M,I,I,K,E,M,G,I,K,G,I,K,I,G,K,E,G,M,E,I,K,K,O,M,K,E,O,I,K,M,E,E,K,O,O,M,K,G,M,K,K,G,K,O,I,M,K,K,K,M,K,M,M,K,O,K,E,E,I,I,I,I,E,E,EAAd,EAAA,KAAA,IAAAye,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAAAzE,IAAA,KAAA,KAAA,EAAA,MAAAC,GAAAA,IAAA,KAAAurC,GAAAA,IAAA,MAAA9mC,IAAA,KAAA,EAAA,MAAA,E,e,K,I,M,K,I,Q,O,WCExC,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAhJ,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAOnC,SAAA,KAA+B,MAAA,EAPI,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,K,I,K,K,I,K,M,M,O,M,K,I,Q,O,K,S,I,K,K,OCA1E,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAGA,IAAA,QAAkC,IAAA,KAAA,IAgFjC,EAhFiC,IAAA,KAAA,OAAA,cAAAD,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAAA,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAOnB,kCAcb8E,GAAAA,IAAAA,WAAS,SAEiBuoC,IAA2B3S,IAAAA,KAGnDmU,IAAA,KAACC,IAAA,KAAwB,MACvBD,IAAA,KAACE,IAAA,QAKeC,MAAgBv2C,MAAa,MAAC,EAAD,KAE3Co2C,IAAA,KAAchoC,IAAA,EAAA,MAAiB,EAAA,KAAA,EAAjB,UAAd,MAPW,EAAA,KAAA,QAAA,QAAA,KAAA,QAAA,KAAA,IAAb,MADgC,EAAA,IAAA,IAAlC,YAwBF,MAAA,IAGmC/H,IAAK,MAGpC+vC,IAAA,KACwBD,IAAAA,KAAW,MAA3BK,OADE,EAAA,IAAA,IAAV,MAO2B,UAAA,KACL,SAExBC,MAAAA,IAFwB,MAIA,MAAoBC,MAAAA,IAApB,MACA,MAExBC,IAA4B,MAAA,QAFJ,MAI1BA,IAAsB,QAGTxrC,MAAO,KACCA,MAAO,KAJL,EAAA,KAAA,KAAA,KAAA,KAAD,KAMQ,MAAA,KAChC,E,qB,K,M,I,K,M,K,I,Q,O,M,K,SC1FA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAvF,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAA/B,IAUqB,MAACiiC,KAAD,KAD4C,IAU1B,MAAA,EAnBR,IAAA,KAAA,OAAA,cAAAn8B,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAgBtB6wC,GAAAA,IAAAA,MAAWC,MAAD,KAAjB,E,kB,K,I,K,M,I,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OCjBF,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QAEA,IAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAjxC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,+B,YAAA,IAAA,KAAA,IAqBC,KAAd,KAiGf,KAvF8B,MA0FlBwG,KAAiB,KAChB,EAAA,IADiB,EAAA,KAAD,KAApB,OAME,MAAgB,EA/HC,IAAA,KAAA,OAAA,cAAAV,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,KAAA,IAAAyH,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAqBb,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAQwBzE,IAAA,KAAA,MAAA,IAIxC,KAJwC,IAAA,IAAA,IAmCvC,MAAA,IAED,KAFC,IAnCuC,IAyCvC,MAAA,IAED,KAFC,IAzCuC,IAAA,MAyFvC,EAjGe,MAAAC,GAAAA,IAAA,KAAA2sC,GAAAA,IAAA,MAAA,KAAAt1C,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,IAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MACD,UAAV,QAOQ,MAA2B,EAIxC,EA+BA,EAEA,EACU,QAAR,IACM,MAAqB,KAAA,IAD3B,EAGF,EAEA,IAWIwnC,GAAAA,IAAA,KAACW,IAAA,KACmB,KAAM,MAAX,GAAA,GAA8B,KAAM,MAAX,GAAzB,IAGNC,IAAM,MAIR,KAAM,KARR,EAAA,SAAA,KAAA,IAKE,KALF,IAAA,IAEM,KAAM,QAFjB,OAYkB,KAAM,WAC1B,IAEIZ,IAAA,KACoB,KAAM,MACZ,KAAM,MAEZ,KAAM,MAJN,EAAA,OAEE,IAFF,KAIJ,IAJI,KAAA,IAAR,MAWFA,IAAA,KAACa,IAAA,MAAc,MAAiBC,MAAkB,KAAM,MAAX,KAC3C,KAACH,IAAA,KAAYC,IAAM,MACX,KAAM,MAAX,GAAA,MADuD,IAAA,IAEnD,KAAM,MAF6C,IAGnD,KAAM,MAH6C,IAAA,IAArD,EAAA,IAAA,KAAA,IAAL,MADsB,EAAA,IAAA,IAAxB,MADF,EAnBMnrC,GAAAA,OAAa,QACf,E,kB,K,I,K,M,I,Q,I,K,K,O,I,K,QC/FR,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAjG,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,2B,YAAA,IAAA,KAAA,IAAA,QAAA,IAcX,MAClB,KADkB,SAyFJ,SAEF,MAAQ,EAzGS,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAe7B,aAE+B,MACT,MACK,MACA,MACN,MACC,KACA,MACG,MACM,MACE,MACA,MACJ,MACF,MACU,MACZ,MACQ,MACA,MACA,MACA,MACE,MACtB,MACP,KACuB,MACjB,MACK,MACT,MACC,KACG,MACKkqC,GAAAA,IAAA,KAAAC,IAAA,UAKbyF,IAAqB,KAAC,cAAD,KADO,OAItBC,MAAYC,IAAkB,MAAlBA,GACTC,MAAeD,IAAkB,MAAlBA,GACdE,MAAgBF,IAAkB,KAAlBA,GAChBG,MAAgBH,IAAkB,MAAlBA,GAChBI,MAAgBJ,IAAkB,MAAlBA,GALA,EAAA,KAAA,KAAA,IAAA,KAAA,KASrBK,MAAgBC,IAAkB,KAAlBA,GAChBC,MAAgBD,IAAkB,KAAlBA,GAChBE,MAAgBF,IAAkB,KAAlBA,GACfG,MAAiBH,IAAkB,KAAlBA,GAJG,EAAA,IAAA,IAAA,IAAA,IAOLn4B,IAAAA,KAAY,OACVu4B,IAAc,MAAd,MAGvB3B,IAAA,KAAC4B,IAAA,KAAY,MACX,KAACC,IAAA,KAAmB7pC,IAAA,EAAA,UAGhB8pC,IAA8BA,OAAAA,GAEZC,OACTC,IAAyB,GAGlCC,GAAOC,IAAAA,MAA4B,KAGnCC,OAAAA,EAKAA,OAIQ9O,OApBI,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,QAAA,IAAA,EADI,OAApB,MADoB,IAAA,IAAA,IAAtB,MADF,E,KC1EiB,SAAA,KAK2B,QAAA,QAMlC,MAAuB,E,KCbxBzpC,MAAA,KAAA,IAAA,QAAA,S,KAAA,QA+IZ,EAvIM,GACL,IAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,QAAA,QAAA,QAAA,QAAA,QAAA,QAAA,QAAA,QAAA,QAAA,QAAA,MAqIA,IAHI,IAFA,IAFA,IAFA,EAFA,EAFA,IAFA,IAFA,EAFA,IAFA,EAFA,EAFA,EAFA,IAFA,EAFA,MAFA,IAFA,MAFA,EAFA,IAFA,IAFA,IAFA,IAFA,EAFA,EAFA,EAFA,EAFA,IAFA,IAFA,EAFA,IAFA,IAFA,EAFA,EAFA,EAFA,IAFA,IAFA,IAFA,IAFA,IAFA,EAFA,EAFA,MAFA,MAFA,IAFA,EAFA,IAFA,IAFA,IAFA,IAFA,IAFA,IAFA,IAFA,IAFA,IAFA,EAFA,IAFA,EAFA,IAFA,EAFA,IAFA,IAFA,IAFA,IAFA,EAFA,E,W,K,I,O,M,O,M,K,I,Q,O,M,M,SCNN,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QAEA,IAAA,KAAA,KAGEkG,KAAQ,SAARA,IAwDI,MAAA,KAxDJA,QAyCsC,IAAA,KAAjB,EAAA,IACqB,IAAA,KAAjB,EAAA,IACkB,IAAA,KAAjB,EAAA,IACe,IAAA,KAAjB,EAAA,IAEE,IAAA,KADC,EAAA,IAGgB,IAAA,KAAjB,EAAA,IACe,IAAA,KAAjB,EAAA,IA9CD,UAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAFnB,MAAA,KAAA,QAFgD,IA2D9C,MAGqB,SAAmB,KAAnB,MAcWiO,KAAsC,EACzD,QADyD,KAAjB,KAE1D,MAE+B,MAAA,EAlFH,IAAA,KAAA,OAAA,cAAArO,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAgEuBoU,GAAAA,IAAN,E,KChFtB,SAAA,QAAV,MACf,E,K,UCKyB,SAAA,OAAY7L,MAAU,SAAA,KAAX,IAA+BA,MAAU,SAAA,KAAqBvI,MAAM,KAAU,KAAjB,IAAoC,MAAmD,MAArD,IAA0E,UAAD,IAC+H,MAAc,MAAe,MAAG,EAA5W,WAA0B,IAAiBod,OAA+B,KAAVA,IAAuB,QAAgB,OAAVA,IAAoB,KAAM,GAAyBpG,GAAzB,QAAA,SAAA,GAAWuG,IAAM,KAAA,MAANA,GAAcvG,IAAgB,KAAA,KAAjB,GAAbuG,GAA0C,IAAF,IAAxCA,EAA+C,GAAO,MAAP,GAAiC,SAAZ,QAAA,SAAA,GAAsC,IAAVH,IAAsB,IAAF,IAApBA,EAA2Co7B,IAAoC76B,IAAC,KAA/C,EAAA,IAAA,IAAA,IAAA,IAAA,IAAA,KAAN,E,UCAhP,MAAA,QAe6B,IAAA,QAChB,IAAA,QACH,IAAA,KAwImC,gBAAA,KAC1D,IACoC,KAAA,IAAlB,IADlB,I,a,SAIqB,UAuDJ,EAAA,KAAA,KAAA,KAiDR,KAjDQ,KAAA,KA8Gc,KA9Gd,KA4IT,KA5IS,OAAH,MAyJZ,EA9WW,OAAA3d,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAsQJ,QAIL,IAAA,OAGSkxC,OAAP,EAFQ,IAAA,IAAA,IAAR,EAwDyB,MAMvBrjC,GAAAA,IAA0B,MAA9B,IAEkBA,IAA0B,IAAjC,OAAJ,MAGL9T,MAAa,SAAIo3C,IAAJ,OACb,EAHKtqC,IAAA,EAAOgH,IAA0B,MAAjC,MAA2C,EAAA,IAAA,EAA3C,OADA,EADG,EAAA,OAiBVA,IAAoC,MACtC,EAKM,GAWJ,E,e,K,I,M,K,I,Q,O,M,K,WC5WJ,OAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxP,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAKV,MAAA,KAAa,MAWjC,EAhB8B,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAcxB,GACL,E,O,M,K,I,Q,O,K,MCRMhG,MAAG,KAAA,OAAA,IAAA,IAAV,MAiBA,EAfc,GAGkB44C,GAAAA,IAAS,KAAA,KAExC,KAC6B,KAIS,MACpCA,IAAS,KAAA,SAGX,EAR6B,GACjB,KAAA,E,KCvBY,SAAA,QAAV,MACf,E,S,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,MCMoF,UAAA,GAAd,IAAsDC,MAAW,SAAlB,GAA/C,YAAoJr1C,MAAD,IAAa,KAAA,IAAN,IAA8B,KAAD,gBAA1Gq1C,MAAD,IAAkC,KAAD,cAA8G,IAAD,IAAM,IAAD,IAAS,OAAO,MAAI,IAAK,IAAK,IAAmB,SAAA,KAAb,IAA+Bp4B,MAAhC,IAA+D,KAAA,KAAb,IAAiCC,MAAlC,IAAoE,UAAA,KAAd,IAAkC2jB,MACpc,MAAA,GAAd,IAAA,GAAyCyU,MAAS,MAAlBz7B,IAAhC,GAAwEy7B,MAAS,MAAW,MAA7Bz7B,IAA/D,GAA6Gy7B,MAAS,MAAW,MAAoB,KAACA,MAAS,MAAV,KAC2R,IAAK,UAAO,OAAK,IAAI,IACjQ,GAAhB,IAAkE,MAAA,GAAjB,QAAwI,KAAD,kBAArFC,MAAc,KAAA,OAAA,IAAA,IAAI,MAAF,IAAU,MAAgB,MAAK,KAAD,sBAAtH,KAAD,eACjL,MAAqC,SAA+B,MAAkC,MAA6B,SAA2C,MAAmC,KAAD,MAAiE,KAAD,MAC7Q,KAAD,MAA6N,KAAD,MAA4D,KAAD,MAA+C,KAAD,MAA+I,KAAD,MACpd,KAAD,MAA+C,KAAD,MACzC,KAAD,MACJr6B,IAAD,MAAiC,KAAD,MAAqG,EATpJ,aAAuB,KAAc,KAAA,KAA2CpH,GAArC,IAAiB+G,IAAAA,IAAW,IAAS/G,IAAC,MAAN,IAAgB,IAAO,OAAvD,IAA2E,EAAC,GAA0B,SAAL,IAAmB,IAA1B,EAA8B,aAAsB,KAAR,OAAmC,IAAW,KAAA,IAAG,OAAc,IAAoB,KAAUrS,IAAmEqS,KAA5F,IAA8CuG,IAAH,IAAA,IAAa,IAAML,IAAO,IAASlG,IAAC,MAAN,IAAuE,IAAUA,IAAC,MAAX,IAAqB,IAAO,OAA5B,EAA3DsG,IAAOtG,IAAC,MAARsG,IAAuC,IAAO,OAA9CA,EAAmB,IAAO,OAA1BA,GAArF,IAAiM,IAArP,EAC9M,MAAuB,MAAY,MAAbF,MAA+B,IAAS,KAAK,KAANA,IAAf,EAC8H,OAAwBtG,GAAAA,IAAEqH,IAAD,KAAX,IAAqC,KAAX,IAAmC,MAAJ,IAAkBg6B,IAAEh6B,IAAD,KAAiB,MAAF,MAAkBumB,IAAE3tB,IAAD,MAArD,EAAVohC,IAAEh6B,IAAD,KAAiFrH,IAAEqH,IAAD,KAAlI,IAAsI,EAAC,GAAe,KAAA,IAAIu6B,MAAC,KAAQj7B,IAAJ,GAAgB3G,IAAEC,IAAD,OAAX,IAAoCD,IAAEqH,IAAD,KAAI,IAAUhB,IAAEw7B,IAAG,MAAD1hC,IAAH,MAAX,IAAzB,IAAIuG,IAAEP,IAAD,KAAiD,EACra,wBAAiB,KAAA,IAAIH,IAAAA,GAAK,IAAI87B,IAAE57B,IAAD,WAAK,IAAfF,EAAqB,IAAUwB,IAAMo6B,OAAC,KAAU5hC,IAAEC,IAAD,KAAF,IAAL,OAAwBsH,IAAC,SAAzB,IAAA,MAAiDD,IAAC,IAAlD,MAA8DC,IAAC,QAA0B,GAAhB,IAA8K85B,IAAEphC,IAAD,KAA/K,KAA0BsH,IAAU,MAAQA,IAAC,MAAF,OAAyBA,IAAC,SAADA,IAAD,QAAwBpe,IAAoB,MAAA,IAAgB,GAAb,IAAmCoe,IAAIvH,IAAEC,IAAD,KAALsH,IAAU85B,IAAEphC,IAAD,KAAXsH,EAAbA,OAAU,MAAkBq6B,OAAC,KAAgB5hC,IAAEC,IAAD,KAAF,IAA7P,IAAwBsH,IAAC,SAAzB,OAAA,GAAiDD,IAAC,IAAlD,MAA6QC,IAAV,IAAgCvH,IAAEqH,IAAD,QAAI,IAAUhB,IAAEw7B,IAAG,MAADz7B,IAAH,MAAX,EAArC,IAAyF,OAAO,IAAI,IAA7B,EAAgB,EAAE,IAAO,IAAI,IAAG,EACrZjd,GAAAA,IAAoB,MAAA,IAAGyd,IAAvBzd,IAAyB6d,MAAzB7d,MAAP,EAAwC,MAAuB2d,GAAAA,MAAV,MAAwG,IAAxG,EAAmB3d,IAAoB,MAAA,OAAI,QAAkB2d,IAAC,MAAM,GAAS3G,KAAQ,IAAK,IAAbA,EAAE+G,IAAC,IAA2B,EAA/B,EAAC/G,KAAQ,IAAK,IAAbA,EAAE+G,IAAC,IAAgB,EAA6O,MAAA,IAAGH,IAAAA,KAAK,IAAIG,MAAC,IAAVH,EAAa,EAAC,KAAA,IAAkBhB,GAAAA,MAAE,QAAD,MAAF,IAA2C,EAA7BO,GAAAA,IAAEnd,GAAAA,IAAoB,MAAA,MAArB,KAAwB,EAHjR2W,GAAAA,IAAK,KAAA,IAAZ,EAAiFD,GAAAA,IAAK,KAAA,IAAGD,IAARC,IAAP,EAGhDkiC,GAAAA,IAAEl7B,MAAD,KAAG,EAAmHe,GAAAA,IAAa,QAAA,OAAM,EAAoB7B,GAAAA,IAAEc,QAAD,MAAK,EAChJ,KAAsB,QAAK,EAAgDF,GAAAA,IAAAA,GAAGb,IAAHa,KAAQ,IAAID,IAAEP,MAAD,KAAbQ,EAAiB,EAC1S,QAAY,OAAA,IAA8I,MAAIvb,MAAU,WAAC,IAAD,KAAf,GAAA,IAA7I,IAAWjB,MAAa,SAAA,KAAxB,EAAqK,EAA6Dqd,GAAAA,IAAP,EAAkExH,GAAAA,IAAEC,MAAD,KAAR,EAAmC,MAAmBuH,GAAAA,IAAP,GAAA,OAAA,OAAA,IAAuDA,IAAvD,KAA+DA,IAAG,IAAG,GAAY,IAAU,GAAE,IAApB,EAAkB,EAAE,IAAE,EAAmC,EAAW,EAChe,EAAW,EAAmC,UAAc,GAAA,OAAA,OAAA,OAAA,OAAA,OAAqEA,GAAAA,IAAG,IAAG,GAAY,IAAU,GAAE,IAApB,EAAkB,EAAE,IAAE,EAC7J,iCAAsBre,GAAAA,IAAoB,MAAA,QAAc,MAAX,SAAA,IAAkC,UAAoB,MAAX,SAAA,IAAyBsd,IAAzB,GAAoC,MAAA,OAAA,OAAA,OAAA,OAAA,KAA0F,KAAnB,KAAyCQ,IAAUG,IAAC,GAAA,GAAA,IAAL,EAAA,OAAA,IAAA,KAAA,KAAA,KAAA,KAA8EH,IAA4F,MAAG2mB,IAAE3tB,MAAD,MAAM0G,IAAAA,GAAGb,IAAHa,QAAQ,IAAID,IAAEP,IAAD,KAAbQ,EAAtF,MAAGinB,IAAEvmB,MAAD,MAAarH,IAAEC,IAAD,OAAR,IAAA,GAAiBD,IAAEqH,IAAD,KAALf,IAAb,GAAwBN,IAAAA,KAAe,IAAfA,EAAG87B,IAAE57B,IAAD,KAAK,IAAUG,IAAEw7B,IAAE56B,IAAH,MAAmD,EAC9Z,KAAA,IAAkBO,GAAAA,IAAD,IAAU,KAAP,EAAO,EAAiBA,GAAAA,IAAIrH,GAAAA,IAAD,IAAcmG,IAAO,KAAA,EAAA,MAAA,MAAwB,GAAE,IAAxC,EAAsC,EAAE,IAAE,E,KCItI,SAAA,QAGT,MAAkC,E,qB,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,OCXzC,IAAA,QACkC,IAAA,KAAV,OACd,IAAA,QACI,IAAA,KAST,MACC,IACI,IACH,IACD,EACA,KADA,KAAH,MAmCQjc,MAAK,KAAR,IACe,IACT,IACA,IAqBRxB,MAAM,KAAT,IAiCW,KAAY,EACf,KADe,KAUd,KAVc,KAkBtB,KAlBsB,KAAA,KAsBnB,KAtBmB,KAA3B,MA+BqB,UAGV,KAHU,MASd,KATc,MAAH,MAeA,KAAH,MAgBJ,KA2BkC,MAAC,EACpC,KADoC,IAAD,KAAxB,IAWH,QACH,QACD,QACN,IAAH,IACM,UAAA,MAAH,IAoEiB,EACf,KADe,KAIT,KAJS,KAAA,IAAH,IAoEX,IACE,IAYQ,EACE,UADF,IAAA,IAOC,EACC,UADD,IAKV,QALU,IAOS,EACR,UADQ,IAKnB,QALmB,IAOX,EACG,UADH,IAAA,IAOR,MAAA,IAAA,IAID,MAAA,IAAA,IAID,MAAA,IAAA,IAII,MAAA,IAAA,IAIW,MAAA,IAEb,IAFa,IAIb,MAAA,IAAsD,IAAtD,IACC,MAAA,IAAuD,IAAvD,IACG,MAAA,IAEJ,IAFI,IAnDL,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IA+YC,EACqB,KADrB,KAjRY,EACR,KADQ,KAAA,KAKR,KALQ,KAAA,KAAA,KAAH,IAgWI,EAAH,IAkFM,MAA8B,MAG9B,MAA8B,UA7J1C,MAsEL,QACe,M,S,S,qB,S,SAmKVwB,MAAK,KAAU,KAAW,KAAC,QAAD,KAA7B,IAIO,IAGW,EAChB,EADgB,KAEb,KAFa,KAFa,EAAA,KAAA,KAgD/C,GAAA,MAAA,iBAAA,SAAA,GAE2D,KAAA,QADzD,GAM4C,IAEvCye,IAA6B,KAAA,KADhC,GAEEA,IAAc,UAFhB,IAKMA,IAAc,IAAlB,GAKAA,IAEC,SAZH,EAMU5e,UAED83C,QADH,IADS,KAAX,EAURC,GAA4D,IAA5DA,Y,S,S,S,SACwBr5C,MAAG,KAAA,OAAA,IAAA,IAAV,IACKA,MAAG,KAAA,OAAA,IAAA,IAAV,IAOS,IAUV,IAoBW,EAAH,IA6CtBugB,IAA2B,MAAyB,MAAC,EACrC,KADqC,KAInC,KAJmC,KAAD,KAqCrB,KAAH,IAGT,IACG,KAAH,IAOnBF,IAAoB,MAAuC,MAAC,EAChD,KADgD,KAAD,KAWlD,MACc7X,MAAU,SAAA,KACXA,MAAU,SAAA,KAAb,IACKA,MAAU,SAAA,KAAb,IACMA,MAAU,SAAA,KAAb,IACAA,MAAU,SAAA,KAAb,IACGA,MAAU,SAAA,KAAb,IACEA,MAAU,SAAA,KAAb,IACOA,MAAU,SAAA,KAAb,IACAA,MAAU,SAAA,KAAb,IACQA,MAAU,SAAA,KAAb,IACNA,MAAU,SAAA,KAAb,IACGA,MAAU,SAAA,KAAb,IACjBA,MAAU,SAAA,KACVA,MAAU,SAAA,KACiBA,MAAU,SAAA,KAAb,IACxBA,MAAU,SAAA,KACVA,MAAU,SAAA,KACVA,MAAU,SAAA,KACkBA,MAAM,MAAT,IA0NP,EAAH,IACF,IACI,IACK,EAAA,KAAH,IAsOkB,KAsDlC,IAtD8B,IAuDH,MAAZ,IACU,MAAZ,IACS,MAAZ,IACa,MAAZ,IACG,MAAZ,IAC0B,MAAZ,IACe,MAAZ,IACM,MAAZ,IACU,MAAZ,IACF,IACE,IAYFhG,MAAI,MAAJA,GAAaA,MAAI,MAAjBA,QAAH,IACDA,MAAI,MAAP,IACGA,MAAI,MAAP,OAKiB,UACP,IAuLU,IAiBrB+d,IAA2B,MAA8B,KADrC,IAGV,IA4BQE,MAAH,IACDC,MAAH,IAWMzgB,MAAM,KAAU,KAAnB,IACH,IAAH,UACL,IAakB,EAAH,IACa,KAAf,IACsB,KAAf,IACP0gB,IAAH,IAkFoB1gB,MAAM,UAAb,GAAf,IAAkCA,MAAM,MAAxC,Q,S,U,U,U,U,U,U,U,e,U,U,U,U,c,U,U,U,U,U,U,UAAH,IACD,IACkB,IACR,IA0BL,IAAH,IACG,IACE,IACN,IAAH,IACK,IACO,IAeF,IAC6B,MAAvB,IAoEK,KAAf,IACU,IACF,IACG,IAkDN,IA2BF,IA+Pa,KAAU,KAAA,OAAA,IAAA,IAAE,MAAxB,IAiBS,EACf,KADe,KAMT,KANS,KAkBL,KAlBK,KA+BN,KA/BM,KAAH,IAyyBiB,KAAlB,IACY,KAAlB,IACH,EAAH,IACyB,KAAf,IACmB2gB,IAAD,KAAf,IACgBA,IAAD,KAAf,IA0Ca,KAAf,IAwBK,IAAH,IAM0B,MAAvB,IACsB,MAAvB,IACd,IACc,IACd,IACO,IACU,IACc,IACrB,IAsgBNC,KADW,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IA8BVC,KAgDDC,KA1Da,EAAA,KAEV,KAFU,KAAA,KAAA,IAWF,KAXE,KAoBN,KApBM,KAuBH,KAvBG,KA0Bd,KA1Bc,KAiCX,KAjCW,KAqDf,KArDe,IAAA,IAAA,KA4DL,KA5DK,KA+DR,KA/DQ,KAsEL,KAtEK,KAuED,KAvEC,KAgGhB,KAhGgB,KAAA,KAAH,IAmHRC,KATY,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAWd,KAXc,IAAA,KAeN,KAfM,KAmBT,KAnBS,KAAA,KAAA,KAAA,KAAA,KAAH,IAsCTC,KATc,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAWhB,KAXgB,IAAA,KAeR,KAfQ,KAqBX,KArBW,KAAA,KAAA,KAAA,KAAA,KAAH,IAiDlBV,IAA2B,MAAsB,MAAxD,GAFF,OAsBqC,KAAA,GAAf,IAA0CvgB,MAA1C,EAAgC+F,MAtsEpC,MAssEC,IAwD2B,MAAvB,IACL,IAmdK,UAAH,IAiiBA,KAAH,IAiBK,KAAH,IACK,KAAH,IAMF,KAAH,IAobqB,MAAA,GAAf,IAA0CmE,MAA1C,EAAgCyS,M,S,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,UAAnC,IACP,IAmByB,IAqNvB,IACS,IAqkBZna,MAAI,MAAP,IACyC,MAAvB,IACkB,MAAvB,IAC6B,MAAvB,IACT,IACE,IACJ,IACe,IACX,IACqB,KAAf,IACI,IACA,IACE,IACW,IACZ,IACK,IACC,IACP,IACS0e,MAAH,IACT,IACT,IACE,IACoB,IACZ,IACG,IACH,IACT,IACI,IACL,IACU,IA2kCd,KAAH,IAwuBU,KAAH,IAYFlhB,MAAG,KAAA,OAAA,IAAA,IAEUs5C,IAUS,KAI1B,KAAA,MAVQ,EACc,KADd,KAAA,KALiB,UAAA,MAAA,KAmBS,MACH,KACY,MACL,MAUN,MAMR,MAAhCC,MApB+B,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAeR,KAfQ,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,SAAA,QA6Bf,UAAA,GAApB,IACgCn4B,SAEJ,MAD1B,MAEyB,MAFzB,GAKgD,MAAA,KAAjC,IAGI,IACjB,EAAE,EAAa,I,S,U,U,U,U,UAE0C,EACnB,KADmB,KAAH,MAOnC,KAAH,MAQM,KAAH,MAYe,KAAH,MAYb,MACa,MAClB,KAAH,MA6BmB,KAAH,MAWGo4B,KAAH,MACqB,KAAH,MAId1yB,IAAH,MAAkB,EAzyIzCxlB,UAAK,KAAX,EAxmIF,cACiBG,MAAK,KAAU,KAAW,KAAA,EAAA,MAAA,MAE7B,WAAA,MACZ,EAAE,EACY,MAAA,KAEhB,EAWA,IACU,KAAA,MACG,IACX4f,IAA+B,KAACC,IAAD,EAAA,MACjC,EACA,IAWEC,GAAAA,IAA2B,KAAA,EAAA,MAAA,MACvBC,IAAJ,GACMA,IAAJ,KAKQlgB,UAAK,KAAX,EAJYmgB,MACJ,MACG,IAKbC,IAAAA,KAAoC,IAAqB,IAE7D,EAKA,OACkB,KAALC,MACWC,GAAAA,SAAmB,KAAtB,MACnBC,iBAAuC,MACpB,MACrB,EACA,KAC8B,MACF,KACtBC,GAAAA,MAAW,KAAf,KAEsBC,GAClBH,IAAmB,KADJ,QAGAG,GAAmC,KACnC,MACK,MACA,MACxB,IARQzgB,UAAK,KAAX,EAWJ,EACE,EAEF,EACE,EAEF,qBAMqB,MACH,MACA,QACiC,MAA1B,MACF,KAAY,MACjC,GAAA,QAAA,SAAA,GAC+B,KAAA,KAA7B0gB,GAC+B,IAA5B,GAEG,IAE6B,IAAd,OAFf,EACY,SADZ,EAD4B,KAAb,OADlB,EAKyC,MAAnB,IAEP,QAAlB,IAFyB,EACd,MAETC,GAHsB,GAItBC,IAJsB,EAGtBD,IAHmB,MAKKC,IAAH,MACzB,EAiEF,eAMU,MAAU,KAAlB,GAKe,KAAA,mBAAA,IAAA,IAAf,EAJqB,MAAc,KAAA,IACxB,uBAAA,IACT,EAIJ,MACQP,IAAN,KACQrgB,YAAK,KAAX,EAGc,MAAA,IACP,MAAU,QAAnB,IAAkC,MAAe,KAAA,KAAjD,EACF,EACA,GAC+B6gB,GAAAA,IAAH,MACG,IAAH,MACCC,IAAH,QAC1B,EAMA,OACS,IAAP,EAEF,OACS,IAAP,EAYF,GACc,MAALC,GAAwB,MAA/B,EAEF,GACa,QACX,IACA,IADwB/gB,YAAK,KAAX,EAGpB,GACmBghB,GAAAA,MAAkB,KACnBC,IAAS,IACzBC,GAauB,MACA,MACDC,IAAiB,KACd,MACA,MACgB,KACf,MACA,MACgB,KAVtB,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAYfF,IAAqB,IAvB1BC,IAC6B,MACM,MAAR,MACQ,MAAR,MACOC,IAAiB,KAApB,MACM,MAAR,MACQ,MAAR,MACwB,KAApB,MACK,MAAR,MACQ,MAAR,MACwB,KAApB,MAclCC,IAAmCD,IAAiB,KAApB,MAClC,EACA,GACoBF,GAAAA,IAAUD,MAAkB,KAAnB,IAC3BE,KAC2B,MACe,MAAd,MACc,MAAd,MACkB,MAAd,MACG,MAAR,MACQ,MAAR,MACOC,IAAiB,KAApB,MAC5BC,IAAoD,KAApB,MACrC,EACA,GACoBH,GAAAA,IAAUD,MAAkB,KAAnB,IAC3BE,KAC2B,MACe,MAAd,MACc,MAAd,MACkB,MAAd,MACG,MAAR,MACQ,MAAR,MACOC,IAAiB,KAApB,MAC5BC,IAAoD,KAApB,MACrC,EAyCA,QACE,OAIO,IAEHZ,GAAAA,MAAW,KAAXA,GAEAA,IAAW,KAAXA,GAEA,IAAA,IAAA,IAFAA,EACA,IAAA,IAAgB,KAAA,KAHhBA,EACc,KAAA,KADdA,GAFJ,IAHQxgB,YAAK,KAAX,EAWJ,QACE,IAIA,IACIwgB,GAAAA,MAAW,KACTA,IADN,GAKkB,KAAXA,GAA6C,IAAA,IAAA,IAA7CA,EAAoB,IAAA,IAAgB,KAAA,KAA3C,EAJiB,KAAsB,KAArC,GACY,KACZ,EAFgD,KAAA,MAAzB,EAFJ,IAHbxgB,YAAK,KAAX,EAWJ,QACEG,MAAa,KAAA,KAAbA,GAA8CkhB,GAAc,OAAA,MAAdA,EAAd,OAAA,MAAhClhB,EACF,EAGA,GACyBmhB,GAAAA,IACV,IACAvC,IAAoB,QAAjC,IACEA,IAAoB,MAAgC,SAAA,OADtD,EAMF,EAyDA,MACgB,KAAd,GACyB,QADzB,MAEOwC,MAAP,EAEF,qBACkB,IAAqCC,GAArD,GAAqC,KAAA,KAAgBA,IAAS,KAA9D,GACgB,KAAiB,GAAA,GAAjC,IAA8C,IAAL,OAAR,GAAA,GAAjC,IAC0B,OAA1B,IAAkD,IAAL,OAAN,GAAb,KAA1B,IACF,EACA,MACa,OACX,IACOC,GAAAA,MAA4B,KACnC,IACgB,IAAhB,GAAsD,OAAtD,IAQA,IAPQzhB,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,EAFiB,EAFA,EAarB,MAEa0hB,GAAAA,IAEF,MAAe,QAAwB,MAF1B,MADtB,GAM8BC,IACrB,MADmC,MAAjB,MAKhB,KADmC,MAAjB,MAI/B,EACA,GACE,GAAkB,MAAe,KAAjC,GACkB,MAChB,GAAA,GAA0B,MAAe,KAAzC,GACiBD,GAAAA,IAAuB,MAAe,OAA3B,MAC1BE,GAC+BD,IACtB,MADoC,MAAjB,MAKnB,KADmC,MAAjB,MAL3BC,EAWN,EACA,GACE,GAAkB,MAAe,KAAjC,GACwB,QACTC,GAAaL,GAAAA,MAAS,KACnCM,GAAAA,IAA6BC,MAAb,OAHlB,EAKF,EACA,MACE1B,GACO,MAAe,KADtBA,GAEEyB,GAAAA,IAAsB,MAAcC,MAApB,OAFlB1B,EAGF,EA0RA,QACM2B,GAAAA,IAAJ,MACyBpD,IAAvB,UAAA,0BAAA,YAAA,GACqBA,IAAc,IACjBoD,IAAwB,KAAA,KACxC,OAKKC,IAAO,mBAAZ,GACmB,MAAjB,KACQjiB,UAEDkiB,QADH,IADS,KAAX,EAIFD,IAAoB,IACM,MAC1B,GAAA,8BAAA,0BAAA,YAAA,GAEkC,IAE5BE,IAAuC,KAAA,KAA3C,MAKAA,IAA4C,IACA,KAC5C,GAYgB,OAAdzB,GACK0B,IACe,KADQ,SAD5B1B,EAXA,GAAA,EAAA,UAAA,SAAA,GACwC,KAAA,KAAtC2B,GAGED,IACyB,IADF,OAHzBC,WAkBJ,QACQriB,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,IA3BMA,UAEDsiB,QADH,IADS,KAAX,IAjBEtiB,UAEDkiB,QADH,IADS,KAAX,EAsDR,EACA,GACMK,GAAAA,IAAuB,IAA3B,GAKAA,OAAyC,MAC3C,IALUviB,UAEDwiB,UADH,IADS,KAAX,EASJ,YAMsB,KACpB,OACOf,GAAAA,IAA4B,KACnC,OACgB,IAAhB,GAAsD,OAAtD,UAQA,GAGa,KAHb,GAIa,KAAU,MAJvB,GAOE,EACc,IAChBF,GAAsB,KAAA,KAAtBA,OAC8B,IACQkB,OAEhC,IAFgCA,EACA,KAAC,kBAAD,UAAhC,IAEG,KAAU,MAAgB,IAAnCC,GAEa,KAAU,MAAgB,IAAmC,OADxE,IADFA,gBAAAA,KAIW,KAAU,MACjBC,IADiC,IAE1B,KAAC,KAAD,KAoCEC,IAAS,SAAf,IAEGA,IAAS,QAAf,IAEAA,IAFA,EACAA,IAAS,IADT,GAFJ,IA/DQ5iB,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,EAFiB,EAFK,EA+BZ,OAEc,KAAQ,QAA3B,IAAA,GAAkD,KAAQ,MAC3DyiB,GAAAA,IAFF,UAqBa,KAAQ,UACfG,IAAc,KADlBC,GAjBwB,KA4BN,KAXlBA,EACmB,KAAD,KAYtB,EA9B4B,UACF5D,GAAAA,IAA2B,MAC7C0D,GAAAA,IACwB,KAAxB,EAAA,KAFyD,KAAA,UAAA,IAAA,MAIxC,MACQ,MAAA,KAEL,KACXxiB,QAAM,IAAW+I,IAAZ,QAFhB,IAO4B,IAArBC,IAAS,IAFV,GALN,IAQA0Z,GAAAA,IAAW,MAAe,KAACA,IAAa,IAAA,IAAkB,KAAA,KAAhC,MAC5B,EAEmB,IACbH,GAAAA,IAAS,KAAuC,MAC9CC,IACAE,GAAAA,IAAW,MACXA,IAAW,MAHmC,OAKhDA,IAAW,MAAXA,GACIA,MAAuB,MACzBA,IAAW,MAAe,KAACA,IAAD,EAAA,MAC9B,EAgBZ,gBACwBD,GAClBpC,GAAAA,MAAW,QAAXA,GACW,KADXA,GAIJ,OAEiCmB,GAAAA,IACtB,QADoC,MAAjB,MAIb,OALf,IAAA,IAUoC,KAALtB,GAA4B,IAA/B,MACtBG,IAAiB,KAAN,KAAXA,GACoC,KAAN,IAAA,IAAH,MAD3BA,EAFJ,IAQO,KAAwB,KAAA,KAFpB,GANX,MAFwB,MAP1B,EAkBJ,EACA,SACUsC,GAAAA,IAED,MAAe,KAAwB,gBAF1B,IAMpBC,IAA+B,OACjC,EACA,wBACkB,IAAhB,GACW,KAAA,QACK,KAAd,GACyB,QADzB,MAEOxB,MAJT,GAMgB,KAAiB,GAAA,GAAjC,IAA8C,IAAL,OAAR,GAAA,GAAjC,OACA,GAE4B,OAA1B,IAAkD,IAAL,OAAN,GAAb,KAA1B,MAFuB,IAAL,OAGtB,EACA,MACElB,GACO,MAAe,KADtBA,GAEE2C,GAAAA,IACO,MACLC,WAFgB,IAFpB5C,EAQF,EACA,GACE,GAAkB,MAAe,KAAjC,GACkB,MAChB,GAAA,GAA0B,MAAe,KAAzC,GACkByC,GAAAA,IAET,MAAe,kBAFM,IAM5BC,IAA+B,OAPjC,EAUJ,EAsFSo1B,GAAAA,IAAiB,QAAA,KAAjBA,KAAP,EAEF,QACW,KAAT,EAGF,MACM/yB,GAAAA,IAAJ,KACoB,IAEXC,MAAkB,MACjB,EACY,IAFpB,EACQ,IACY,IACtB,IANmC,KAAT,EAS5B,OACE,MAC2B,MACF,KACnB7E,GAAAA,IAAW,KAAf,GAQE8E,GACEC,IAAe,OADjBD,EALuB,KAFvB,IAEyD,MAAA,MAFzD,GAKEC,IAAoC,IAAsB,IAA3C,OAFd,GADoB,KAFvB,IAEyD,MAAA,IAFzD,KASkB,MACA,MACN,MAAA,IAAd5hB,GAAqB,KAAoB,MAAA,KAE7C,EAEA,KACoBy0C,GAAoBC,GAAAA,IAC7BL,GAAAA,SAAkB,OAE3B,IAA8B,KAA9B,mBACAxyB,IAAe,KAAD,KAsChB,EAtCiB,IACkBpf,GAAAA,IAEM6b,GAAAA,IAClB,WAFnB,IAKoC,UAClC2D,GACgD,MAC5CH,IACAlE,IACAmE,UAH4C,OADhDE,GAAAA,GAOYjE,IAAc,MAVzB,GADgB,WAFnB,IAgBA,IACgBA,IAAekE,IAAD,MAAjB,IACcA,IACjB,IACV,GACEC,IAEEC,IAFgB,MAIdF,IAAJ,GAIIzF,IAAJ,GAMJ,EALyC4F,MACnB,IACH,IAFb,IAJMhmB,UAAK,KAAX,EA0FR,KACE,QAA2C,GAA3C,IAEGkjB,GAAAA,IAAAA,GAAuCA,IAAD,IAAtCA,GACY,MADZA,IAEmB,KAAf,OAAP,EAJiE,EAMnE,4BACE,cACmB,GAAnB,cACiB,GAAjB,UAEOC,GAAAA,IADP,OAGOC,IAHP,OAKOC,IALP,OAOOC,IAPP,OASOC,IATP,OAWOC,IAXP,cAciB,GAAjB,OACc,KACLC,IADP,OAGOC,IAHP,OAKOC,IALP,IAYOC,IAZP,IAmBOC,IAnBP,OAoBoB,MACL,MAEFC,UAA6B,KAAL,KAA/B,EACA,EAER,KAZyB,KAAJxS,KAAAA,GACb,IAEIwS,OAA6B,KAAL,KAAxBA,MAFJ,KAFF,KAPoB,MACT,QACXxS,MACoB,KAATyS,GAAkC,KAAlCA,MAAAA,GACD,WAAc,QAAA,IAAd,GAFVzS,GAGA,KAPY,MAAS,KAAbA,MAAAA,IAAD,IAAP,KAFY,KAAJA,MAAAA,IAAD,IAAP,MALF,MAFA,MAFA,MAFA,MAFA,MAFA,KAH0B,KADa,KAAJA,GAAwB,KAAxBA,KAAP,EADd,EA8CpB,yBACkB,KACH,uBAgDU,OAAnB,QAEA,OAA8B,EADjB,KAAJA,GAAwB,KAAxBA,KAAP,MARF,MAFA,MAFA,MAFA,MAFA,MAFA,EAFgBgS,GAAAA,IAAThS,OAAP,EAFOwS,GAAAA,MAAwB,KAA/B,MAFA,MAFA,MAFA,EAFA,MAFA,EANe,MACC,KAALE,GAA0B,KAA1BA,MACL,KAAJ1S,GACG,QAAe,QAAA,IAAf,GAJL,MAFA,EAFY,MAAS,KAAbA,MAAAA,IAAD,IAAP,EAFY,KAAJA,MAAAA,IAAD,IAAP,MAFA,EAkDJ,EAEF,WAGW,WAAT,GAKiB,KAAJ2S,IAAP,IAAmD,KACtC,cAHjB,KAH8B,cAAX,GAAiC,KAAtB,cAAX,GASJ,UAAV,OAAP,EAEF,GACMC,GAAAA,MAAsB,KAA1B,IAEF,IADUlkB,UAAK,KAAX,EAEJ,OACuB,eACrB,GACckkB,GAAAA,IAAsB,KAClC,MAEOC,OAAP,IADQnkB,UAAK,KAAX,EAIa,iBACf,OACqB,KACrB,OAQW,KAAkB,KAA7B,OAQK,KAAa,iBAAlB,OAE+C,gBAA7C,cACE,eAMA,IAMiB,gBAbnB,eAeA,GACwB,iBAAtB,cACE,eAMA,IAMiB,iBAbnB,eAeA,KACQA,UAAK,KAAX,EAKD,KAAL,SACQA,UAAK,KAAX,EA/CsB,KAAtB,GACE,IACA,IACiB,KAHnB,KAKMA,UAAK,KAAX,EAH4BokB,GAAAA,IAAe,KAAtB,EADOA,GAAAA,IAAe,KAAtB,EATV,cACX,OA0DO,QAAX,IAEQ,KAAU,KAAXhI,OAAP,IADQpc,UAAK,KAAX,EAIOqkB,GAAAA,SAA6B,OAC/B,IAAkBC,IAAwB,KAAjD,EAEF,OACgB,QAAd,IAAgC,QAAhC,IACgB,KACFA,GADd,IACcA,IAAwB,QACpC,IACW,KAHb,IAKA,EAHsB,EAHgB,EAYxC,OACsB,KAAb,QAAA,IAEHrF,GAAAA,IAAsC,MAGpCsF,OAHoC,OAF1C,EAQF,2BAKM/D,GAAAA,IAAW,KAAf,MAOK,MAAgBgE,IAAhB,OACOC,IAAV,IAAA,WAAA,YAAA,GACMA,IAAW,IAAf,GACqB,OACnB,IACuC,UACrC,GACiB,GAAf,MACgB,GAAhB,MACiB,GAAjB,IAGuC,MAAtB,GADZ,IAEkC,KAAtB,MAFZ,IAKoC,KAAtB,MAAf,IAC2B,KAAA,KAEV,OARhB,EADa,OAUlBA,IAAc,IACdD,IAAe,GAAA,OAfjB,KAZW,KAAU,GAAA,GAA3B,GAAqCA,IAArC,IACEE,IAEM,IAF2B,OADR,GAAA,GAA3B,GAAqCF,IAArC,IA+BJ,EACA,cAME,GAAA,IAA6C,EAC7C,GAAA,GACSG,MAEHC,GACAC,GAAAA,IAAmB,OAHhBF,EACHG,GAAAA,IAAiB,OADrB,EAKGtE,GAAAA,IAAW,KAAhB,GAA+BA,IAAW,KAA1C,GACSuE,kBAAc,IAArB,EACEvE,IAAW,KAAf,GAA6BA,IAAW,KAAxC,GAyBOA,IAAW,KACduE,IAEE9F,IAAwC,MAHvCuB,GAUuC,gBAH5B,IAPXA,EAGuC,gBAF5B,IADlB,EAvBc,KAAkB,KAA1BoE,IAA8D,KAA9DA,EAA4C,KAA5CA,UAEJ,IACkBI,IAEN,IACA,YAHwB,IADR,SAA5B,IAOmB,iBAAnB,IACkBH,IAEN,IAFyB,OADR,GAAV,WAAnB,IAMmB,WAAnB,IACkBC,IAEN,IAFuB,OADN,GAAV,QAAnB,IAMA,EAgBJ,WACE,GAAe,EACVtE,GAAAA,IAAW,KAAhB,GACSuE,IAELE,eAFmB,IAArB,EAM0B,aAA5B,IACkBH,IAEN,IAFuB,OADG,GAAV,QAA5B,IAMA,EAEF,WACE,GAAe,EACVtE,GAAAA,IAAW,KAAhB,GACSuE,IAGLE,eAHmB,IAArB,EAM0B,aAA5B,IACkBJ,IAEN,IAFyB,OADC,GAAV,QAA5B,IAMA,EAEF,kCAEE,GA0BQK,gBA1BR,uBAAA,YAAA,GACwC,UAAtC,GAC0B,IACA,IACT,MAAf,IACmC,GAAf,MAAA,KACJ,MAAhB,IAEkB,GAAhB,MAAA,KACFT,IAAAA,GAAgBA,IAAoB,IACpC,GAA6C,IAA7C,mBAcK,OACc,GAAjB,OAIuC,MAAtB,GADZ,IAEkC,KAAtB,GAFZ,IAkBS,IACM,IACCO,kBAAkB,IAM/BR,IAAJ,IAAA,MAAA,YAAA,MAEGE,IAAiC,OAKtB,gBAPd,KAtBF,IAEwC,MAAtB,GAAf,IAEGQ,IAAa,MAFhB,EACuB,MAAA,MADvB,YAFH,MAOyC,KAAtB,MAAf,IAC2B,KAAA,KAD3B,MAGEC,GAAkC,KAEnC,UAZL,KANAD,IAAa,kBAAbA,YACIC,GAAkC,KAAa,aADnDD,KAfe,GAAjB,IAIyC,MAAtB,GADjB,IAEuC,KAAtB,eAFjB,OAKyC,KAAtB,MAAf,IAC2B,KAAA,KAEJ,aAR3B,KAFsB,gBADxB,KAoDN,GAAA,MAAA,oBAAA,YAAA,GACsB,UAApBnJ,IACsC,IAAnC,GAAA,MACEoJ,GAAyC,IAAxBpJ,IAAjBoJ,GADF,GAAA,MAEuB,OACtBpJ,IACgB,GAAb,IACoC,MAAtB,GADd,IAEoC,KAAtB,GAFd,IAOoB8I,IAAmB,OAPvC,QAGMM,GAAkC,KAAe,IACpDV,IAAAA,GAA8B,EAAH,IAC3BA,IAAW,OAAXA,GACIA,IAAsB,IAAQD,IAAe,GAAA,OADjDC,GANN1I,MAHD,MADHA,KAiBF,EAEF,KAAA,OAAA,IACS,KAAP,EAAO,IAEHzJ,GAAAA,IADF,GAEwBrO,IAAO,UAAd,GAFjB,IAE+CA,IAAO,MAFtD,GAKF,EADWqO,IAAc,KAACrO,IAAD,EAAA,MAArB,EAqEN,GACMgiB,GAAAA,IAAJ,GAA0CA,IAAY,UAAnB,GAAnC,IAEIA,IAA8B,MAC5BC,IAGa,KAAQ,QAAZC,MAAT,UAJ4B,IAMhC,EAAE,EAAa,EACnB,EAIA,QACG,IACM,IAAuBviB,GAAAA,MAAG,KAAMwiB,IAATxiB,UAAP,OAAvB,EAIF,GACkB,GAARyiB,IAAR,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,IA6CI,EAFA,EAFA,EAFA,EAFA,QAFOA,IAAP,QANOA,IAAP,EAjBA,EAFA,EAFA,EAFA,EAFA,EAFA,EA8CN,gBACyB,MACvB,OAEuB,MACH,YACIC,IACxB,IAQwC,GAAfA,IACrB,MAEI,IACaC,GAAAA,IAAuB,KADpC,EADaA,GAAAA,IAAuB,KADxC,EARgD,GAAtBC,IAC5B,IAEiB,MACb,IACeD,GAAAA,IAAuB,KADtC,EAFaA,GAAAA,IAAuB,KAU1C,OACA,IAAA,IAGSE,IAHT,IAIiC,GAAZC,IACO,GAAXD,IALjB,UAAA,UAOqCE,IAPrC,OAUOD,OAAP,OAAuCJ,IAAJ,IACpB,SACf,IACkB,MAAwB,IACjBM,SADvB,IACuBA,IAAK,KAAV,IAEI,IAAR,IADQ,IAEL,GAAJ,OAJb,IAKF,EATE,EAVmB,EAlBG,EAuC1B,MACE,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAqCI,QAFA,QALA,QANOC,IAAP,KApBOA,IAAP,EAoCN,WACa,YAAJV,OACA,IAAoBA,MAAAA,MAAAA,GAA3B,EAGWW,GAAAA,OACO,IAAA,YACXA,IAAP,OAA2D,IAC3D,EAEF,MACqB,MAAoC,KAAA,KAAhB,GAAvC,IACA,EAEF,MACM,MAAa,IAAA,YACjB,MACuB,MAAwB,MACpC,MACOF,GAAAA,MAAK,QAAV,OACG,IAClB,EACA,sBACiC,MAAgB,GAApBT,IACV,MACE,MACH,MACZ,MAAa,IAAA,MACb,MAAiB,IAAA,MACjB,MAAe,IAAA,MACE,MACA,MACL,MACKS,GADrB,IACqBA,IAAK,KAAV,IAES,IACJ,IACN,IAHJ,IAIe,GAAJ,IANtB,IAQF,EACA,cACgC,MAAe,IAAA,MAC7B,MACKA,GADrB,GACqBA,IAAK,KAAV,IACL,IACRG,IAA8B,IAAJZ,IAA1BY,OAAAA,GACM,IAAS,IAAA,IACM,GAAJ,IALpB,GAOF,EAEA,kBACW,GAAJ,IACE,IACH,YACSV,IAAP,OAAA,GADF,GADJ,EAQF,EACQrmB,YAAK,KAAX,EASUgnB,GAAAA,OACJsxB,UAAN,OAAsB,IAAtB,GACeA,IAAH,IACZ,EAEF,OACmB,GAAjB,IAGgB,KACdH,GAAAA,IAAoB,KAAA,KACpBI,IAAoB,KAAA,KAChB,MAAkB,KAACC,IAAD,KANxB,EACEL,GAAAA,IAAoB,KAAA,KAAQI,IAAoB,KAAA,KADlD,EAQF,EACA,GAC0B,MAAU,OAAlC,IAC+B,MAAc,OAAC,KAAD,KAG7Ct5B,GAAAA,IAA2B,MAAsB,MACjC,KADiC,QAIjD,IAR2C,EACG,OACxB,MAAb,IAAyC,KAAhD,EAUJ,WAGwB7b,MAAAA,IAAf,IAAA,IAAP,EAEF,SACS+jB,GACHC,GAAAA,IAAyB,KAAFD,GAAoB,KAApBA,KAAAA,EAAD,OAD1B,EAQO,KAAA,IAAP,EAGIvM,GAAAA,MAAJ,IACqByM,IAAWzM,IAAD,OAAb,MAAwByM,IAAWzM,MAAM,IAAUA,IAAK,GAAA,IAD1E,EAEF,EACA,GACEA,GAAAA,IAAK,GAAA,IACLyM,IAA0B,KAAT,OACH,QAChB,EAKA,MACmC,KAAK,MACtC,GAA0BhI,GAAAA,IAAP,EACU,KAC7B,GAEU,MAFV,IAKc,EAEd,GAAA,QAAA,SAAA,GAAwD,IAAlB,IAAtC,EACA3V,GACmC,KAC0B,MACF,MAC3D,EARiB,MAAf,EAUJ,GACa,QACJ,IAAA,KAAiBqS,IAAxB,EAGAuL,GAAAA,IAAIC,MAAD,KACCC,IAAD,KACL,EAEMA,GAAAA,IAAkB,KAAanI,IAAnC,IAIAoI,IAAKD,SAAD,MACCD,OAAD,MACN,IALUvnB,YAAK,KAAX,EAMJ,UACsB,QACT,MACuB,UAAf,GAAnB,IACmC,MAAA,IACnC,GAAA,QAAA,SAAA,GACQ0nB,IAAN,KACQ1nB,MACH2nB,GAAAA,MAAyB,KAAzBA,MAAAA,IAAD,IAAA,QAAA,IADS,KAAX,EAMGC,GAAAA,MAAO,EAAD,OAAb,EAVoD,EAYtD,GAEqC,QAAhC,GACe,MADf,GAEDvI,GAAAA,IACgBmI,GAAAA,IAAkB,KAArB,IACfC,IAAKD,MAAD,MACCD,IAAoD,KAArD,QACJ,EAEF,MAC+B,KAC7B,KACQvnB,YAAK,KAAX,EAIqB6nB,GADvBC,GAUIR,IAAIC,MAAD,KAVPO,EACuBD,IAGjBE,SAHoC,OAKa,MACnDT,IAAIC,IAAD,KACCC,IAAD,KACHC,IAAKD,IAAD,MAERC,IAAKF,MAAD,MACN,EACA,MACU/J,IAAAA,KAAY,IAAA,MAAW,IAAU,IAAV,IAAX,GAAZA,GAA6CA,IAAAA,GAAWF,IAAXE,GAArD,EAMF,gBACOwK,GAAAA,IAAL,MAAqCC,IAArC,OACqB,MAEQC,IAEbD,UACc,OAAe,KAAzC,UACsB,IACpB,GAAsB,QAAtB,OAFiD,SAAV,KAAzC,IAKS,MACkB,IAK7B,GACwB,IACA,IACxB,EAPE,EACgBA,IAAT,IAAmCA,IAAe,WAAChiB,IAAD,KAAlB,IACvCkiB,IAAiBC,IAAmBC,IAApB,MADhB,EAGQ,EACc,MACA,IACxB,EAEF,EAQF,KAC4BC,GAAAA,IAA1B,IACsBC,IAAYC,IAAF,GAAA,IAAD,IAAZ,IACdD,IAAUC,IAAe,IACxBA,IAAF,GAAA,IACCD,IAAyB,IAJJD,IAA1B,IAK0BG,IAA1B,IACyBC,IAAUC,IAAF,GAAA,IAAD,IAAV,IACjBD,IAAQC,IAAa,IACpBA,IAAF,GAAA,IACCD,IAAqB,IACpBC,IAAF,GAAA,IACCD,IAAqB,IANAD,IAA1B,MAOF,EAGA,QACMG,GAAAA,IAAQ,MAAZ,UAEe,GADf,SAAA,OAGe,GAHf,OAAA,SAOYjqB,MAAW,KAAA,KACbA,MAAW,KAAA,KACZ,KAAiB,KAA1B,IAC6B,OAA7B,IACwB,IAEnBO,IAAmB,KAAA,MADtB,GAEG0pB,IAAa,IAAkB,IAAvB,MAFX,KAIE,EANuC,GAAd,KAA7B,MAQA,IATmC,IAHjC,IAPwB,EAqB5B,GACe,KAAb,GAAA,UAAA,UAAA,UAAA,MAAA,OAAA,OAAA,OAAA,OAAA,QAkBI,EAFgBC,GAAAA,IAAoC,SAAN,MAA9C,EAFOA,GAAAA,IAAoC,KAAK,UAAX,MAArC,EAFOA,GAAAA,IAAoC,SAAN,MAArC,EAJOzB,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,IAA4B,SAAN,OAA7B,EAmBN,OACE,IAGakI,GADX,GACWA,OAAa,KAAjB,IAC6B,QAFpC,GAIA,EACA,EACuC,SAAhC,IAAmD,UAAnD,IAAA,IAAP,EAGJ,QACE,GAA0B,MAA1B,GAQA,EAPc1H,GAAAA,IAAO,EAAD,MACG,MACrB,GAAA,QAAA,SAAA,GACsB,IAApB7L,IACkC,IAAZ,IADtBA,EAEF,EASwE,KAAA,IAA1B,IAAxB,MAC1B,EAEqB+M,GAAAA,IAAW,KAC9BxB,IAAIwB,MAAD,QACkB,MACvB,EACA,WACE,IACwB,KACf,KAANC,IAAD,IAGI,IAAA,GACU,KAAT5E,IAAD,IADA,GAEU,KAAW,IAAA,MAFrB,EAFQ,KAAW,IAAA,MACnB,IAAgC,KAAW,IAAA,MAI/C,IACe,KATjB,MAWF,EACA,GACyB,GAAA,MACyB,IAAxB,IACO,KAC/B,IAAA,GACyB,MAAvB,IADF,GAEwB,QAAd6E,MAAP,MAA+D,IACpC,MAH9B,EAIF,EACA,GACqB,MACfC,GAAAA,IAAJ,IAEgB,EAAA,IAAA,OAAA,IACHC,IAFX,IAa+BA,IAA0B,MAA7B,IAb5B,EAIeC,IAAb,IAIqB,IACrBA,IAAuC,IAAA,IAAA,KAAH,MAKxC,IATYnpB,YAAK,KAAX,EAYR,GACWopB,GAAAA,MAAT,IAEIA,IAAqB,KAAA,KAFzB,EACwB,IAAA,IAAH,IADrB,EAGF,EACA,MACyB,QACvB,IAE+B,KAAd,MAAuC,MAFxD,EACiB,MAAYC,GAAAA,OAAyB,KAErC,MACVC,GAAAA,aAA6B,MAApC,EAEF,QACa,KAAM,IAAA,MACU,KAC3B,IAAgC,KAAM,IAAA,MAER,KAA9B,IACc,KAAW,IAAA,MACG,KACxB,IAAgC,KAAW,IAAA,MAEjB,WAL9B,IAMsB,UAAf,IAA+B,KAAtC,EAGF,GAEoB,KADE,UAAA,MAIV,UAJU,MAAH,QAOnB,EACA,MACmB,KACH,KAAdN,IAEsB,KACM,MACD,MACR,MACC,MALY,EAAA,IAAA,KAAA,KAAA,KAAA,KAAH,MAD7BA,EAQF,EAES,aAAA,SAAA,MAAP,EASF,SACyB,OACvB,OACyB,MACdO,GAAAA,OAAAA,MAAX,IAQqB,MACrB,IAE2B,KAAV,MAA+B,MAFhD,EACiB,MAAYF,OAAyB,KAE/B,MAChBC,OAA6B,MAApC,EAZ2B,KACzB,IAE2B,KAAV,MAA+B,MAFhD,EACgB,MAEG,MACZA,OAA6B,MAApC,EARwB,EAiB5B,SACe,OACb,IAAqC,YAAiBvC,MAAtD,IACwB,KACJ,MAAR,IACN,IACO,MACXyC,GAAAA,MAAiB,MALnB,EAOF,EACA,QAC4B,KACA,KAC1B,IAEqB,KAFrB,IAoCsB,MACtB,IAEwB,MAFxB,EAC0B,MAEN,QACtB,EAnCiB,aACb,IAGsB,MACL,MACD,KACI,MACC,KALL,EAAA,KAAA,KAAA,IAAA,KAAA,IAAA,OAQZ,IAE2B,SACd,WAZf,OAcA,IAE2B,SAGT,KAGH,MACC,MALV,EAAA,IAAA,KAAA,KAAA,KAAA,KAOkB,QAC1B,EAQJ,6CAMqC,KACrB,KAAA,IACa,MACH,MACF,MAAO,QAC7B,IACO,MAAe,MAEoB,KAClB,SACtB,IAEwB,SAEa,QACrC,IACqB,KACI,SACvBC,IACG,IAEqB,MAFrB,EAC2B,MAEL,SAE7B,OACsB,oBAKW,MACG,MAC3BC,IAAL,IAsDqB,KACI,MACC,KALL,EAAA,KAAA,KAAA,IAAA,KAAA,IAAA,UAQjB,IAG2B,YACZ,OA/DnB,QACE,IAIqB,KACI,MACC,KALE,EAAA,KAAA,KAAA,IAAA,KAAA,IAAA,IAAH,SAaT,KAAd,IAAA,IAAA,UAAA,OAyBkB,UAzBlB,EAc0C,KAAdV,IAAAA,IAAJ,MAEG,MAEN,MAAf,IACuB,KAAA,OADvB,MAGF,UAAA,IACWpB,IAAO,EAAD,UACjB,EArBuB,MACJ,SAAnB,IACgC,KAAA,UAwBjB,KAArB,IAAA,GACoB,MAAlB,IADF,qBAAA,GAE2B,KAAM,IAAA,MACZ,MACnB,IAEmB,KAAA,0BAFnB,EACqB,IAAA,IAAH,2BAgBK,gCAC3B,OAC4B,MAAO,KAAjC,IAI8B,KACV,MACK,MACf,MAAe,2BAPzB,KASJ,OACe,MACM,MACD,MACP,MAAO,YACpB,OAIO,IAAkC,MAAa,SAA/C,EAFsB,MAAT,IAA+B,QAAjD,IAGF+B,IAA8B,IAAA,IACD,MACQ,MAEzC,EACA,YAC8B,MACP,MACrB,IAGgC,OAF9B,IAK2B,IACN,KACnB,IACiB,MACI,GAAnB,IAKa,KAAA,KAXF,GADe,KAF9B,MAiBJ,IAPgB3pB,UACJ,MADS,KAAX,EASV,GAMuB,aAC8B,WAEjD,OAAA,IAEI4nB,GAAAA,IAAO,EAAD,OACgB,MACR,OAApB,IACiB,KAAsB,MACzC,EA6CA,YASiC,KACY,UAArB,GAAf,IAEC,OAAJgC,GAAsB,KAAU,QAAhCA,GACCC,GAAAA,SAAY,MAAb,GAAA,GAAsCA,OAAY,MAAb,GAArC,GAHG,EACiC,SAAA,OADxC,EAMF,QAEsBxK,GAAAA,IACF,UACL,GAAb,IAAA,IAEwByK,MAAiB,KAAjBA,GAEhBtC,IAAkB,KAFFsC,EAChB/B,IAE2B,MAE7B,IAAA,GAAoChM,IAD3B,GAGPsD,IAHO,EAEP0K,IAAgB,MAFT,GANf,EACexK,OAAW,UASX,KAAA,aAAA,IAAA,IAEA,OAAb,IAAsC,SAAtC,IAAmD,KADzB,MAEbyK,IAAH,MACY,MACJ,MACpBC,GACmC,KAC0B,MACF,MAC3D,EAEF,SAM2B,KACK,UAAf,GAAf,IACoC,MAAA,MACN,MAAf,GAAf,IAC2C,MAAA,MACnC,KAARvgB,IACEsgB,GAAAA,IAAyC,MAAmB,OAAnB,OAD3CtgB,EAEF,EACA,SAC+B,KACf,MACiB,KAAjB,MACEwgB,GAAAA,IAAH,MACbC,OAAqB,KACC,UACT,GAAb,MAAA,IAEoBL,IAAiB,KAAjBA,GAEZtC,IAAkB,KAFNsC,EACZ/B,IAEgBgC,IAAgB,MAAnB,MALrB,EACwBxK,KAAW,KAAd,MAKU,KAAjB,MACI,UACH,GAAf,IACG6K,kBAA0B,IACK,KAAjB,MACS,MAAX,GAAf,IAAA,GACgC,MAAf,GAAf,IADF,GAEiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GAFH,GAImB,KACa,MAAf,GAAf,IAC6B,MAAA,IACC,MAAf,GAAf,IACoC,MAAA,IACnB,KAAjBR,IACEI,IAAyC,MAAmB,OAAnB,OAC3CK,mBAAkB,IACc,KAAjB,MACa,MAAf,GAAf,IACiB,QAAM,IAAA,MACzB,EACA,UACuB,OACrB,IAEiB,OAFjB,QAAA,IAKa,MAAX,OAgCA,IAIY,MAAZ,KACQrqB,UACJ,QAAA,IADS,KAAX,EAMJ,IAVUA,UAAK,KAAX,EAhCiB,QACjB,GACmB,QAAjB,IAIkB,KAEpB,KACQA,UACJ,QAAA,IADS,KAAX,KAOF,IAEkB,KAFlB,IAG+B,KAAd,GAHjB,IAIS,KAAI,MAJb,YAOU,KAKQ,MAClB,EAPgB,KAAd,IAnBQA,UAAK,KAAX,EAoBM,GACGsqB,GAAAA,IAAY,MACdJ,GAAAA,IAATK,IAAoCD,IAAoB,EAAH,SAArDC,EACA,IAAgDC,IAAU,IAA1D,EAA6BA,IAAZ,IAAjB,EACF,EAiBN,KACgB7rB,MAAM,KAAU,KAAc,KAAA,KACtCqB,UAED,IAC0BrB,MAAW,KAAA,KAAe,SAAA,SAAjD,QAAA,IADH,IADH,UAAA,IADS,KAAX,EAQF,GACqB,MACC,QAAT,KAAX,EAEF,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IA+lBE,EA9lBA,MACM8rB,GAAAA,IAAJ,GAC6B,QAC3B,IAEkB,KAAA,KAFlB,EAC8B,IAAA,IAAH,MAAiC,QAAM,IAAA,MADlE,EAIJ,EACA,UACOA,GAAAA,IAAL,GAA6B,EAC7B,IACEC,IAAW,MAC6B,KAF1C,IAGA,EAEF,OACyBhsB,MAAG,KAAA,OAAA,IAAA,IAA1B,IAC4B,KAA1B,IAEmB,KAAkB,KAAlB,MAFnB,EACmB,KAAkB,KAAlB,MAEqB,KAJ1C,IAKA,EAGQisB,GAAAA,aAAoB,QACjB,QACE,MACb,EAEF,SACgB,MACTF,GAAAA,IAAL,GACkB,WAAM,IAAA,MAAtB,EACiB,OACnB,IAOQ,QAAM,IAAA,MACd,EANwB,KACpBG,IACc,QAAM,IAAA,SAHtB,EASJ,GACEH,GAAAA,IAAAA,GACmB,OAAjB,IADFA,GAEW,QAAM,IAAA,MACjB,EAEF,WACE,IAAqC,QAArC,IAMUI,GAAAA,MAAQ,MACJ,MACd,EANeC,GAAAA,KAA4C,UAAzB,OACf,MAFjB,EASJ,YAC2B,KACL3H,GAAAA,IAApB,SAQA,IAEU,KAFV,QAGkB,GAHlB,IAAA,IAKiB,KAAcU,IAL/B,IAMMkH,OAAW,KAAyB,KAN1C,IAcQC,KACC,KACA,KACA,KAEI,cALsB,IAQvBC,KAAS,OAAZ,MACG,MACZ,EAfaJ,GAAAA,IAAyB,OAAjB,MACJI,KAAS,OAAZ,MACG,MAHf,EAfOC,GAAAA,IAGE,KAAM,KAEN,gBALY,IAArB,EAiCJ,WACE,IAEe,QAFf,IAGS,KAAU,MAAyB,MAH5C,IAIS,KAAU,MAA0B,MAJ7C,IAWUL,GAAAA,IAAwB,KAANM,GAAmB,IAAnBA,EAAV,MACJ,MACd,EANeC,GAAAA,KAAyC,UAApB,OACjB,MAFjB,EASJ,WACE,IAAqC,QAArC,IAWUP,GAAAA,MAAQ,MACJ,MACd,EAXeQ,GAAAA,KAEE,gBAFqB,IAMnB,MAPjB,EAcJ,SAEkB,OADhB,QAAA,WAAA,WAaA,MAAA,IACkB,KACTC,GAAAA,IADP,OAeOlI,IAfP,IAyBOS,IAzBP,IA6BIrD,MAAW,KAAf,GAA6B+K,IAAa,KAA1C,GAWAC,KAAwB,MAzC1B,EA2CA,EAXkBH,KAEC,eAFsB,IAMnB,MAPlB,EAJqB,MACZI,GAAAA,IAAsC,QAAT,KAAlB,OAAlB,EAVcL,KAEC,OAFoB,OAKjB,MANlB,EAbWJ,KACC,KACA,KACA,KAEG,cALuB,IAQvBC,KAAS,OAAZ,MACG,MAVf,EAXUH,GAAAA,QAEC,OAFkB,OAKf,MANlB,EAsDJ,gBACY,IAA4B,KAEtB,OADhB,QAAA,WAAA,WAOA,IAAA,IACkB,KACTQ,GAAAA,IADP,OAKOlI,IALP,OASOS,IATP,IAeIrD,MAAW,KAAf,GAA6B+K,IAAa,KAA1C,GAIAC,KAAwB,MAE1B,IALW,IAEHN,GAAAA,oBAAc,IAFlB,EALmB,MACfQ,GAAAA,IAA8C,QAAT,gBAA3B,IAFZ,EAJe,OAARC,IACHC,GAAAA,kBAAY,IADhB,EAJe,OAARD,IACHE,GAAAA,kBAAa,IADjB,IANG,IAEHC,GAAAA,kBAAc,IAFlB,EA2BJ,iBAQkB,OADhB,QAAA,WAAA,WAQA,IAAA,IACkB,KACTR,GAAAA,IADP,OASOlI,IATP,OAiBOS,IAjBP,IA2BIrD,MAAW,KAAf,GAA6B+K,IAAa,KAA1C,GAKAC,KAAwB,MAE1B,EAL8C,KAAA,KAApBO,KACpBb,GAAAA,oBAAc,IAFhB,EAVqB,MACZc,GAAAA,IAIQ,QAAT,mBAJc,IAApB,EAPwB,KACD,QAAjB,IAAyC,KADvB,KAApBD,KAGFH,GAAAA,kBAAY,IALd,EANwB,KACD,QAAjB,IAAyC,KADvB,KAApBG,KAGFF,GAAAA,kBAAa,IALf,EANsC,KAAA,KAApBE,KACpBD,GAAAA,kBAAc,IAFhB,EAyCJ,6BAME,OAM2C,KAoBrBG,yBA1BtB,OASU,sBAARC,IAE4B,QACbR,IAGF,eAHY,IAMzB,OAIAjB,IAAAA,MAAAA,GAEmB,KAAjB,IAFFA,GAGEC,IAAW,MACOuB,IAAU,UAC9B,IAE6B,SAtBvB,kBAPR,IAM2C,mCAN3C,wBAmBI,mBAcsB,KAA1B,OAIA,OAgBaE,GAAAA,IAAoB,MACX,oBAFtB,OAKkBH,IAIH,kBAJgB,gBAO3B,IACGvB,IAAAA,GACsB,KAArB,IADDA,GAEgB,KACQ,QAArB,IAAiD,KADpC,KAGIwB,IAAU,UAK/B,IAE6B,SAF7B,SApBE,GADc,iBAFtB,OA2BAxB,QAAAA,KACkB,KAAC,KAAD,KAGlB,EA7C6B,KAGCwB,SAH5B,IACcR,IAAoC,IAAzB,gBACrB,IACwBQ,IAAU,UAKhC,IAE6B,SAF7B,SARoC,GAAf,iBAA3B,IAYA,EAfEG,GAAAA,IAAuB,MADzB,EA+CS1B,GAAAA,IAAY2B,GAAAA,SAAD,MAAlB,EAIN,kBAMmBd,GAAAA,IAAa,SACX,GAAnB,OAIqC,KAAA,KACrC,OAOmC,KAAA,kBALnC,OAM4B,KAeNU,+BArBtB,MASU,yBAARC,IAE4B,QACbR,IAAsC,gBAA5B,IACzB,OAIAjB,IAAAA,MAAAA,GAEmB,KAAjB,IAFFA,GAGEC,IAAW,MACOuB,IAAU,UAC9B,IAE6B,SAjBvB,GAAmC,KAAA,sBAP3C,IAM4B,yCAN5B,0BAcI,sBAcI,KAAR,MAEA,OAYaE,GAAAA,IAAoB,MAC1B,uBAFP,MAKUH,IAAiD,mBAApC,gBACnB,IACGvB,IAAAA,GACc,KAAb,IADDA,GAEgB,KAAc,QAAb,IAAiC,KAAlC,KACIwB,IAAU,UAC/B,IAE6B,SAF7B,SARE,GAAmC,KAAA,IADpC,oBAFP,MAeAxB,QAAAA,KACkB,KAAC,KAAD,KAGlB,EA7Bc,KAGgBwB,SAH5B,GACUR,IAA6B,KAAlB,gBACjB,IACwBQ,IAAU,UAChC,IAE6B,SAF7B,SAJmB,GAAmC,KAAA,IAAhD,oBAAZ,GAQA,EAVOG,GAAAA,IAAuB,MAA9B,IA9BMpsB,UAAK,KAAX,IALMA,UAAK,KAAX,EAgES0qB,GAAAA,IAAY2B,GAAAA,SAAD,MAAlB,EAIN,oBAMe,GAAb,IAAA,GACE,IADF,GAEU,KAAUlJ,GAAAA,IAAlBwI,IAFF,GAGmB,KAAjB,IAHF,GAAA,GAIsB,KAAM,KACX,GAAjB,IAAA,IACkB,KACTL,GAAAA,IADP,OAsEOlI,IAtEP,OA4GOS,IA5GP,OAuHIrD,IAAW,KAAf,MAOI+K,IAAa,KAAjB,MAOAC,KAAwB,MAtI1B,IAwIQ,QAAA,QAAA,IAiBJY,GAAAA,IAAuB,QAjBnB,KAGJ,IAAqD,QAArD,IAKKA,GAAAA,IAAuB,MACHtB,GAAAA,KAER,KAF2B,OAKf,MAX7B,EACKsB,GAAAA,IAAsD,KAA/B,MACHvB,IAAQ,MACJ,SAU7ByB,GAAAA,IAAgB,QAhBpB,EARWC,GAAAA,kBAAyB,IAAhC,EAPOC,GAAAA,kBAAsB,IAA7B,EAVqB,MACjBC,GAAAA,IAGgB,MAAT,gBAHa,IAFtB,EArCuB,KAwBd/B,MAxBP,IACuB,QAArB,IAuBKA,IAAW,MACqB,KAzBvC,MAG6B,QADzB,IAEmB,KAAU,MACjB,MAHZ,IAImB,KAAU,MACjB,MALZ,IAmBE0B,IAAuB,MAMThB,KAEP,KAF4B,OAKjB,MAjC1BhP,EAUQgQ,IAEmB,KAFI,MAIHvB,IAEV,KAARc,GAAqB,IAFK,MAIJ,SAkBzBW,IAAgB,KAAvB,EAvGsB,KAqCX5B,MAtCT,OAKW,QAAT,IAiCOA,IAAW,MACL,KAvCf,SAMkB,KACFvH,IAAZ,IAYO,KADA,IAES,GAFT,IAAA,IAIA,KAAcU,IAJd,IAKHkH,KAAW,KAAe,KALvB,IAOLqB,IAA0C,KAAnB,MACHvB,IAAwB,KAAhB,MACJI,KAAS,OAAZ,MAKG,MAExB,KA1Be,QAAf,OA4BFmB,IAAuB,MAKnB,KAAUjJ,IAAlBwI,IAScX,KACA,KACA,KACA,KAEG,YALwB,IAQxBC,KAAS,OAAZ,MAKG,SAtBjBU,EAC0BN,KACZ,KAAM,KACH,KAEH,UAJmC,IAMpB,SAP7BM,EAhCQS,IAA0C,KAAnB,MACHvB,IAEV,KAAM,KAFY,MAIJ,SAoD3ByB,IAAgB,KAAvB,EA6FV,GACYhN,GAAAA,IAAV,IAIA,IAHQtf,YAAK,KAAX,EAMFynB,GAAAA,IAAKiF,SAAD,MACCC,OAAD,MACCC,IAAsBtN,IAAvB,MACJgI,IAAIsF,IAAD,KACEA,IAAsB,IAAA,KAAvB,MACN,EAEEtF,GAAAA,IAAIsF,MAAD,KACCD,IAAD,KACCD,IAAD,KACL,EACA,GACEG,GAAAA,KAAgBH,IAAuB,OAAxB,KACeE,IAAoB,KAArB,KACO,SAElC,IAAA,OACA,IADA,OAEA,IAFA,OAGA,IAHA,OAIA,IAEO,SAAP3oB,IACI,EAAA,QAENA,IACGwjB,IAAKkF,IAAD,MACAC,IAAD,MACR,EAEED,GAAAA,IAAuB,QAAvBA,IACGrF,IAAIsF,MAAD,KAA4BD,IAAD,KADjCA,EAEF,EAEA,kBAI0D8rB,QAHxD,OACiB,QAAf,IAIsB,KAAf,IAAsC,KAAc,MAApD,IAEiB,QAAjB,IACD,KAAa,MACN,QACX,KAJe,KAAJx0B,OAAX,IAA8B,EAJd,QAChB,IAAqC,MAArC,IAAoDw0B,IAAI,IAAU,OASpE,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,QAlBb,GAAA,SAcqD,EAMrD,EAhBM,EAmBR,IACsB1rB,GAAAA,IAAqB,OAAzC,IACEA,IAAqB,IAAiC,MADL,GAA/BA,IAAqB,KAAzC,IAEAA,IAA4B,QAC9B,EAUA,EACQ/sB,YAAK,KAAX,EAIF,YACE,IAC4B,KAA5B,IAAmD,KAC5C4oB,KADP,IACOA,IAAiB,IAAa,IAAtB,MAAb,KAAyC,EADkB,GAAjC,KAA5B,IAAmD,KAAnD,MAEA,IAHuB,EAKzB,6BAQa,MAAA,IACc,IACG,MACF,MACN,MACpBoE,IACE,IAAoC,KAApC,IAEIC,IAFJ,EACIC,IAF0B,MAIb,MACfC,MAAJ,GAG8C,IAC1C,OAIe,IACiB,IAAd,IACQ,MAC1BH,IAAmCI,IAAH,MACb,MACZD,IAXT,GAaFH,IAAmCK,IAAH,MACNC,IAAT,IAAA,GAAiCA,IAAW,KAApB,IAC9B,IACiD,IAA5B,IAAd,IACU,IAC5B,GAIA,IAHQttB,UAAK,KAAX,IAhBUA,UAAK,KAAX,EAsBK,UAOFutB,GAAAA,MAAT,IAE0BA,IAAuB,MAA1B,IAFvB,EACKC,IAA4D,IAArB,MAErCD,IAAP,EAEF,EACeD,GAAAA,IAAb,IAIyBA,IAAW,KAJpC,EACwBE,IAAyB,OAE7C,IAA0C,KAA1C,GAGOD,IAAT,IAEIA,IAAkB,KAFtB,EACIC,IAAyB,KAE/B,OAIE,IAEW,IAEiB,KACfF,IAAW,KACXA,IAAW,MACfA,IAAW,MAJF,EAAA,IAAA,IAAA,KAAA,KAAA,IAOTC,IAAT,IAE0BA,IAAuB,MAA1B,IAFvB,EACKC,IAA4D,IAArB,MAD5C,IATQxtB,YAAK,KAAX,EAJiB,IACL,IAgBTutB,IAAP,EAEF,OACwB,MAAf,SAAqC,KAA5C,EAEF,SACaE,GAAAA,KAAwB,IACrB,MACd,OAIyB,MACXH,IACO,MACC,QACtB,IACE,IAC2B,KACI,KAAf,MACG,MAEF,MACJ,SAEf,OAC0B,KACP,gBAKQ,MAClB5D,IAAAA,IAAL,IAekB,KACO,MACH,MAJR,EAAA,KAAA,IAAA,KAAA,KAAA,UAOZ,IAG6C,YAC7C8D,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,aAzBhC,KACE,IAGkB,KACO,MACH,MAJwB,EAAA,KAAA,IAAA,KAAA,KAAA,IAAH,SAOxB,MAAN+D,GAEgB,KAAhB,MAFAA,EACD,MADCA,eAkBA,KA7BjB,mBAAA,UA+BA,IAE0B,SAC1B9E,IAAsB,KAAd,MAARA,KAA0D,IACxC,MACJ,MACA,MACS,MAEV,SACf,IAQO,IAAkC,MAAlC,EALsB,MACtB4E,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,IACT,KAJ1B,IAOU,KAAL,IAAA,IAA0B,MAA1B,IAAP,IAxEQ3pB,UAAK,KAAX,EA0EJ,KACaytB,GAAAA,KAAwB,IACrB,QACd,OAIyB,MACL,MACW,KACd,QACjB,IACe,MAC8C,QACpB,KAAjB,MAA4C,QAAlE,IAEA7E,IAAuB,KAAf,MAARA,KAA2D,IACzC,MACL,MAAb,IAA0C,MACnB,SAElB,IAAA,IAAA,IAAP,IAjBQ5oB,UAAK,KAAX,EAmBJ,EAAgC,EAChC,MACcwtB,GAAAA,IACHC,OAAwB,IACL,IACP7E,IAAa,KAAL,MAAT,GACpB+E,GACsB,QAAmC,IAC9C,MACXC,KAAaC,KAAqB,qBAAA,IAAgC,IAAA,IAAtD,MAIN,MADN,IAAA,GAGYN,IAHZ,OAGkCA,IAAkB,KAAc,QAAhCA,IAHlC,GAKO,WAAM,IAAA,MACXO,KAEEC,KAAwB,sBAAA,aAFhB,IAMGC,IAAb,IAIOtE,OAAAA,MAAP,IACEuE,KAAyB,OAE7B,IANUjuB,UAAK,KAAX,EAQN,GACO,WAAM,IAAA,MACH,KAAA,QAAA,IACMwtB,GAAAA,IAAyB,OACvC,IAIoC,MAChC,IAEyB,KAAA,KAFzB,EAC0B,IAAA,IAAH,MADvB,EAJgB,UACfA,IAAqC,MAChB,IAAA,IAAH,MAHvB,EAQF,EACA,MACY,SACM,MAChBU,GAAAA,OAAsB,KAAtBA,GAAgCC,QAAkB,KACpD,EACA,KAAA,OAAA,SACmB,KAAD,KAAhB,EACED,GAAAA,KAAuB3M,GAAAA,MAAD,KAAtB2M,GAAgCC,KAAmBnK,IAAD,KACpD,EAEF,UAC8B,MACjB,KAEwB,IACzB4E,GAAAA,IAAQ,MAAT,GAAP,EACA,IACA,EAGJ,GACaU,GAAAA,UAA6B,QACxC,IAAiB8E,sBAAqB,IACxC,EACA,GACaC,GAAAA,OAAuB,QACnB,MAAf,IAAkE,IAC/B,MAAjB,MAMKC,KALR,UAAA,KAAA,KAQL,MAC6BC,KAAqB,KAE1Df,MAF0D,OAAxB,MAKxB,KAAL,IAAA,IAAA,IAAP,EAGM,KAAA,OAAA,OAAA,QAAA,OAAA,IACGA,GAAAA,IAAyB,KAClC,IAIsB,MAClB,IAEoB,KACH,MACJ,MACS,MALtB,EACiC,MAAX,MADtB,EAJW,UACVA,IAAqC,MACT,MAAX,MAQtB,EAGOC,GAAAA,OAAwB,IAAE,KAAjC,EAEF,GACaY,GAAAA,OAAuB,IAClCb,IAAyB,QAAM,IAAA,MACVM,WACnB,MAGA/R,OAAAA,aAJ6B,IAAb,MAMpB,EACA,aACa0R,GAAAA,KAAwB,MAC5B1R,OAEMuR,MAAb,IACmBA,IAAW,KACR,SACpB,IAAqBkB,KAAmC,MAAjB,SAAvC,GAKFhB,IAAyB,QAAM,IAAA,MACVM,QAAW,eAAD,IAAb,MACpB,EAN2BA,mBAAU,IAAb,MAClB,EAOGW,GAAAA,wBAAe,IAAtB,EAGOC,GAAAA,wBAAgB,IAAvB,EAGOA,GAAAA,qBAAgB,IAAvB,EAGOA,GAAAA,wBAAgB,IAAvB,EAEF,YACqB,GAAnB,MAQA,MAAA,MAQF,MANsB,IACJ,MACZ,KAHF,QAPkB,IACb,KACH,KAHF,EAIIC,GAAAA,QAAG,KACL,EAOEA,GAAAA,MAAW,QACb,EAGN,UACS,QAAA,IAA8C,KAAC,IAAA,IAAD,KAC9CD,GAAAA,KAGLE,KAA2B,QAAA,uBAHN,IAAvB,EAOF,EAA4B,EAC5B,QACanB,GAAAA,OAAwB,MAC5B1R,OACa,KACpB,IAAA,IAGEyS,QAAkC,IAAhB,MAHpB,GAMqB,IAAA,IAAA,IAAH,MAClB,IAFkB,IAAhB,EAIJ,KACaf,GAAAA,OAAwB,MAC5B1R,OACa,KACpB,IAAA,IAGEyS,QAAkC,IAAhB,MAHpB,MAMuB,IACF,IAAA,IAAA,IAAH,MAClB,IAHkB,IAAhB,EAKJ,SACa9E,GAAAA,OAAAA,MAAX,IAKAd,MAAQ,MAARA,GACYiG,IAAuB,IAChCrB,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,MAChB,MACjB,EARQ,KAAJmF,KAAkC,QAAyB,IACxC,MAFrB,EAWJ,UACyB5G,GAAAA,YAErB,UAAA,OADmB,MAEX,KACW6G,IAAyB,KAC9CA,IAAuC,EAAH,MACpC,EACY,QAAc,IAC1B,GACwB,IACnBA,OAAoC,MAE3C,EAJY,EACc,IACnBA,IAAoC,MACzC,EAGOtB,GAAAA,OAAwB,IAAE,KAAjC,EAEF,MACauB,GAAAA,OAAiB,KACnB,UAAA,SAAA,MAOLC,KAAmB,KAAvB,GAEaC,mBAA2B,MADnC,IAIaC,KAAgB,IAChCf,gBAAqB,IACrBgB,KAAwB,OANrB,EAD2BC,KAAwB,MAS1D,EACA,oBACaL,GAAAA,KAAiB,KACjB,UAAA,MAAA,SAOPC,KAAmB,KAAvB,MAEuB,KAER,OADb,YAAA,OAEwC,KAFxC,OAGqB,SAHrB,IAM4B,YACA,WACJ,MACH,MACbrG,IAAQ,MAAZ,GAQF,EAP2B,SACvB,OAE+B,KAAd,MAAuC,MAFxD,KACiB,MAAYS,KAAyB,KADtD,GAGiB,MACjB,EAEF,EAGK6F,mBAA2B,SACpC,IACaC,KAAgB,OAC3Bf,mBAAqB,IACrBgB,KAAwB,OAH1B,EAHY,EACV,EAvB4BC,KAAwB,MA8B1D,EACA,GACuB,KAET7B,GAAAA,IAAVxJ,IAAAA,KACC,IAAA,GAAoCwJ,IAAdrJ,IAAtB,GAFH,EAKF,MAC2E,KAAA,IAA/B,IACvB,OACnB,IAE2B,KAAV,MAA+B,MAFhD,EACgB,MAEH,QACf,EACA,eACa4C,MAAX,IACwB,KACJ,MAAR,IACN,IACO,MACXyC,GAAAA,MAAiB,MALnB,EAOF,EA2LA,GAIWkvB,GAAAA,MAA2B,KAH7B,KAAA,IAAA,KAAA,OAAA,KAAP,EAOF,MAIW,MAAA,EACC,MAJH,KAAA,IAAA,KAAA,KAAA,KAAP,EAcF,cAGMz5B,GAAAA,IAA2B,MAAsC,MAC7B,MAAlB,IAAoC,MACpC,OAEd,IAAmC,UAAnC,IAAkD,KAJY,EAAA,KAAA,IAAA,KAAD,OADnE,MAMQhf,MAAa,KAAU,KAAV,KACvB,EAAE,EAAA,MACAkf,QAAW,KAAD,KAGZ,EACF,EAHYxb,GAAAA,IAAN,EAKN,QAAA,IAAA,IACS4rB,GAAAA,gBAAY,SACX,MACO,IAAA,KAAH,MACS,KAAZ,IACO,KAAH,MAIb,EAHEC,GAAAA,IAAAA,KAAsC,IAA8BC,GAAAA,IAAH,IACjEC,KAAiB1L,GAAAA,IAAO2L,MAAR,MAClB,EAGF,UACSJ,GAAAA,cAAY,SACX,MAC4B,KAAK,UACtB,GAAnB,sCACuB,KAAZ,IACM,KAAH,MAGI,KAAH,MAIC,OAChB,IAAA,GAC4B,MAAX,GAAf,IADF,GAEmB,KAAH,MAWhB,EApBWK,GAAAA,IAAyBH,MAAD,KAA/B,EAGAC,GAAAA,KAAiB1L,GAAAA,IAAO2L,MAAR,MAClB,EAKiB,OACfD,GAAAA,KAAiB1L,GAAAA,IAAO2L,MAAR,MACD,QAAA,GAAf,IACYE,MAAT,IAEGA,IAA0C,KAAA,KAF7C,IACiDjnB,MAAI,IAAA,IAAD,KAAA,UAAA,IAAA,IAAV,IAEjC+mB,IAAS,MACC,MAACA,IAAS,OACd,OADsB,EAAA,KAAlB,MAGxB,EAGJ,SACsB,QACpB,IAK4B,KAAA,OACxB5T,MACoBnT,MAAG,KAAA,OAAA,IAAA,IAAkB,KAAA,SADzCmT,EAL+B+T,GAAAA,IAAe,KAAA,OAAA,IAAA,IAAtB,QACNlnB,MAAG,KAAA,OAAA,IAAA,IACV,KAAA,SAKF,KAAA,KAAbmnB,GACgB,KAAA,KACNC,GAAAA,KAAsB,mBAAA,IACjB,KAAA,MAHfD,EAIF,EAGA,cAEI,IAEItD,GAAAA,IAES,gBAFW,IAFxB,EACIwD,GAAAA,iBAAgB,IAFF,QAStB,EACA,YAOuB,MACG,KACxBC,GAAAA,OAAoB,MACRC,mBAAe,MAQ3B,IAAyBC,IAAzB,GAEyC,KAAV,MACZ,WAAM,IAAA,MACb,KAAU,GAAJ,IAAA,MACdC,KAA4B,OAJ9B,EAMY,QAAM,IAAA,MACpBC,mBAAiB,IACI,KAArB,EAEF,iBAOE,OAgCc,KACI,KAAPC,MAAX,IACsB,KACC,MACT,IAAiC1G,GAAAA,IAAjC,EACC,MAAb,GAA8C,KAAuB,KAArE,IAGY,QAAM,IAAA,MACVc,GAAAA,OAAoB,MACF,KAAjB,MACG,MACc,MAA5B,EANW0F,GAAAA,KAA4B,OAAnC,EArCkB,SAEH,GADjB,IAEGG,GAAAA,OAAe,KAFlB,GAGiB,MAHjB,IAIoB,MAJpB,IAKsB,MALtB,OAQuB,MACC,MACpBC,sBAAyB,IAH3B,EAWQzF,GAAAA,KACC,KAIK,kBALqB,IAQT,KAAjB,MACG,MACc,MAA5B,EAgBJ,iBAOE,OACyB,KAErBnB,GAAAA,MAAY,SADd,GAES,KAAuB,QAFhC,MAKsB,IACU,MACd,KAAP0G,MAHT,IAQmC,KAAV,MACrBF,KAA4B,OAF9B,EAFc,WAAPE,OAAP,MAAmD,OAOlDG,GAAAA,sBAAuB,IAA9B,EAQF,WACgC,KACJ,OACZ,IAA0B,KACd,SAA1B,OAqCE,IAC2B,MAATC,IACe,MAE/BlJ,GAAAA,IAAKmJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IA1CvB,KAC2B,QAAd7H,MAAX,aASaU,IAAX,IAiB+B,UAAH,SAKhB,IAA8B,MAC1CjC,GAAAA,IAAKmJ,IAA0BC,MAA3B,MACJA,IAAkB,IAAA,IAjCpB,QAYQ,IACa,MAATF,IAE2C,MAA5B,MACW,UAAA,MAAH,MAKF,MAC3BlJ,GAAAA,IAAKmJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IAbrB,EAT8B,UAAH,MAK3BpJ,GAAAA,IAAKmJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IAmCzBP,GAAAA,mBAAiB,IACI,KAArB,EAEF,MAC0B,OACxB,IAAA,IAAA,IAE8B,KAF9B,IAIgB,WAAM,IAAA,MAJtB,EAKF,EACA,YAOgBxG,GAAAA,MAAiB,KAAjBA,GAEVtC,IAAkB,KAFRsC,EACV/B,IAEMgC,IAAgB,MAC1BmG,KAAoB,MACRC,sBAAe,MAQ3B,IAAyBC,IAAzB,GAEyC,KAAV,MACZ,WAAM,IAAA,MACb,KAAU,GAAJ,IAAA,MACdC,KAA4B,OAJ9B,EAMY,QAAM,IAAA,MACpBC,mBAAiB,IACI,KAArB,EAEF,iBAOMxG,GAAAA,MAAiB,OAArB,GAEEgH,IAAmB,OAErBZ,KAAoB,MACO,OAA3B,OAKK,OA2EsB,KACzBa,KAAgB,MACS,KAET,KAAwB,QAAtC/H,IAEIgI,IAAkC,KAAf,MACX,MACmB,KACd,KACG,UACT,GAAb,IAAA,IAEmBlH,IAAiB,KAAjBA,GAEXtC,IAAkB,KAFPsC,EACX/B,IAEUgC,IAAgB,MALlC,EACkBxK,KAAW,KAKoB,UAEhC,GAAf,OAAA,GAC8B,MAAf,GAAf,IADA,GADF,GAGiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GAHH,GAKI0R,IAAAA,GAAiCC,IAAlC,GACCC,mBAA6B,IAMnB,IACW,KACX,MACd9G,mBAAkB,IACW,KAC7B4G,OAAAA,OAEA1J,IAAyB,KAFzB0J,MAGAG,IAHAH,MAqDmC,MAAf,GAAf,IAAA,GACsB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADF,GAGgB,QAAM,IAAA,MACO,MAAf,GAAf,IAAA,GACuB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADH,EAAA,MAGiB,WAAM,IAAA,QAHvB,KArDC,GACE7G,kBAA0B,IAMD,KAE1BgH,IAAAA,GACAC,4BAA0B,IAD1BD,KADF,MA2BmC,MAAf,GAAf,IAAA,GACsB,KAApBH,IAAAA,GACqB,KAApBC,IADDD,GADF,GAGgB,QAAM,IAAA,MACO,MAAf,GAAf,IAAA,GACuB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADH,GAGiB,WAAM,IAAA,MACM,MACA,MApCjC,KAYKK,GACgC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADFA,GAGgC,MAAf,GAAf,IAC6B,MAAA,OACA,MAAf,GAAf,IACqC,MAAA,OAKT,MAAf,GAAf,IACiB,QAAM,IAAA,MACO,MAAf,GAAf,IACiB,WAAM,IAAA,MAWZ,MACA,MACE,SAnDrBL,KA7G6B,KACF,KACb,MACW,KACA,UACZ,GAAb,IAAA,IAEoBnH,IAAiB,KAAjBA,GAEZtC,IAAkB,KAFNsC,EACZ/B,IAEWgC,IAAgB,MALnC,EACmBxK,KAAW,KAKU,UAErB,GAAf,OAAA,GAC8B,MAAf,GAAf,IADA,GAEJgS,GACiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADHA,GAGIN,IAAAA,GAA0BO,IAA3B,GACCL,mBAA6B,IAMnB,IACe,KACf,MACd9G,mBAAkB,IACS,KAC3B4G,IAAAA,IAEA1J,IAAyB,KAFzB0J,GAGAG,IAHAH,GAwCmC,MAAf,KAAf,OACgB,QAAM,IAAA,QADtB,KApCA,GACE7G,kBAA0B,IAMC,KAE5BgH,IAAAA,GACAC,4BAA0B,IAF5B,GAoBmC,MAAf,GAAf,IACgB,QAAM,IAAA,MACM,MACA,MAvBjC,EAWKE,GACgC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADFA,GAGgC,MAAf,GAAf,IAC4B,MAAA,IACC,MAAf,GAAf,IACoC,MAAA,IACR,MAAf,GAAf,IACiB,QAAM,IAAA,MAKZ,MACA,MACE,SAtCrBN,EAnCAQ,KAAwC,MACtCC,KAAsB,OACtBC,mBAAkB,MA+KfC,yBAAoB,IAA3B,EASF,iBAQEC,GAAAA,OAAO,MACoC,QAAd7I,MAAP,OACtB,GAAA,GAEI8I,GAAcC,MAAyB,OACvC1B,KAA4B,OAF9B,EAI2B,KAC7B2B,IAA2B,MAEzBC,GAAkD,UAAhB,KAAlCA,IAEuB,MAAA,IACX,QAAM,IAAA,MACpB,IAAA,GAaI3B,mBAAiB,IAbrB,EAC6B7D,IAEhB,eAFoC,IAAvB,MAMEA,eAAoB,IAAvB,MAOkB,KAAf,MAC5BqF,GAAcC,MAAyB,OAClB,KAArB,EAEF,GAC2B,KACrB,MAAJ5L,GAMQ,KAAJA,GACA+L,GAAAA,IAA8C,SAArB,OADzB/L,EALA+L,GAAAA,IAEM,MACA,MAAwB,OAA5B/L,IAHuB,OAO7BgM,GAAAA,KAAsC,QAArB,MACnB,EAGS,aAAA,MAAP,EAEF,SACgC,KACVC,GAAAA,IAAmB,KAEH,QAAdpJ,MAAP,OAEf,KAEI,IAAoC,OAApC,OAEWqJ,IAAP,IAFJ,GAGJ,KACK,IAAwC,UAAxC,OACY,MADZ,EADoD,WAAM,IAAA,WAG/D5K,IAAK2K,OAAqBC,MAAtB,QACJ,OA2CyB,KACzB,IAEqC,MAFrC,OAaA,MA0CsB,KACA,KACV1H,KAES,KAF0B,MAAA,IAAA,IAAf,MAIX,KAAd3B,IAAP,IAAmD,MACnC,MACC,MACjB,IACgC,MAC9B,IAEoB,KAAA,KAFpB,EACiC,IAAA,IAAH,MAA8B,QAAM,IAAA,MAEhD,MACQ,MAC5B,EAzD0B,MACG,KACF,KACQ,KAC4B,KAArC,MAAA,IAAA,IACjBsJ,IAAP,IAAwC,KAAxC,IAKkB3H,KAAoB,MACO,WAAf0H,IAAH,SAN3B,EACgC,KACP,MACE,MACE,SAG7B,IAEqBhH,kBAAuB,IAM3B,QAAM,IAAA,MARvB,EACoBV,KAAoB,MAQrB,MACH,MACC,MACG,MAES,KACT,KAAM,KAExB,IAG2B,MAAV2H,IAEY,MAHzB,EAAA,KAAA,KAAA,KAFJ,EACIC,KAA2B,KAMP,MACO,KAAc,GAArBhC,IAAH,MACQiC,IAAH,MAC5B,EAjDOC,2BAAiC,IAAxC,EA/CwB,KACxB,IAAwC,MAAxC,OASsB,KACH,MACZC,GA4BHC,KAA4B,MA5BzBD,KACyB,KACE,KAChB,MAAA,IAAA,IACPE,IAAP,IAAA,IAGoBC,iBAAwB,IAH5C,EAC6B,MACC,SAOnBxH,kBAAuB,IAMd,MACL,MACM,MACA,MACN,KAAuBkH,KAA2B,KAA9B,MAGHC,IAAH,SA1BjC,EATyB,KAAdxJ,IAAP,IAEIyvB,IAAI,UAEiB,MAFrBA,EADqB,MAF3B,EAkHN,GACoB5lB,GAAAA,KAChB,MAAA,OAAA,IACc,cAF0B,IAMpB,MACM,MAA5B,EAEF,QAME,IACYC,GAAAA,IAAT,IAEGA,IAAoB,KAAA,KAFvB,EACsB,IAAA,IAAH,IAEtBrG,GAAAA,OAA4C,iBAAxB,IACVkG,KAEM,KAAa,KAFS,MAI/B,QAAM,IAAA,MACe,MAC5B,EAEF,mCASE,MAiDyB,QAAd3J,IAAX,OAOIyvB,GAAAA,MAAI,IAiBiC,KAArB/uB,IAChB0G,IAAJ,GAAA,IA8DIqoB,IAAI,IAQE9lB,KAAsD,KAA1B,MAC/B,WAAM,IAAA,MACb,EAvEc3E,MACZ,OACwB,GAAdtE,IAAR,MAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,MAAA,KAgCI,KAHA,KAQ4B,MAATkJ,IAAdN,MAAP,OAGF,IAAA,GAC8B,MAA5BA,IADF,GAE2B,MACzBhJ,KAA6B,MAC7B8E,sBAAqB,IAEzB2E,KAA+B,IACfC,OACdhzB,UAAK,KAD4B,KAK5BizB,gBAAsC,IAA7C,EA/EOA,GAAAA,kBAAsC,IAA7C,EAjDkB,WAAdjK,IAAJ,MAe2B,OAA3B,OAMyB,MACE,KACf6J,GAAAA,KAC4B,KAAtC,MAAA,IAAA,kBADkC,IAMpBxH,cAAuB,IAM1B,KAAM,IAAA,MACH,MACI,MACH,MACG,MACC,QAAdrC,IAAP,IACEyD,IAA4C,eAAxB,IACR,KAAuB8F,KAA2B,KAA9B,MAGHC,IAAH,MAC5B,EA7BmC,KAAV,MACN,QAAM,IAAA,MAFvB,EAdiB,WAAM,IAAA,MACJQ,GAAAA,OACfhzB,YAAK,KAD6B,KAKpCizB,gBAAsC,IAPxC,EAkJN,MACO,KAAM,IAAA,MACU,OACrB,IAAgC,KAAM,IAAA,MACtCC,GAAAA,KAAqC,UAAN,OACjC,EACA,eAOkC,OAChC,IAS6B,MACH,QACS,MACd,MACA,MACI,MAdzB,EACoC,UAAA,MAAA,IAAA,KAAA,KAAH,MADjC,EAeF,EACA,mBACgC,KACL,MACH,MACtB5C,GAAAA,KAAoD,gBAAnC,IACL8B,IAAmB,QACpBQ,MAAX,OAGE,OAAsC,QAAPrC,IAA/B,OACkC,KAA7B,OACiB,KAAlB,IAGuB,KAAlB,IAEoB,KAApB,IACI,KAAa,MACH,KACjB,EAJA4C,KAA2B,OADxB,EAFa,KAAhB,IACEA,KAA2B,OAQ/B,IACuB,WAAvB,IACsB,KAApB,IAAsC,KAAtC,IAEiB,KAHI,WAAvB,IAKO,KAAyB,KAAV,MACL,KAlBhB,GAAA,UAoBI,IAxBX,KACgBP,IAAAA,IAAoC,QAAM,IAAA,MAyB1DnL,IAAK2K,IAAD,MACqB,QAAdpJ,IAAX,OAEE,IAAA,WAAA,QAAA,IAgDgC,MAhDhC,KA6CIoK,kBAA2B,IAC3B,KAtB4B,KACH,UAAzB,IACuB,WACrB,IAAiCC,KAAkB,KAAnD,IAIqB,KACF,YAPrB,MAGwB,SAQxBD,oBAA2B,IAO3B,EAzC4B,SAC5B,IACwB,KACpB,IAAA,GACWC,KAAkB,KAA3B,IADF,MAG0B,QAL9B,IAOA,IAG+B,KAA+B,MAH9D,EACkC,KACT,MAEzBD,qBAA2B,IAO3B,EAvB2D,MAoD5C,KAArB,EAEF,MACuB,QAAdpK,MAAP,IAAA,KACE,IADF,KAEqB,MACM,MACV,QAAM,IAAA,MAJvB,EAKF,EACA,UACE,IAAA,GAA0D,KAAV,MAChDW,GAAAA,IAAgD,KAAlB,IAAA,IACS,QAA5BD,MAAX,OACA,GAAsC,KAAkB,KAAxD,OAE2B,KAA3B,IAC0B,KACViB,KAAqC,KAAjB,MACd,MACG,MAAmC,cAA1D,IACoB,KACqBA,KAE5B,KAFgD,MAAvB,MAIf,MANmC,cAA1D,IAOmB,MAEA,KAArB,IAdQ3qB,UAAK,KAAX,EAFmD,EAkBvD,WAKwB,KAAtB,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,OAAA,OAAA,SA+D2B,MACrBszB,GAAAA,OAAwB,OAF1B,EApB6C,KAA5B5J,MAAP,IACQ,QAAP6G,IAAX,IACE,GAMc,KAAM,IAAA,MAEI,KAC1B,IACuB,MACN,MACM,MACvB9I,GAAAA,IAAK2K,IAAwC,OAAzC,MACJ,MACK,EAdMmB,GAAAA,OAA2B,OAAlC,EAxBoB,KACxB,IAiBA9L,GAAAA,IAAK2K,IAAwC,KAAnBA,MAAtB,MACJ,KAjBsB,MAApB,IAMuC,KAAM,KAAlC1I,MAAX,IAEAjC,GAAAA,IAAK2K,IAAwC,KAAnBA,MAAtB,MACM/B,KAA4B,SAK/B,IAA0B,KAAjC,EAPSmD,GAAAA,OAAuB,OAA9B,EALE/L,GAAAA,IAAK2K,IAAwC,KAAnBA,MAAtB,MACW,QAAM,IAAA,MAFvB,EATwB,KAAK,MACL,KAAc,KAC1C3K,GAAAA,IAAKqB,IAAoB,QAArB,MACiB,MACrB,EAPAqJ,GAAAA,KAAgD,KAAU,QAAzC,MACjB,EALArI,GAAAA,IAAgC,OAAf,KAAjBA,GACEgH,IAAmB,KADrBhH,EAHA2J,GAAAA,OAAe,KACf,EAJAC,GAAAA,OAAmB,KAiEhBrD,GAAAA,OAA4B,OAAnC,EAiCF,KACqB,MAAnB,IAAA,QAAA,OAY8B,UAC1B,IACuB,KAArB,OAC8B,QAFhC,IAGA,IAI4B,MAJ5B,KACI2D,GAAgD,MAAhDA,IAEc,MAAa,MAF3BA,EACmB,MADnBA,EAfkC,UACtC,IACmC,KAAjC,OAEsD,QAHxD,IAIA,IAEyB,MAFzB,EACqB,MADrB,EAeN,EACA,WAE4B,KAAtB,IAAA,GACa,KAAU,KAAwB,KAA/CL,IAI+B,KADnC,cAQE,OAC4B,KAAiB,KAAzBM,IAAJ,IACa,KAAZ,IACY,KAAZ,IACG,MACI,WALxB,cAPA,IAC4B,KAAiB,KAAzBA,IAAJ,IACa,KAARA,IACQ,KAARA,IADJ,IACA,IACG,MACI,WALxB,IAaW,KAAa,IAAA,MACF,MACxB,EAEF,yBAC+B,KAC7BC,GAAAA,IAAc,KACQ,uBAgUlB,EAFA,EAbEC,KAAc,IACwB,KAAvB,IACf,IAAA,GACmB,KAAhB,IAAA,IADH,GAEiB,WAAM,IAAA,MACvBzK,GAAoC,QAAdV,IAAtBU,IAII0K,KAAgB,KAJpB1K,EACWmH,UAAAA,IAAP,IACCuD,KAAgB,KACH,QAAdpL,IAAAA,GAAkD,WAAM,IAAA,MAT9D,EAzHA1B,IAAI8K,IAAD,KACkB,KACrB,OACgC,QAAdpJ,IAAP,IACS,MACpB,UAmEE,MAEgBqK,KAAkB,KADhC,IAiBMzoB,IAAG,OAAP,IAAgB,MAAhB,IACEypB,IADF,IAAA,SAEE,IAFF,GAAA,MAGkB,KAAM,IAAA,MAEtBC,KAAkB,YACG,QANvB,EAbkB,KAAM,IAAA,MAEJ,KAClB,IAC8B,MACb,QAAM,IAAA,MACvBA,KAAkB,MACL,QARf,IASqB,YATrB,IAUkB,OAVlB,GAYSF,KAAgB,KAAvB,EASF,MAAJ9iB,GAGoB,KAChB,IAEyB,MAFzB,EACoB,MAEV,SAPdA,KAC4C,KAAjB,MACF,SAFzBA,KA3FA,MAGUijB,IADR,IAAA,IAEqC,KAAPhE,IAF9B,IAI+B,KAA7B,IACkB8C,KAAkB,QAClC,IAgDiB,KAlDnB,IAoDW,MAAb,IAAA,GACEzoB,IAAG,IAAKypB,IAARzpB,IADF,GAAA,MAEkB,KAAM,IAAA,MAEtB0pB,KAAkB,YACG,QALvB,KAjDoB,KAAM,IAAA,MACpBA,KAAkB,MACK,KACvB,IAC8B,MACb,QAAM,IAAA,MACI,MAEM,KAAjC,OAGa,KAAM,IAAA,MACU,KACzB,OAUyC,KAAhB,MACU,KAAhB,MACgB,KAAhB,MACO,MACH,MACoB,KAAhB,MACgB,KAAhB,MACc,KAAhB,MACS,KAAhB,MACO,OAEnB,IAGiB,KACO,MAFpB,EAAA,IAAA,QAHgB,MApB1B,EACyB,MACN,MACA,MACO,MACC,MACA,MACF,MACC,MACH,MAkBG,KAhC9B,OAiCA7M,IACE2K,IACoB,QAAnBA,OAAAA,IAFC,MAIiB,KAArB,EAtDMkC,KAAkB,SAoGjB,MAAjB,IAWAF,KAAgB,KAChB,EAV0B,MACP,MACY,KAAjB,MACiBxpB,IAAG,IAAN,MACD,MACZwnB,IAAmB,KAC9B3K,IAAK2K,IAAqBoC,MAA+BjE,IAA/BiE,KAAYjE,OAAAA,IAAlC,MAPN,EAzGwB6D,KAAgB,KAAvB,EAPjBtK,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IACpDL,KAAgB,KAFlB,EALEM,IAA0B,KAAK,MAApB,KACXN,KAAgB,KAFlB,EANEO,KAAgB,IAChBC,IAAmB,MACnBR,KAAgB,KAHlB,EA1CA9M,IAAI8K,IAAD,KACsB,KAEvB,IADF,GAEmB,KAFnB,OAGoB,KAAc,MAHlC,OAKE,IAA0C,MAA1C,IAeWU,MAAT,IACG+B,KAAuB/B,IAAD,KAAmC,MAD5D,EAdA,MAQqB,QAAd9J,IAAP,IAC+B,MACjB,QAAM,IAAA,MACpBoL,KAAgB,OAMlB,GAAgC,WAAdpL,MAAAA,MAAP,EAEY,QAAdA,IAAX,OAEc,IACG,IAAA,GAAoC,KAAhB,IAArCU,IAAAA,MAAAA,GAEkB,KAAM,WAAM,IAAA,MACP,QAAdV,IAAP,IACG,GAA2BoJ,IAAmB,KAAnBA,IAA3B,IAGGW,KAA+B,IAHlC,EACSwB,IAAN,OAC6B,IAEd,KAAvB,IAAsD,QAAM,IAAA,MAC5DH,KAAgB,KAChB,EAZ8B,MAA5B,IAnBUp0B,UAAK,KAAX,EAvCN,GAAqC,KAArC,WAQmB,GAAjB,IAA2D,KAA3D,OAIU6sB,KAAgBH,IAAuB,KAAxB,KACJE,IAAoB,KAArB,KAA8B,MAAlD,KACQ5sB,UAAK,KAAX,EAGY24C,IAAW,IACzB15B,IAA2B,MAAqB,MAI9C,EAAA,oBAJ8C,IAMhDk5B,IAAiB,KAAA,MACO,MAzB1B,IASUn4C,UAAK,KAAX,EARF+0B,IAGS,gBAHO,IA0BlBX,KAAgB,KAChB,EA/EAY,KAAc,KACAnI,KAAgBH,IAAuB,KAAxB,KACJ,KACzB,IAA8C,KAA9C,OAUE,GAC6B,KAA3B,IAIA0H,KAAgB,KAChB,IAJQp0B,UAAK,KAAX,EAMJ6sB,KAAgBD,IAAoB,KAArB,KACL+rB,IAAW,IACd1jB,IAAoB,KACPlQ,IAElBE,IAEI,aAJ4B,IAMlChG,IAA2B,MAAqB,MAE1C,eAF0C,IAM9B25B,IAA6B,KAAA,gBAAA,IAAA,IAK/CT,IAAiB,KAAA,MACjBI,IAAiB,KAAA,MACjBpjB,gBAAiB,IACO,MACxB0jB,IAAuB,KACA,KAAvB,IAA8C,WAAM,IAAA,MAApD,EA1CAzjB,qBAAqB,IAOZ,KAAuB,KAA9B7E,IAAqD,WAAM,IAAA,MAqC/D6D,KAAgB,KAChB,EAtE+B,KAC7BO,KAAgB,IAChBrN,IAAIC,IAAD,KACCC,IAAD,KACH6N,KAA2B,IAChB,MAAX3L,GACqC,MAAd,MACM,MAC5B,IAAA,GAAoC,KAAhB,IAApB,GACC,IADD,GAES,KAAc,MAArB6G,GACsB,WAAdvH,IAAP,IADDuH,GAFF,GAIiB,WAAM,IAAA,MACbuC,IAAT,IACG+B,KAAuB/B,IAAD,KACP,IACpB8B,IAAmB,MACnBR,KAAgB,KAlBlB,EALEtK,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IACpDL,KAAgB,KAFlB,EAFOA,KAAgB,KAAvB,IAuTEp0B,MAEY,SADhB,QAAA,IADS,KAAX,EAMF,KACEk0B,GAAAA,MAAc,KACQ,uBA+ClB,EAFOC,KAAc,IAArB,EAHOO,IAA0B,KAAK,MAApB,KAAlB,EAFOC,KAAgB,IAAvB,EAFOrN,IAAI8K,IAAD,KAAV,EAfA9K,IAAI8K,IAAD,KACqB,KACxB,IAEkB,MAFlB,IAGyB,KAHzB,IAQwB,WACjB7B,MAAAA,SACuBA,OAAAA,IAAJ,SAD1B,IAJQvwB,UAAK,KAAX,EATKg1B,KAAc,KAArB,EAVEL,KAAgB,IAChBrN,IAAIC,IAAD,KACCC,IAAD,KACH6N,KAA2B,IACF,WAClB9E,QAAP,OAAkCA,MAAlC,UAC8BA,IAAAA,IAAJ,SAP5B,EAPEzG,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IAC3B,WACzBlE,MAAAA,SAC8BA,OAAAA,IAAJ,SAJ5B,EA+CA,EAKN,OACmB,UACjB,WACqB,GAAnB,OAMgB,MANhB,EAEO,KACL,EAAE,EACA+E,GAAAA,KAAuB,OAG/B,EAEE,KACS,IACT,EAAE,EACAA,GAAAA,UAAuB,OACzB,EACF,EAEA,2DACiB,GAAA,IAAf,OAEaC,OACS,KACP,KAAJpP,IAHT,OAAA,OAOkBoP,IAAhB,OACSA,IACP,GACoB,KACH,KAAJpP,IAAX,UACc,KAAZ,OAAA,OAAA,OAAA,IAAA,OAAA,OAAA,OAAA,IAAA,MA2BUnmB,UAAK,KAAX,KArBA,OACyB,KACF,QACJ,QAC4B,MACrC,KAAqB,KAAzBmmB,IAEI6K,OAAwB,QAAL,MAFvB7K,KAAAA,GADyC,SAMD,MAetD,EAAE,EACAmP,QAAkC,KAAX,OACzB,GACiB,QACjB,OAKiB,KAAP,IA7CZ,eAyC4B,KAAP,MACP,IACV,QA7Cc,MAAqB,IANJC,IAAvC,OAuDUC,SACuB,IACjC,EAEF,UAKgC,OAChB,IAAkC,MAChD,IACyC,KAMjCC,QAJO,KAANC,IAAL,IACsB,MACN,SACd3Z,IACE0Z,KAAiB,UAEN,KAPjB,IAUJ,EACA,UAC6B,OACZ,IAAoC,MACnD,IAC2C,QAE5B,KAANC,IAAL,IACwB,KACI,IAAZ,MAED,KALjB,IAQJ,EACA,GACuB,OACrB,IACmB,MAAUC,GAAAA,OAAuB,KACzC,MACI,MACF,MACE,MACH,MACM,MACC,MACA,MACD,MACH,MACE,QACnB,EACA,GACoB,QAAX,IAAA,GAA8B,QAAX,IAAnB,GAAiD,QAAX,IAA7C,EAEF,sBAGmCmjB,GADV,WAArB,IACoB,KAAlB,OAA6BA,KAAkB,KAAN,KAAzC,MACa,KAFM,WAArB,IAIK,KAAuB,KAAR,MAEL,KACF,QAFb,OAEgC,QAFhC,IAEoD,WAFpD,IAKW,KAAL90B,OAAJ,MACkB,QAAlB,OAAuC,QAAvC,OACW,KAAa,MAAyB,KALtC,QAFb,IAEgC,QAFhC,IAEoD,WAFpD,IASW,KAALA,OAAN,MAAoC,KAAZ,EAbmC,EAgB/D,aACgB,QACd,OAAA,OAQK,OAA8B,KAA9B,IAED+0B,GAAAA,KAAwC,OAC3B,KAFf,IAMEA,KAAwC,OAC1B,KAPhB,MARiB,KAAjB,GAIE95B,GAAAA,IAA2B,MAAsB,UAClC,MAAb,IAAsC,KADkB,IAAA,IAAT,MAJnD,MACmB,GAAjB,IAeN,IAdcjf,UAAK,KAAX,EAeR,aACgB,QACd,OAAA,OAkDK,OAA8B,KAA9B,OAEDg5C,GAAAA,KAA2B,OAAmC,KADhE,OAKEA,KAA2B,OAAoC,KALjE,SAlDiB,KAAjB,UA0ByB,MAAb,IAAsC,KACjC,MACO,KAAA,OACpB,IAWa,KAAA,KACT/5B,GAAAA,IAA2B,MAAyB,MAC5C,KAGN,IAAA,IACI,QAAHq5B,IAAD,IAAA,IAHA,IACA,IAGA,aANkD,IAZxD,KACe,SAAA,MACH,KAAA,KACRr5B,GAAAA,IAA2B,MAAyB,MAC5C,KACN,IAAA,IACI,KAAHq5B,IAAD,IAAA,IACA,IACA,IACA,aANkD,IAHxD,KA5BU,MACW,KAAA,OACvB,IAY0B,KAAA,KACZ,MAAA,OACVr5B,GAAAA,IAA2B,MAAyB,MAC5C,SAGQ,MAAb,IAAsC,KAAvC,IAAA,IACA,IAAA,IAHA,IACA,IAGA,gBANkD,IAdxD,EACe,SAAA,MACU,KAAA,KACX,MAAA,OACVA,GAAAA,IAA2B,MAAyB,MAC5C,KACN,IAAA,IACA,IAAA,IACA,IACA,IACA,aANkD,IAiD9D,EAGA,aAKsB,KAClB2W,GADF,IACEA,KAA4B,OACV,KAFpB,IAGF,EACA,qBAKM3P,GAAAA,IAAJ,GAA0CA,IAAY,UAAnB,GAAnC,IAEIA,IAAiC,MAACC,OAAD,MACnC,EAAE,EAAa,GACG,uBAoHhB2P,QAAkC,OAKlC,KAZAA,QAAkC,OAKlC,KAtBAC,QAAe,MACc,QACW,UAArB,GAAnB,IACE,MACsC,KAAf,MACiB,KAAf,MACc,MAAA,IACvC,EAAE,EACAR,QAAuB,OAE3BO,QAAkC,OAKlC,QA5C6B,UAC7B,OAEmC,SAFnC,OAI6D,QAGtC,MACF,KACjB9Z,IACUga,IAAP,IAEUA,IAAP,IACAN,QAAiB,OADjB,EADAA,QAAiB,OAO8B,QAbvD,IAgBFI,QAAkC,OAKlC,KA3CiBojB,OACWC,OACH,KAAU,MAAzB,MACW,IACrBrjB,KAAkC,OAKxB,IACW,IACrB,KAdSojB,MAAT,OAAuBR,IAAKQ,OAAwB,KAAzB,MAA3B,KA1CAnjB,QAAe,MAEMmjB,OACSC,MACpB,IACVrjB,QAAkC,OAKxB,IACW,IACrB,OACGqjB,IACoBD,IADpBC,MAYyC,KACtCV,IAA2B,KACC,SACkB,KAAA,KAG3B,SAAA,MACnBv5B,IAA2B,MAAyB,MACtC,KAKZ,IAAA,IAJA,IACA,IACA,IACA,UALkD,IAnBvDi6B,EAEGV,OAAwC,KAAb,KAC3Bv5B,IAA2B,MAAyB,MAElD,IACA,IACA,IACA,IACA,cANkD,IAHvDi6B,EA4GHrjB,KAAkC,OAMxC,EACA,OAC8B,OAC5B,cAC0B,MACK,KAC7B,IAC6CI,GAAAA,IAAe,KAAA,OAAA,IAAA,IAAtB,SADtC,QAEiB,KAAC,KAAD,KAMrB,EANsB,GACJC,GAAAA,KAAyB,KAAOC,GAAAA,MAAP,OACrCC,IAAc,KAAA,KAAdA,GACGA,IAAc,KAAA,KAAyB,KAAA,MAD1CA,EAEF,EAGJ,wCAC6B,SAC3B,cAC+B,KAkCzBd,GAlCJ,aAC+B,IAC7B,YAIK,OACa,KAAd,IAAA,IAAA,OAce,QAfd,SAWsB,KAAU,MAAnB,IACW,IACrB,KANmB,KAAU,MAAnB,IACW,IACrB,KANmB,KAAT,IACW,IAad2jB,IAAb,IAIArjB,cAA4B,OAClB,IACW,IACQ,QAC7B,OAAuC,MAAvC,GACoB,MACtB,IATU51B,UAAK,KAAX,EASF,EACAs1B,QAAuB,OACzB,GAnCqC,SAAV,KAA7B,UAqCa,WAAXe,IAAJ,MACgC,QAC5BC,GADF,IACEA,QAA4B,MACA,QAF9B,IAGJ,EACA,sCAC4B,KACJ,KACF,uBAwMhBC,GAAAA,KAAkC,MAClCC,KAA2B,QAC3BC,IAAAA,MAAaC,KAA4B,KAAzCD,KA5FAF,GAAAA,KAAkC,MAClCC,KAA2B,WACvBC,IAAJ,MAEsC,KAArB,OACC,KAAmB,WAFhC,GAQgB,KAAjB,UA4CwB,KAAjB,OAYW,KADX,OACiC,KADjC,OAEa,KAFb,OAAA,UAIW,KAJX,UAME,KAAa,MACH,KACjB,KAlBA,OACE,EACQz2B,UAAK,KAAX,EACA,EACAs1B,KAEc,KAFS,OAKzB,QArDF,UAEE,GAC6B,QAA3B,MAcyB,KACJ,KACkB,MACvB1N,IACG,KAAN,IAAA,IAAc,EAAA,KAAd,IADqB,EAAA,IAAX,EAAD,OAGS7C,IAIR,aAJsB,IAM3C9F,IAA2B,MAAqB,MACjC,KACM,MAF2B,OA1BlD,KACyB,SACT8F,IAEVE,IACS,EAAA,KAAT,EAAA,IACQ,aAJgB,OAM1BhG,IAA2B,MAAqB,MACnC,KACH,MAFsC,OAwBtD,EAAE,EACAqW,KAEc,KAFS,OAKzB,GAuBJ,UACuB,KAAvB,OACsB,KAApB,UAAsC,KAAtC,aAEA6jB,MAAAA,GAEiB,QALI,KAAvB,UAOAA,MAAAA,GACO,KAAyB,KAAV,MACL,KAnFhB,KAhBL5iB,GAAAA,KAAkC,MAClCC,KAA2B,KACF,QACf,WAAV9iB,IAAAA,MACgD,KAAnB,OAChB,KAAmB,MAC9B,GAAA,MACsB,KAAnB,IAAA,MACoB,KAAU,KAA7B,IADD,GADH,GAGkC9I,IAAG,IAAN,IAH/B,GAIF6rB,IAAAA,MAAaC,KAA4B,KAAzCD,KAdAF,GAAAA,KAAkC,MAClCC,KAA2B,KAC3B,KANAD,GAAAA,KAAkC,MAClCC,KAA2B,KAC3B,KAvBAD,GAAAA,KAAkC,MAClCC,KAA2B,QACvBC,IAAJ,MAC2B,KAAzB,IAIyB,KACY,KAEnCxX,IAA2B,MAAqB,YAG9C,EAAA,QAH8C,OAKlD,KAAE,EACAqW,KAAkD,KAA3B,OACzB,OAbQt1B,UAAK,KAAX,EA3CJu2B,GAAAA,KAAkC,MAClCC,KAA2B,WAC3BC,IAAAA,MACE,IADFA,GAEEX,QAAgC,KAAjB,MAFjBW,GAGIA,IAAJ,MACgC,QAC9B,OAC6B,QACd,OAAA,KAA0B,KAA1B,GACiB,KACN,MACxB,OACE,GAC8B,SAC5B8hB,IAAiB,KAAY,KAAZ,MACYxzB,OAIjB,aAJ+B,OAM3C,IACE9F,IAA2B,MAAqB,MACnC,KACD,MAFoC,OAKpD,KAAE,EACAqW,KAEc,KAFS,OAKzB,KAzCNiB,GAAAA,KAAkC,MAClCC,KAA2B,WAC3BC,IAAAA,MACE,IADFA,MAEEX,KAAgC,KAAjB,MAFjBW,KAnBAF,GAAAA,KAAkC,MAClCC,KAA2B,QACvBC,IAAJ,GAEIE,KAAyD,QAA9B,OACzBC,KAAyB,MAC7B,EAAE,EACAtB,KAAkD,KAA3B,OAGvBqB,KAAyD,KAA9B,OAC7B,EAAE,EACArB,KAAkD,KAA3B,OACzB,EA6LFiB,GAAAA,KAAkC,MAChCC,KAA2B,KAEnC,EACA,aAC0B,QACpBC,IAAJ,MAGoC,QACxBqiB,GADN,IACMA,QAAY,QAAhB,GAIe,QALjB,MAOM94C,UAAK,KAAX,KAI8B,KAAhC,GAAA,OAAA,OAAA,MAmBUA,UAAK,KAAX,KATwC,KAAU,MACpCo5C,KAAc,KAC5BL,KAAwC,OAKxC,KAf8C,KACtB,QAAxBM,IAAAA,MAC2B,WAAM,IAAA,MACpBD,KAAc,KAC3BJ,KAA2B,OAiBjC,EAAE,EACA1jB,GAAAA,KAAkD,KAA3B,OAEb,WAAM,IAAA,MAxCpB,MA0CAmB,IAAAA,GAA6B,WAAM,IAAA,MACrC,EACA,gDACiB,GAAA,IAAf,OACclB,IACQ,KACJ,KAALvR,IAAX,OAAA,OAGsCuR,IAApC,OACeA,OACQ,KAAVsB,IAAX,UAC0B,KACxB,GACuB,KAAVA,IAAX,UACoB,0BA6BiB,QAC/B,YAEyB,KAAvB,OACoB,KAAM,KAAxB,IAAA,OAKwB,KAAM,KAL9B,KAEwB,KAAM,KAKhCC,WAAiB,OAVnB,QAvByB,KACX,KAAVD,IAAJ,MACE,OAGc,KAA2B,KAArCA,IAEI7F,OACY,QACH,KAFU,MAFvB6F,KACW,KADXA,GAMyB,SAElB,KACC,MAHiB,OAT7B,KAAgD,MAAA,IAAhD,GAe0B,QAC5B,IACEC,WAAiB,OADnB,EArBAF,QAAyB,MACzB,GA4DQ,KAAVC,IAAJ,QAEsB,QACpB,OACoC,KAChB,KAAlB,OAAA,KAGI,GAIW,GAAf,UAEgB,MAFhB,QACO,KAIb,IArBc72B,UAAK,KAAX,EAqBN,EACAs1B,QAA8C,KAAvB,OACzB,GAEF,OAIoB,QACpB,OAKuB,KAAb,IAtGZ,eAkG+B,KAAb,MACJ,IACV,EAPU,IACV,KAhGc,MAAsB,IAJHC,IAAzC,OA+GF,EAgCgBhM,GAAAA,OAAAA,MAAP,IAEIwN,UAAP,IAEoBnsB,MAAG,IAAN,IAFjB,EACAmsB,IAHG,EACHnsB,MAAG,IADP,EAMF,MACkB,QAALoZ,MAAX,IACWuF,GAAAA,OAAAA,IAAX,IAA0CyN,IAA1C,IAEaC,IAAuB,OAApC,IAMQ/O,IACD,OAAP,EALUkP,IAAN,IACgCvI,MAAuB,IAA1B,IAC7BuI,IAHF,EAFOJ,IAAgC,GAAhCA,IAAP,EAF0B,EAY9B,SACWK,GAAAA,OAAT,OAMAC,MAAe,OACJ/N,OAAAA,MAAX,IAA6CyE,IAA7C,OACWA,IAAT7H,IACUoD,IAAAA,IAAP,IACEgO,IAAyC,IAAA,IACtChD,OAAN,IACEiD,KAA0BR,IAAP,MACrBS,KAAqB,SACrB,IAAA,GACQlO,IAAN,IADF,MAEc,KAALvF,IAAP,IAFF,GAGyCpZ,IAAG,UAAHA,IAAH,IACpC8sB,IAAAA,GAA+BrP,IAAkB,IACzD,IAlB6B,MACH,MACtBroB,YAAK,KAFL,EAmBJ,wBAEmC,MACR,MACH,MACI,MACV,MASiB23B,GAdjC,IASqB/Q,IAAK,KAAV,IACL,IACyB,OAClC,IAGOgR,IAAsC,MAAa,IAAA,MAAnDA,EAFM7Q,IAAX,IAA4CA,IAA5C,IAC6B4Q,IAAqB,MAAxB,IAEnB,GAAJ,IAhBP,IAkBiBE,IAEN7J,MAAT7H,IAA8B6Q,IAFH,MAI7B,OAKmC,GAAjBc,IACZ,MAFD,OAIH,IAAgCC,IAAc,KAC9C,IAcUC,IAAoB,KAA5B,OAAA,OAAA,UAAA,IAc2BC,IAd3B,EAW2BC,IACvB,EAJuBD,IACvB,EAJuBE,IACvB,EAJuB/P,IAcJgQ,KAErBC,KAAgC,KAAA,MAFO,MA9B3C,KACY,KAAV,IAM6BC,KAA0B,KAAA,MAC1CrQ,IAAT,IAEIA,IAAc,KAAA,KAFlB,EACiB,IAAA,IAAH,IADd,EANyBqQ,KAA0B,KAAA,QACvB,IACnBrQ,IAAT,IAEIA,IAAc,KAAA,KAFlB,EACiB,IAAA,IAAH,IAMhBE,IAAiBC,IAAmBC,IAApB,QAwBC,MACJ,MAzCd,EAHH,IAAiC0P,IAAc,KAC3B,MACI,MA4C5B,EACA,uDACkB,SAAA,IACU,IACfxO,OAAAA,IAAX,OAE+B,MAC3BgP,KAAmB,IAAvB,GAAiC,MAAjC,OAEYV,IAED7J,MAAT7H,IAA8B6Q,IAFR,MAIxB,UACW3Q,IAAX,OAA6C,MAAZA,IAAjC,UAAA,SAI6BkD,UACX,IAAA,IACKiP,KAAc,IAEjCxK,IADF,IAEEgJ,OAFF,IAI4B,IACcpsB,IAAG,UAAHA,IAAH,IACnC6tB,QAAiB,MAGjBC,KAAkB,IAMtBC,IAAwB,IACxBC,OAAgC,SAChB,IACP5P,IAAT,IAEwB,IACU,IAChBuL,IAJlB,IAAA,EAPI,EACAsE,KAAW,QAlBFC,KAAc,MAD7B,GA+BA,gBACE,IAC2BC,IAAmC,QAC5D,OAEgBC,KAA0B,SAF1C,GAFF,GAKA,UAMA,OAE6B,KAAQ,KAE1B3S,OADT,OAEG4S,QAAoC,QAFvC,GAGiBH,KAAc,YAC7B,IACqBC,IAAmC,WACtD,OAEgBC,KAA0B,SAF1C,GAFF,MAJF,IAWiCE,IAC/BT,KAAiB,MACjBjB,KAAmB,MACnBC,KAA4B7sB,IAAG,IAAV,MAHrB,KAKe,MACC,SAClB,OAAA,OAAA,UAAA,UAAA,OAAA,MA+FU5K,UAAK,KAAX,EAPAm5B,KAEEC,IACAC,IAHQ,OAKV,KAlDA7B,KAAmB,YACdnR,IAAL,OACiB,YACjB,IACqBO,IAAK,KAAV,IACG,OACG,UACpB0yB,OAAAA,GACS,GAAJ,IALP,OAQQ1uC,IAAG,IAAHA,IAEL,IAEG,IAEA,IAEA,IAEA,IAEA,IAEO2uB,UAAKlT,IAAD,KAAX,IAFA,GAFA,GAFA,GAFA,GAFA,GAFJ,OAaF,IAYA8S,KAEEC,IACAC,IAHQ,OAKV,KAhBuBG,IACnBL,KAAe,KAGbC,IACAC,YAJa,IADmB,MAAlB,MASlB,KAnEF7B,KAAmB,YAEhBnR,IADH,IAEiBoT,UAAAA,IAAqC7uB,IAAG,IAAxC6uB,UAFjB,IAuBAN,KAEEC,IACAC,IAHQ,OAKV,KAvBYxB,IAAY,MAAtB,OAC2B,SACtB6B,IAAL,IAKqBF,IACnBL,KAAe,KAGbC,IACAC,YAJa,IADmB,MAAlB,MASlB,EAbElK,KAAgB,IACZ,MAAoB,MAAJhJ,IAAJ,IAAA,MAChB,EAlBJgT,KAEEC,IACAC,IAHQ,OAKV,IAPMr5B,UAAK,KAAX,EAxBgBw3B,KAAmB,MAwH3CC,KAA4B7sB,IAAG,IAAV,MACV,QAAJub,IACHkS,KAAgC,KAAA,MADpC,EA9HmCa,IAC/BT,KAAiB,MACjBjB,KAAmB,MACnBC,KAA4B7sB,IAAG,IAAV,MAHrB,EAvCa,EALf,IAHM5K,UAAK,KAAX,EAiLJ,MAC+B25B,GAAAA,IACzB,KAAQ,KAAc,MAA1BxT,GACGsS,OAAiB,MAAuB,WAAM,IAAA,MAC1CK,OAAc,SACrB,IACsBM,IACgB,MACpC,IAA4BvE,KAAsB,KACpD,EAEF,GACWuE,GAAAA,MAAT,IAEIA,IAAmC,KAAW,KAC5CA,IAD4C,MAFlD,EACwC,IADxC,EAMF,EACA,uBAaiBxQ,MAXL,KAAJ3E,OAAJ,GACwB,QACtB,OAE6B,SAF7B,SAIiC,KAA/B,UACyB,OACF,MACR,KAEN2E,OAAoB,OAAZ,MAAb,GAAqC,EAAA,EACvC,GANuC,SAAV,KAA/B,IAWc,KACV,KAAJ3E,IAAJ,MAAA,IAGE,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,KATb,OAK8D,IAOhE,KAXuB,MADrB,KANQ,IACA,EAmBZ,mBACqB2V,GAAAA,IAAD,MAAJ,IACKrC,IAAD,GAAJ,IACV,MAAe,IAAA,MACf,MAAgB,GAAJ,IAAA,MACA,MAAhB,IACqB3Q,IAAK,KAAV,IAED,IADJ,IAES,GAAJ,IAJhB,IAMF,EACA,GACa2C,GAAAA,OAAAA,MAAX,OAEAgP,OAAmB,IACPV,IAAY,SACbxR,IAAX,OACiByS,KAAc,MACjB,WAAd,aAAA,IACwBC,IAAmC,WACzD,IAEgBC,KAA0B,SAE5C,IAMA,IAEwB,KAAQ,KAAf,MACC,MAClBG,KAEEC,IACAC,IAHQ,OAKV5B,KAA4B7sB,IAAG,IAAV,QACrB,IATQ5K,UAAK,KAAX,EANqBk5B,IACrBT,KAAiB,MACjBjB,KAAmB,MACnBC,KAA4B7sB,IAAG,IAAV,MAHrB,EAT4B6sB,KAA4B7sB,IAAG,IAAV,QAA5B,IAHf5K,YAAK,KAAX,EA8BmB4wB,GAAAA,IAAwB,KAA3B,IAClBtJ,IAAIsJ,MAAD,KACL,EACA,uCACmB,MACC,MACM,YACxB,IACsB,MAAQiJ,GAAAA,IAAa,KAC9B7Q,GAAAA,IAAb,OACuBA,IAAc,KAAnC,OAEEkL,IAAc,KACS,QAAvB,OAAA,OAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,OA8BIC,KAAc,IA9BlB,KA0BIO,IAA2B,KAAK,MAArB,KACX,KAJApN,IAAI8K,IAAD,KACH,EAJA9K,IAAI8K,IAAD,KACH,EAJAuC,KAAgB,IAChB,EAJAK,KAAc,KACd,EAPAL,KAAgB,IAChBrN,IAAIC,IAAD,KACCC,IAAD,KACH6N,KAA2B,IAC3B,EAViC,KAAK,MACtC,IAAA,GACEtZ,IADF,GAEE0Y,IAAU,IA2Ba,KAnC/B,OAqCgB,IACM9J,KAAyB,KAAL,MAA9B,IACoC,IAArB,IACD,IACA,IAC8E,IAAjC,IAA5C,IAC2C,IAArC,IACtBvB,IAAb,IAC0BA,IAAgB,WAAxC,IAEsBA,IAAgB,IACF,MAFlC,IAK2B,MACmB,KACT,KACnC,IAC4C,KACpB,MACF,MAED,YAd6B,GAA9BA,IAAgB,KAAxC,IAgBgB,IAElB,EAEF,6DA4KuB,GA1KDJ,IAEhB2P,IAAwB,IACxB3L,IAAmCK,IAAH,MAC5ByM,IAAJ,GAEetM,IAAyB,QADtC,OAKkB,SAChB,OAAgC,MAAhC,GACW,QAPb,IAS4B,IAEnB,IACiD,IAA5B,IAAd,IACwB,IAC1CuM,IAA2B,SAC3B,UAAgD,KAAhD,aAQ6B,cAGb/C,IACH,WAAM,IAAA,MACjB,cAEe,GAFf,UAG6B,KAAZ,GAHjB,gBAO8B,KAEC,KAApBgD,IADT,OAAA,UAAA,UAAA,OAI0C,WACxCC,GAKsC,MACC,MANvCA,KACsD,KAAhB,MAEnB,KADoB,MAEQ,KAAhB,MAJ/BA,GAUA,GAEoD,KAA3B,OAAvB,MACsC,UAElC,OACsB,QAAlB,MAAA,GADJ,GAHJ,MASA,GAI2C,QAf7C,MAFFhkB,KAeM,GAMN,UAgCaikB,IAAX,SAKQl6B,UAAK,KAKFm6B,WAA0B,YACnC5F,OAAN,OAC+B,IACtBoF,IAAT,IAEIA,IAAuC,QAAA,KAF3C,KAC0C,IAAA,IAAH,IADvC,GAIA,GACc,KAAZ,OAAA,UAemB,KACE,KAEJ,KAAJxT,IADT,OAE6B,MAAX,GAFlB,OAAA,OAIoC,MAAf,GAJrB,IAKgB0J,IALhB,IAMSA,IAA0C,QAAA,KANnD,MAoBO,QAtCb,YA0BY,WAAM,IAAA,SACK,GAAJ,OACP,KAAM,IAAA,MACMuK,QAAsB,OAKtCC,KAAqB,MACrB,cA/BE,WAAM,IAAA,SACK,GAAJ,OACP,KAAM,IAAA,MACYC,KAAqB,OAK3CD,KAAqB,MACrB,KA7BAE,cAAkB,OAClBxH,KAA+B,IAC/B,QAlCc,WAAM,IAAA,YAGN,KAALvzB,IAAX,OAeW,WAAM,IAAA,SAAwB,MAfzC,WACE,UAEO,KAAM,IAAA,SACA,WAAM,IAAA,MACN,WAAM,IAAA,MACI,KAArB,OAC0B,KAAxB,IAEe+vB,WAAY,SACf,MACViL,QAAa,OAJf,QAAmD,MAAnD,GAMS,KAAM,IAAA,MAZnB,KAAgC,WAAM,IAAA,MAAtC,GAec,KAAhBC,IAAAA,GACEF,cAAkB,OADpBE,SAI2B,QAC3B,OAIoB,QAAA,KAJpB,IACwB7xB,MAAG,KAAA,OAAA,IAAA,IACV,QAAA,QACQ,MA8D/B8xB,QAAkB,KACpB,EAjJgC,OACA,IACd,IAwJtB,EATM,EAEA1R,OAAAA,OAAAA,MACE,IADFA,SAE6C,QAA5B,IAFjBA,KASiB4P,GAAAA,IAAwB,KAC7CA,IAAmCvL,IAAH,QACzB,IAA0BA,IAAjC,EAIQkH,GAAAA,MADR,IAEQA,OAFR,IAGQA,OAHR,OAK8B,IACrBvG,MAAT,IAAA,GACUrE,UAAAA,IAAP,IAAA,GACQ4N,IAAAA,IAAP,IADD,GADH,GAGEC,KAAoBxJ,IAAoBgJ,MAArB,MAHrB,EAIF,EACA,UAC6BzN,GAAAA,UACX,IAAA,IACKiP,KAAc,IAC/BxK,IAAJ,IAAmCgJ,IAAnC,MAC4B,IAAUyB,KAAiB,MAGnDkC,KAAY,IAMhBhC,IAAwB,OACR,IAChBC,OAAgC,MACnB5P,MAAb,IAIkB,MACW,IACtBuL,IAAP,IALQv0B,UAAK,KAAX,EARE,EACA64B,KAAW,QAcjB,IACkB7P,GAAAA,IAAhB,IAAkC4R,KAAkB5R,IAAD,KAAnCA,IAAhB,IACF,EACA,IACkBA,GAAAA,IAAhB,IAAmC6R,IAAW,IAA9C,GACED,KAAkB5R,IAAD,KADHA,IAAhB,IAAmC6R,IAAW,IAA9C,GAEF,EACA,GACaC,GAAAA,IAAsB,KAAwBjK,MAAnC,OACe,KAAb,QACxB,IAAgE,IAAhE,EAAgB6J,KAAkB,KAClCX,IAA2B,MAC7B,EACA,eAmCkB,GAhCa,KACD,KACF,KAAbpG,IAAX,IASYoH,KAAU,MACpB,IAKA,OAK8B,IACd,IACd,EANW,KAAM,IAAA,MACS,MACH,MAHzB,EAJS,WAAM,IAAA,MACC,IACd,EAXYC,KAAqCnK,IAAzB,OAD1B,IAwB2B,KAC7B,IAIc,OAjChB,OAmCM0D,IAAN,OAAmE,IACrE,EANoB,IACd,EAvBgB,IACd,EA4BR,EACmCrM,GAAAA,IACd+S,IAAyB,KAEzCA,MAAoC,SACb,IACtBC,iBAAc,IAOfD,OAAoC,SACb,IAE1B,EAJU,EACPA,IAAoC,MACb,IAC1B,EAGF,YAMK1C,GAAAA,KAAmB,IACN4C,IADhB,IAEW5R,OAAAA,IAAX,OAEkB,MACF,MAChB,OACiB,MACC,MACM,KAAxB,OAIiB,MACI,MACW,KAAoB,KAA/B6R,IACrBC,IAAgB,MACPrN,IAAT7H,IACuC,IAArB,IACc,IACb,WAAXiV,IAAP,IAAA,GACmB,KAAXA,IAAP,IADD,GAECE,IAFD,KAG6B,IAC5BlD,KAAmBH,MAAgB,KAAjB,MAIe,WAAXmD,IACF,KAAXA,IAAX,IAAA,IAgBmB,MAhBnB,EACmBH,IAAyB,KAC1CA,IAAoC,MACb/S,OACF,IACMqB,OACX,IAAA,IAChBwQ,IAA2B,MAC3BwB,KAA2B,MAC3BjF,KAA4B,MAChB,MACZkF,KAAmB,OACnBC,IAAY,IACI,IACK,IACrBR,IAAoC,MAEtCK,IAAAA,KAC8B,IACE,IACH,IACR,MACrB,IAA+D,IAC/DI,IAAwB,KAAZ,MACZjE,KAA4B7sB,IAAG,IAAV,MACrB,IAE8B,MACK,OAFjC,IAK4B,IACC,KACF,MACR,MAFkB,EAAA,KAAA,KAAd,MAHV,GADoB,KAFjC,IAUE4kB,IAAJ,GAKOmM,OAAAA,IAAP,IAAA,GACY,KAAV,IADF,GAEEpD,KAAmB,IACA,MACdqD,IAAP,IAIsB,IAJtB,EACaC,IAAT1V,IAEqB,IAA6B,IAFlDA,EACEkR,IAAiB,GAAA,IAGvBhP,IAAkB,IAClB,IAd0B,IAChByT,IACW,IAFnB,IAxDM97B,UAAK,KAAX,EAJwB,IAHlBA,UAAK,KAAX,EAsBEu4B,GAAAA,OAAmB,MACnB,EAwDN,yEACe4C,GAAAA,IAAb,MA8IA,EA7IuBnD,IAAqB2D,IAAD,KACtBV,IAAyB,KACvB/S,IAEnB+S,IAAoC,YACZ,OAAH,IACRE,IAAb,OAGmBA,IACY,IACH,IACf5R,OAAAA,IAAX,OAE2BA,UACX,IAAA,OACgB,KAAjB,IAAf,OACcgM,OACG,KACJA,IAAU,KAAVA,IAAX,UACuB,SACrB,YAC+B,KAA7B,aAC+B,OACd,IAAf,OACuBA,OACC,KAAtB,IAAA,IAAA,IAIIoB,QAA2B,OAJ/B,GAMmC,QACnC,IAIkBpB,IAAhB,IACmBA,OACW,KACE,KAC9BI,KAAuB,QACvB,OAIA,OAKU,IAdZ,YAUkB,MACJ,IACV,EANU,IACV,QAVkB,MACT,IAXyBJ,IAA1C,UAFqC,SAAV,KAA7B,UAiCyB,QACzB,OACmC,QACjC,OACqB,MACnB,GACqC,KACd,SAFvB,OAOM,IA9CZ,GAiDc,KAALvR,IAAX,OAAA,OAGqBuR,IAAhB,OACOA,OACQ,KAALvR,IAAX,OACe,KAAb,IAAA,IAAA,IAII2S,QAA2C,KAAhB,OAJ/B,GAM0B,QAC5B,OAKkB,KAAR,IAfT,YAWgC,KAAR,MACb,IACV,QAfS,MAAsB,IAvDYpB,IAAnD,UA2EiC,QAClB,IAAf,OACUA,OACc,KACN,KAALwG,IAAX,OAAA,UAGyCxG,IAApC,OACWA,OACQ,KAATyG,IAAX,IACE,GACmB,KAAjB,IAAA,IAAA,IAIIpF,QAAyB,MAE/B,EAAE,EACAtB,QAA4C,KAArB,OACzB,MACF,OAIgC,QAChC,OAKsB,KAAZ,IAvBT,YAmBoC,KAAZ,MACb,IACV,EAPU,IACV,QAjBc,MAAsB,IAJHC,IAAzC,OAgCgB,IAChBlN,IAAkB,IAEhBpC,IADF,GAEwBA,IAAY,UAAnB,GAFjB,IAKIA,IAAkC,MAACC,IAAD,MACpC,EAAE,EAAa,EA9HnB,IAOUlmB,UAAK,KAAX,IA2HI,GACc,IACnBi7B,OAAoC,MAHvC,EACQ,EACc,IACnBA,IAAoC,MACzC,EAIJ,GACgBd,GAAAA,aAA0B,MAC1BG,QAAqB,OACvBE,KAAa,OACXrL,KAAgB,MAC9B,IACGmI,IAAe,OAChBG,KAAqB,MACzB,EACA,oBACuB,KAArB,OAIwC,KAkB3B5H,KAnBX,OAKkC,QAAhC,OAOuC,KAAhC,IACgC,KAGJ,KAAK,MAAlC,GAFJ,IAGiC,MAAf,MAHlB,IAIcA,IAJd,IAKOA,IAA0C,KAAA,QALjD,GAyB6C,KAvCjD,MAqBoBsK,KAA0B,MAC1BC,KAAsB,OAKXI,KAAa,OAKxBrL,KAAgB,IAC9B,IACGmI,IAAe,OAChBG,KAAqB,MAFvB,EA3BFwE,KAA6B,OAK7B,EAbJA,GAAAA,KAA6B,OA2CjC,EACA,MACsB,QACpB,IAAsC,QAAA,KAC3B9M,GAAAA,OAAgB,IACvB,MAAoB,MAAJhJ,IAAJ,IAAA,MAChB6H,IAAAA,IAAAA,GACGgJ,IAAAA,IAAD,IADFhJ,GAESuG,OAAN,IACMA,OADN,IAEEyC,UAAAA,IACCA,IAHH,IAIOpsB,IAAG,IAAK6uB,IAAR7uB,UAJP,IAMIgvB,IAA6B,IAAA,IANjC,EAKGnB,OAAiB,MAEvBhB,KAAqB,MACvB,EACA,WACE,IACuB,KAAbyE,OAAP,IAEiBC,GAAAA,IACA,IAAA,UACPA,OAAP,UAAmD,OAAnD,GACUhN,GAAAA,OAAgB,IAChB7F,KAA6B,QAC7C,IACGgO,IAAe,OAChBG,KAAqB,MACzB,EAOA,GAEuB,KAArB,GAAA,OAAA,MAUUz3B,YAAK,KAAX,EAH0B,OAC1B,EAN8B,KACG,YACjC,IAAoD,SAApD,EAUJ,IAAwC,QAAA,KACxCo8B,GAAAA,OAAqB,MACvB,EAwbSjU,GAAAA,YAAgB,MAAvB,EAEF,MACU,SACA,QAC+E,MAAnB,MAAZ,MAAjB,MAAd,MAAb,QACF,MACF,SACS,MAC6D,MAArB,MAAnB,MAArB,SACR,MACqB,MAAb,MACH,MACc,MAAb,MACD,QAChB,EAEakU,GAAAA,KAAS,KAAA,mBAAA,IAAA,IAApB,EAEF,GACuB,KACZ,GAAA,GAAwB,MAAV,GAAhB,GAAP,EAEF,UACqB,GAAnB,MAEA,MAAA,IACuB,KACH1Y,GAAAA,IAAlB,IACkBC,IAAlB,OAEF,KAFqC,KADO,EAHnC4M,GAAAA,OAAe,OAAfA,MAAP,EAQJ,QAC8B,KAC5B,IAYiC,MACC,KAAV,QACC,MACO,MACH,MAhB7B,EACuB8L,GAAAA,KACV,KAEA,KACA,UAJqB,IAMO,KAAV,MACG,KAAV,MACe,KAAV,MACA,MACP,SAMQ,WAAP/L,IAAH,MACe,KAAV,MACK,KAAV,MACU,KAAV,MACkB,KAAV,MACU,KAAV,MACQ,KAAV,MACJ,OAEpB,IAEyB,KAAkC,MAAvD,EAAA,IAAA,QAHqB,MAIK,KAAV,MACQ,KAAV,MACQ,KAAV,MAClB,EAEF,4CAUqB,OAAnB,iBACK,OAGIpN,GAAAA,IADJ,OAGIG,IAHJ,OAOID,IAPJ,OAcIE,IAdJ,OAqBIC,IArBJ,OA4BI+Y,IA5BJ,WA+BC,IAAA,IACc,KACL7Y,aADP,OAIOD,aAJP,OAOOE,aAPP,OAUOC,aAVP,OAaOC,YAbP,SAkBI7jB,MAEA,OAAA,IAAD,UADH,IADS,KAAX,EArBO6yB,mBAAwB,IAA/B,EANUyJ,mBAAW,IACC9Y,IAAH,MACN,MAHb,EANU8Y,mBAAW,IACC/Y,IAAH,MACN,MAHb,EANU+Y,KAAmCE,eAAxB,IACCnZ,IAAH,MACN,MAHb,EAHI,UACJ,EAJOgI,KAAoC,gBAAb,IAA9B,EAL0BmF,GAAAA,OAAe,cAAfA,YA0D1B8L,GAAAA,mBAAW,IACF,MACP,MACC,MACT,EAGWA,GAAAA,mBAAW,OACR,MACd,EAGeA,GAAAA,mBAAW,IACCC,IAAH,SACN,MACO,IAAA,KAAH,MACtB,EAGUD,GAAAA,kBAAW,OACR,MACb,EAEF,GACSA,GAAAA,KAEU,OAAf,IAA6C,IAA7C,EAAiC,KAC3B,gBAHU,OAMR,MAEa,MAEC,MAHP,EAAA,KAAA,KAAA,KAAH,MAKd,EAEF,KAOU,SACU,QACsD,MAAvB,MAAf,MAAjB,YACC,MACoC,MAAf,MAAtB,MACI,MACHG,GAAAA,MAAa,KAAhB,MACqB,KAAhB,MAC6H,MAApB,MAAtB,MAAnB,MAApB,MAAxB,MAArB,MACe,KAAhB,UACG,SACE,MACzB,EACA,IAEiB,QAAb,IAA4C,MAA5C,IAA2D,IAEjDrZ,GAAAA,MACL,OAFA,EAAA,IAAA,OAAA,OAAA,QAAA,KAAP,EAQF,GACuB,QACrB,IAQYsZ,GAAAA,IAAoB,OACzB,IAAqC,KAA5C,EARqC,UAAhB,GAAnB,MAEY/9B,MAAW,KAAA,KAAgB,SAAA,KACjCqB,UACJ,IADS,KAAX,IAFQA,UAAK,KAAX,EASN,mBACyB,KACTmvB,GAAAA,KAAgB,IACrBH,KAAiB,KACvB,GA2CsB3P,IA3CtB,KACgC,MAG7B6E,IAAsB,KADxB,OAEuB,QAFvB,OASkC,QAAhC,IAAA,IAMQ4F,IAA0C,KAAzB,KAArB,GAO+C,KAdrD,MAgBM9pB,UAAK,KAAX,EAPkC,KAAU,MAEpC,EAPwB,KAAU,KAgBnB,QAAzB,IACiC,KAC3B8pB,IAAiB,QAArB,GACoBjC,IAAmB,OAUzB,KAAlB,IAE6B,MAF7B,EACsB,MAEV0H,KAAY,MACJ,KAAA,KAAH,QACNxT,OACX,IAAwC,MAC9Bye,KAAa,OACvB,IACGpM,mBAAqB,IACtBuO,KAAmB,OACrB,IAhDY38B,UAAK,KAAX,EAkDR,EACE,EAEF,KACE,QACiB,GAAjB,IACqB,KAArB,GACqB,KAArB,GAAoD,KAAU,KAA9D,GAEoB48B,GAAAA,OAAgB,QAC7B,IAEc,KAAjBC,GAEiB,KAFjBA,EACiB,KAAU,KAD3BA,GAFJ,EAF0B,KAAU,KAAlC,EAFwD,KAAxB,EADS,EADZ,EAYjC,EACE58B,MAAa,QAAA,OACf,EACA,OACaqgC,GAAAA,IAAS,KAAA,SACpBna,KACEua,KAAkC,cAAnB,IAGnB,EAFMJ,GAAAA,IAAY,KAACK,GAAAA,IAAD,OACd,EAluQU,KAAA,OACG,MACb,EAyFc,KACO,MACL,KAChBtgB,GACQ,MAALA,GAE6B,UAAZ,GAAd,MAA4D,MAA5D,EADoB,MAAA,IAEGM,GAAAA,IAAH,MAJ1BN,EAKF,EACiB,GACC,KAChBA,GACQ,MAALA,GAE6B,UAAZ,GAAd,MAA8D,MAA9D,EADqB,MAAA,IAEIM,GAAAA,IAAH,MAJ5BN,EAKF,EAEsBM,GAAAA,OAAH,QACnB,EAEY,KACU,KAAY,MAEhC,GAAA,QAAA,SAAA,GAA0C,IAA1C,EACyD,MAAtB,MAAnB,MACsCC,GAAAA,IAAH,MAA1B,MACwB,MAA1B,QACzB,EAKe,EACb,EAKS,GACG,MAALP,KAAmBne,MAAQ,KAAA,IAAlC,EAKoB,KAAA,KAAA,KAKb,IACU,KAAR,MACU,KAAA,OAAA,IAAA,IACrB0lB,GAAAA,IAAuB,OAAjB,MACS,MACV,KAAsB,MACTA,IAAgB,MAAT,KAAD,OAAT,MACK,MAAR,MACZkV,IAAiB,KACjB,EAbA,EAAc,EACd,EACSC,GAAAA,IAAW,KAAA,EAAA,MAAA,MAAlB,EAyCY,EACZ,EAmFyB,MAAA,MACzB,EACkB,UACRC,GAAAA,IAAR,IACEA,MAAuB,MACrBC,MAAS,KAAb,MAESC,IAAU,KAAd,UAMA,QAAA,OAKW,MAAuB,KAACC,IAAD,KAClC/b,IAA8C,MAAQ,KAAtB,MAC3BA,IAAY,SAHpB,OAOmBH,IAAS,OAF1B,OAMoBA,IAAS,OAD3B,IAEoC,MAFpC,GAFY,GADGA,IAAS,KAF1B,MASIG,IAAqC,MACrC,EAxBK,MAAuB,KAACgc,IAAD,KAC/Bhc,IAA8C,MAAQ,KAAtB,MAC3BA,IAAY,SAAlB,IACGA,IACY,MAAQ,IAAG,MADc,MADxC,EAJS,MAAuB,KAACic,IAAD,KA4BtC,EA4KS/b,GAAAA,IAAP,EAGa,oBAMT4b,GAAAA,IAAU,KAAd,OACK,QAAA,IAIMI,IAAT,IACK,EADyBA,IAAF,GAAA,IAA5B,EAL4BA,OAAiB,IAAA,IAO/CC,IAA2C,MAAA,UAC3C,UAAA,IAEgD,MAFhD,GAGSD,IAHT,QAAA,IAIIJ,IAAU,KAJd,GAKID,IAAS,SALb,MAO2BC,IAAU,KAAVA,GAErBD,IAAS,KAATA,OAEA,IAEAO,IAAU,MAFV,EACAA,IAAU,MAHVP,EACAO,IAAU,MAHWN,EACrBM,IAAU,MAMVlc,SAAJ,MAE0BA,WACtB,GAKQ,GAFEE,IAAS,QAHnB,UAOA,GACO,GADqCA,IAAS,QAArD,GAEWic,gBAAX,IACqBjc,IAAS,KAA0B,GAD7Cic,aAAX,IAEWC,UAAX,IACgBlc,IAAS,KAAoB,GADlCkc,OAAX,IAEa,GAAA,MAAb,SACE,IAEgC,WAFhC,IAKkBlc,IAAS,KACL,KAPX,GAAA,MAAb,QAa6BF,IACZqc,IAAiC,qBAAA,IAOpDJ,IAA0B,KADG,MAE/BK,IAKI9X,IAEE+X,IAFgB,MALtBD,EACI9X,IAEEgY,IAFgB,MASgB,MACL,KAC3Btd,IAAW,KAAf,MAcK,GAEY,eAFZ,KAXuB,OAF1B,IAG0C,MAAA,QAH1C,GAO2B,IAA+B,IAA/B,SADzB,GAFM,GAFkB,QAF1B,IAG0C,MAAA,UAH1C,KASgC,OAC5B,OAY6B,MACA,MACN,MAAA,IAA/Bud,GACoB,KAAoB,MAAA,KADxCA,KAEA,MAA2Czc,SAA3C,OAE2Bqc,IAAiC,MACtDH,IAAU,kBAD4C,IAOtDD,IAA0B,KADI,MAEhCzX,IAEEkY,IAFgB,MAIGC,IAAqB,KAA5B,IACd3c,IAdF,GA6D8B4c,IAAU,MAIpCC,IAAe,SAjEnB,KAiBeR,IAAiC,MAC1CH,IAAU,MACVlc,aAF0C,IAMrBic,IAA0B,KAA7B,MACpBzX,IAA2BkY,IAAT,MAET,MAAP,GAAA,GAA8BC,IAAqB,KAClC,MAAA,IAAnBR,GAA+B,KAAoB,MAAA,KAG1CE,IAAiC,MACxCH,IAfJ,GA6Bc,kBAD2C,IAOnDD,IAA0B,KADI,MAEhCzX,IAEEkY,IAFgB,MAIUE,IAAU,SAxC1C,EAec,MACV5c,aAFwC,IAMpBic,IAA0B,KAA7B,MACnBzX,IAA2BkY,IAAT,MACaE,IAE7B,IAAA,IAAA,IAFuC,MAIzCC,IAAe,SA0BF7c,IAAAA,GAAiB4b,IAAU,KAC9B5b,IAAAA,GAAiB2b,IAAS,KAE1C3b,IAAAA,OACC,IAAA,OAAkC,IAAlC,GAEqByc,GAElBH,KAEA/b,GACA2b,IAAU,MAHVI,EACAJ,IAAU,MAHQO,EAClBP,IAAU,MADQO,GADxB,GASwBJ,IAAiC,MAErDrc,gBAFqD,IAOnDic,IAA0B,KADI,MAEhCzX,IAEEkY,IAFgB,MAIUE,IAAU,MAIrB5c,IAAAA,OAAiB,IAGlCA,IAAAA,GACA,GADAA,OAEC,IAAA,OAAkC,IAAlC,GAJL,MAOmC,QAA/B,MAA8D,OAA9D,OAGkC,SAFhC,IAM+B,IAAiB,SAD9C,OAAA,OAAA,IAMW8c,IAAmB,KAER9c,OAAlB,QACE,IAEuB,UAFvB,IAOSE,IAAS,QARpB,QADFvL,KAaA,GAtBa,GADe,UAFhC,IAiCY8nB,KAEZtY,GACA+X,IAAU,MAHEO,EACZP,IAAU,MADEO,GADlB,GAOiBJ,IAAiC,MAE9Crc,gBAF8C,IAMlBic,IAA0B,KAA7B,MACzBzX,IAAgCkY,IAAd,MACUE,IAAU,MAItCC,IAAe,KACnB,EAKEpf,GAAAA,OAA2C,QAC7C,EAuPe,QAMb,OAC2B5M,GAAAA,IAAwB,IAC1BC,IAAsB,IAC/C,GAAA,KACQpS,UACJ,UAAA,IADS,KAAX,EAGaq+B,IAAwB,SACrCC,MAAAA,eADqC,IAMvC,GAgBK,GAEA,EADHxY,IAAiCyY,MAAf,MADf,EAfH,IACoB,MAAe,KADnC,IAEY,MAAe,KAAwB,MAFnD,GAWIzY,IAEE0Y,MAFgB,MAXtB,KAGI/Y,GACY,MAAe,KAD3BA,GAEAzC,IACc,MACZC,WAFgB,IAaxB,EAhCwB,EAoJ5Bs2B,GAAAA,eAAuB,OACzB,EACgB,sBACd,QAAA,IAeyB,IAA6B,UAApD,OACsB,KAAuB,IAAf,IAAR,KADwC,GAAV,QAApD,MAXsB,IACY,OAAlC,IAC8B,IACR,KAAQ,IAAR,KACJ,IAH0B,GAAV,KAAlC,IAKwC,WAAxC,IACoB,OAChB,IAA2C,GAAA,GAAG,IAFA,GAAV,WAAxC,IAGc,SAMkB,KAShCA,KAXF,IAKqB,IACH,MACP,MAEK,MACd,IAAA,GAAmBx9B,IAAnB,GAAwC,IAAxC,EAAA,MACAw9B,IAAuB,OART,GADkB,KAFlC,IAaF,EAGOhB,GAAAA,IAAiB,QAAU,KAAV,KAAjBA,KAAP,EAGoB,GACT,KACG,UACdx8B,IAA+B,KAAwB,QACvD,KAAgB/b,UAAK,KAAX,EACV,EAGU,KACR,IAKIif,GAAAA,IAA2B,MAA2B,MAAA,IAL1D,EACIA,GAAAA,IAA2B,MAAyB,MAChD,KAAU,QADsC,MADxD,EAMF,EAydmC,EAAA,KAMS,KAC5B,KAAH,MAGI,KAAH,MAGK,KAAH,MAMW,KAAH,MAMC,KAAH,MAcI,KAAH,MAcrB,EApDA,MACiB,MACE,IAAH,SACC,QACjB,EAGEA,GAAAA,IAA2B,MAA6B,SAAA,OAC1D,EAEEA,GAAAA,IAA2B,MAA8B,SAAA,OAC3D,EACiB,GACfA,GAAAA,IAA2B,MAAkB,MACvC,KACJ6f,SAAiC,MAFU,MAI/C,EACyB,GACvB7f,GAAAA,IAA2B,MAA0B,MAC/C,KACJ6f,SAAiC,MAFkB,MAIvD,EACuB,YACJ,MAAjB,IAGsB,OAApBE,GACsC,KADtCA,EAEF,IACE/f,GAAAA,IAA2B,MAAwB,MAC7C,KAEJ6f,OAAiC,SACA,eAJgB,IAMvD,EACwB,GACR/Z,GAAAA,IAEZE,IAEI,MAAW,iBAJW,IAM5B,IACEhG,IAA2B,MAAqB,MAC1C,KACA,MAAW,MAF+B,OAKpD,EA80BS,GACoB,QAAtB,GACHiF,GAAAA,MAAsB,KAAtBA,IADJ,EAIe,MACJ,MACKiL,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACT,MACdxT,IAAAA,KAAuB,IAAvBA,GAA4D,MAClDye,KAAa,SACvB,IACGpM,mBAAqB,IACtBuO,KAAmB,OACvB,EACqB,MACR,MACKxN,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACb,SACI,MACdxT,IAAAA,KAAuB,IAAvBA,GAA4D,MAClDye,KAAa,SACvB,IACGpM,mBAAqB,IACtBuO,KAAmB,OACvB,EACoB,MACP,MACKxN,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACb,MACVxT,IAAAA,KAAuB,IAAvBA,GAA4D,MACjDye,KAAa,SACxB,IACGpM,mBAAqB,IACtBuO,KAAmB,OACvB,EA+2Ce,MACXtO,GAAAA,OAAuB,IAAmB,IAAA,MAExCtS,OAFwC,IAAH,MAIvC,EAImB,UACZ,QAAA,IAA8C,KAAC,IAAA,IAAD,KAC9C0S,GAAAA,KAGLG,KAA2B,QAAA,uBAHP,IAAtB,EAQOH,GAAAA,wBAAe,IAAtB,EAGOA,GAAAA,qBAAe,IAAtB,EAEO,GACIJ,GAAAA,OAAuB,MAC3BtS,OAAAA,GACgB,IACF,IAAA,IAAA,IAAH,MAClB,EAEU,MACCsS,GAAAA,OAAuB,OACrBtS,IAAsB,KACA,MAAjB,MACR,aAAA,KAAA,KAQA,MACmBsjB,KAA0B,KAErD7R,MAFqD,OAA7B,MAKd,KAAL,IAAA,IAAA,IAAP,EAGWa,GAAAA,OAAuB,IACnB,KAAA,IACW,MAA1B,EAIgB,GACRA,GAAAA,OAAuB,IAAgB,MAA/C,EAGkB5O,GAAAA,SAAU,OACH,IACX6f,KAAoB,QAAkB,MAAlB,MAClCjR,KAAuB,IAAgB,MAChC,IAAA,IAAA,IAAP,EAEgB,EAAY,EACR,MACRb,GAAAA,IACHa,OAAuB,IACF,IACjBL,MAAb,OAIOtE,OAAAA,MAAP,IACEuE,KAAyB,OACT,MACP,EAAA,IAAA,KACD,MACVzO,KAAYqO,KAAqB,mBAAA,IAAgC,IAAA,IAAtD,MAGN,WAAM,IAAA,MACXC,KAEEC,KAAwB,sBAAA,aAFhB,IAMV,IAlBQ/tB,UAAK,KAAX,EAqBSquB,GAAAA,OAAuB,IACbL,IAAkB,MACpBuR,IAAqB,GAAA,GAAA,QAEtC,IAAsD,QAAA,SAAtD,IAAA,IAAA,IACwB,MAA1B,EAgBO7f,GAAAA,KAAc4O,OAAD,KAApB,EAIWb,GAAAA,OAAwB,IAC5B+R,KAA8BlS,IAAW,QAAlB,OAA9B,EAGgB5N,GAAAA,KAAc4O,OAAD,OAAmB,IACtCb,KAAwB,IAAE,KAC7B,IAAA,IAAA,IAAP,EAmBO9N,GAAAA,KAAgB2O,OAAD,KAAtB,EAGgB,GACLb,GAAAA,OAAwB,IACnBH,MAAT,IAEHkS,KAA8BlS,IAAW,KAAlB,OAFpB,EACgB,SADvB,EAKgB3N,GAAAA,KAAgB2O,OAAD,OAAmB,IACxCb,KAAwB,IAAE,KAC7B,IAAA,IAAA,IAAP,EA0lCc,iBACY,KAA9B,OACgB,KAAd,IAAgC,KAAhC,IACmB,KAAd,IAAmC,KAAnC,IACC,KAAa,MACN,KACX,EAJ0C,MAAe,KAAK,KAAL,KAM3D,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,KAbb,GAAA,WASgE,IAMlE,EACsB,EAAY,EACV,MACf,QAAP8C,IAAAA,GACG1D,GAAAA,KAAgBD,IAAoB,OAArB,KACc4sB,IAAH,SAF7BjpB,GAGiB,QAAM,IAAA,MAHvBA,EAIF,EACmB,SACjBwP,IAAsC,QAAM,IAAA,MAA5CA,EACF,EAy0Ec,mCACZ,IAqBqB,GAAA,IArBrB,EAEW,KAAiC,KAD1C,IAEExY,GAAAA,IAAyB,KAF3B,GAOkB,KAAPgJ,MADT,IAEuB,QAAdvH,IAFT,IAYiC,WAAPuH,MAAP,MAAH,IAlBlB,EAWuB,IACjByP,KAAsC,OAFxC,EANc,GAAA,IAJlB,EAqBkB,MACE,uBAqZX1M,GAAAA,KAAwB,OAA/B,EAFOC,GAAAA,KAA2B,OAAlC,EAxB6B,KACF,KAET,QAAdvK,IAEIgI,GAAAA,IAAmB,MACzBS,GAAAA,KAAwC,MACrB,MACnB3H,IAAiB,OAAjBA,GACqBgH,IAAmB,OAExCZ,KAAoB,MACpBwB,KAAsB,OACtBC,mBAAkB,IAClBC,qBAAoB,IAftB,EAROnB,GAAAA,KAGS,KACA,gBAJgB,IAAhC,EAZ6B,KAChBO,GAAAA,IAA6C,KAA1B,MACU,KAAV,MAC9BiP,mBAAmB,IAJrB,EAV2B,KACE,KAAa,KACxC/P,GAAAA,KAAoB,MACT3Q,KAAW,KACA,KACP,KAAM,IAAA,MACrB+Q,gBAAiB,IACH,KARhB,EA9G4B,KAAK,MACP,KACG,KACL,KACtB7I,GAAAA,IAAKqB,IAAsB,MAAvB,MACmB,MACvB,OACMF,IAAmB,KAAX,MAAZ,MAc+B,KACzB,IAAA,GAAyC,MAAzC,MAFJ,MAMuB,KACrB,OAmC4B,KAArB,OAKmB,KAArB,IAeuB,cAfvB,KACkB,KACrB,IAIQ,KAAM,IAAA,MACC,KACf,IAAsB,KAAM,IAAA,MAC5BsK,KAA+B,OAKV,cAdlB,OAGKlzB,UAAK,KAAX,EANU,KAAwB,OAAlC8xB,IAEc,KAFdA,YAFG,KAlCgB,KAEE,kBADvB,OAKgB,KAAd,IA0BuB,iBA/BzB,SAMwB,QAApB,IACevC,KAA+B,GAAd7F,IAAL,MACX,MACc,WAC5B,IAC2B,MACA,KACzB,IAE+B,KAAV,MACJ,MAHjB,EACoB,MAGD,YAGb,KAAM,IAAA,MACO,KACvB,IAAkC,KAAM,IAAA,MACxCwJ,KACY,KADmB,OAK3B,KAAM,IAAA,kBA0BhB,UAEE,SACE,IAIqB,KACrB,IAKmB,QAXrB,MAOgC,KAAX,SAEjB,EAXgC,SAAtC,YA/DF,SAXY,KAAqB,KADjC,IAEG3L,IAAyB,KAF5B,GAImB8I,KAA4B,OAK7C,EAmFNC,KAGS,gBAHQ,IAMc,KAEjC,EAtHEA,GAAAA,KAGgB,KAAa,gBAHZ,IAMH,KAPhB,EATEA,GAAAA,KAGgB,KAAa,gBAHZ,IAMH,KAPhB,EATEA,GAAAA,KAGgB,gBAHC,IAMH,KAPhB,EAf6B,KACF,KAET,QAAdtH,IAEIgI,GAAAA,IAAmB,MACzBkP,GAAAA,sBAAgB,IAPlB,EAhBE/N,GAAAA,KAEgB,KAAU,MAFT,MAIU,KAC3B,IAOI7B,mBAAiB,IAPrB,EAC4B7D,iBAAoB,IAAvB,MAOX,KAdhB,EAFO+G,GAAAA,KAAuB,OAA9B,EAFA,EAPEC,GAAAA,KAAe,KACY,KAAa,KACxC5B,KAAO,MACPvB,gBAAiB,IACH,KALhB,EAlBAoD,GAAAA,KAAmB,KACnB,IAEwB,KACE,KAAc,MACxC3C,KAAgB,MAChB1G,kBAAkB,IACM,KAAc,MACtCpmB,IAMKqsB,mBAAiB,IACc,KAPpCrsB,EACsBosB,KAA4B,OAOlD,IAdQrwB,UAAK,KAAX,EAjB2B,KACF,KAET,QAAdgpB,IAEIgI,GAAAA,IAAmB,MACzBmP,GAAAA,sBAAoB,IAPtB,EAf6B,KACF,KAET,QAAdnX,IAEIgI,GAAAA,IAAmB,MACzBN,GAAAA,sBAAuB,IAPzB,EAvD0B,KAExBe,GAAAA,KAAwC,MAChB,KACL,MACU,MAAV,KACA,MACY2O,KAAuB,KAA1B,MAClBpP,IAAmB,MAC7B,OAAA,OAAA,OAAA,MAsCMhxB,UACJ,QAAA,IADS,KAAX,EATqBigC,KAIfjP,IAA6B,KAAV,mBAJe,IAOpC,EAhBiBkP,qBAAgB,IAOjC,EAhBiBC,qBAAoB,IAOrC,EAhBiBzP,qBAAuB,IA0C9C,EA1G8B,KAC9Be,GAAAA,KAAwC,MAChB,KACV1H,IAEZvC,IAAkB,KAFU,MAI9B0I,KAAoB,MACVC,qBAAe,IAQX,KAAM,IAAA,UAEL,GADf,IAAA,IAG+B,UAAd,GAHjB,IAIoB,KAJpB,IA+BqB,MACjBG,kBAAiB,IACe,KAjCpC,KAMoB,MACU,MACF,MACtBxG,IAAiB,OAArB,GAEEgH,IAAmB,OAGH,OAAhB,IAA4C,OAA5C,IACW,KAFe,MAI5B3G,KAAqB,KACHH,IAAH,MACS,MACD,MACvB2H,mBAAkB,IACDC,qBAAoB,IAYvC,IAkWE5xB,MAEY,SADhB,QAAA,IADS,KAAX,EA0T2BupB,GAAAA,UACX,IAAA,IAChB,QACW,KACD,GACS,MACf,IACyC3e,IAAG,UAAHA,IAAH,IACpC8sB,IAAAA,GAA+BrP,IAAkB,IALrD,EACQ,KACS,MACf,IACyCzd,MAAG,UAAHA,IAAH,IACpC8sB,IAAAA,GAA+BrP,IAAkB,IACvD,EASgC,EACpBroB,YAAK,KAAX,EAI8B,EACxBA,YAAK,KAAX,EAsBI08B,GAAAA,SAAoB,OACrB,IAA6B,KAApC,EA0BsC,IACnBsb,GAAAA,SAAkB,KAA9B,GACHU,IAA2B,KAD/B,EAKmB,IACdrY,GAAAA,KAIQ,QAAb,IAA4C,MAA5C,IAA2D,IAA3D,aAJiB,IAAnB,EAOwB,SACV,OAAd,IACiB,MAAd,IAIGphB,GAAAA,IAA2B,MAAqC,MACxD,KADwD,OAJnE,EACoB,MAAwB,KACzC,MACED,MAAqC,MAAO,MAAP,OADvC,EAOR,EACsC,KACpC,IACqB,KAArB,GACqB,KAArB,GAAoD,KAAU,KAA9D,GAEoB4d,GAAAA,OAAgB,QAC7B,IAEc,QAAjBC,GACiB,KADjBA,GAFJ,EAF0B,KAAxB,EAFgC,EADH,EAahB,GACJyD,GAAAA,IAAS,KAAA,KACpB,GACaE,KAAuCC,KAA1B,KAAA,oBAAA,IAAA,IACOnE,gBAAW,IAC9B,MACsB,MACO,UAAH,MAOtCnS,KAAqB,KACrBmW,IAAS,KAAA,SAEXI,kBAAe,IACQ,KAAkB,OAAtC,GACc,KAAM,KAArB,GAAA,IAKqB,KAAM,KAL3B,EAEqB,KAAM,KAM7B,EAE+B,MACjB,OAAd,IACiB,MAAd,IAIGzhB,GAAAA,IAAwD,MAChD,KADgD,MAJ3D,EACoB,MAAwB,KACzC,MACED,MAA4C,MAAO,MAAP,MAD9C,EAMR,EAEmD,GACjDk5B,GAAAA,OAAsB,KACtBj5B,IAA2B,MAAyB,MAAA,KACtD,E,e,K,I,M,K,I,Q,O,WCt5QA,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA1a,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAoBtC,SAAA,KAA2B,MAAA,EApBW,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,kB,K,MCDhE,IAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAIb,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,UAAA,IAAA,KAG7BkG,KAAQ,SAARA,OAEW,IAAA,KAA0C,KAFrDA,KACW,IAAA,KADXA,I,6BAH6B,gB,SAEA,IAuKb,MA5HQ,KA4HR,SACkB,MAErBM,IAAAA,KAAiB,KAAC,EACpB,UADoB,IAKpB,UALoB,KASpB,UAToB,KAAD,KAApB,OAeE,MAA4B,EA3LX,IAAA,KAAA,OAAA,cAAAV,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA6CL,iBAWrB,QATQuzC,OAAO,KACXC,IAAG70C,GAAAA,IAAAA,KAAQ,WAARA,OAAAA,GAAmC,QAC3B80C,OACR,KAAA,QACJC,OACC,KACOxJ,GAAAA,IAAA,KAAAC,IAAA,MAOd,IAAA,IAUgB,EAAA,IAAA,MACZ,EALYsF,IAAM,SAElB,EANYA,IAAM,SAYL5oC,IAAA,EAAA,KAAA,IAAA,KAAA,MAIH,KAAA,IAAA,IAAA,IAAA,EAJG,OAgBfgoC,IAAA,KAACW,IAAA,KAEQvwC,IAAAA,KAAkB,MAACwwC,IAAM,KAAP,MACxB9wC,IAAAA,KAAQ,SAARA,IAOCkwC,IAAA,KAAC8E,IAAyB9sC,IAAA,EAAA,MAA1B,MAPDlI,EAECkwC,IAAA,KAAC8E,IAAyB9sC,IAAA,EAAA,MAXX,UAWW,MAA1B,MALC,EAAA,IAAA,IAAA,IAAL,MADF,E,W,M,O,M,K,I,Q,O,SC5FF,IAAA,KAAA,KAmCgB+sC,KAA6D,MAAA,SAAvC,MAEpC,MAAA,E,c,M,M,O,M,K,I,Q,O,SCtCF,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,I,KA2DqC,MAAA,EAzCrC,UAIMv7C,GAAAA,IAAM,QAAV,QAEI,MAGF0B,MAAa,SAHX,IAGW,KALf,GASEge,GAAkB,WAAlBA,IACW,MADXA,KAIF,OAA8B,SAA9B,OACMxK,IAAAA,KAA8B,MAAA,QAAlC,GAGS,MADF,IAELA,IAAAA,KAA8B,MAAQ,MAAR,KAFzB,KAOKzT,UAAK,IAEJ,MADkD,OAAA,IAD9C,IAAA,IAAA,KAAA,OAAA,IAAA,IAAf,EAF4B,MAUxB+5C,IAAAA,OAAsB,KAA9B,E,UCtD6C,MAAA,KAAV,OACO,IAAA,KAAV,IAWH,QAKjB,MAA0B,EALT,KAAA,IAC3BC,GAAAA,MAAiD,KAAlB,MADuB,EAEtD3mC,GAAAA,IAA6B4mC,GAAAA,MAAD,KADqB,E,OCZrD,SAAA,KAGmBhnC,MAA6B,MAAjC,IAUyB,QAO1B,MAAmC,EAHxCinC,GAAAA,YAAQ,MAAf,E,kB,K,I,K,I,K,K,MCrBW,IAAA,QAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAUb,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA31C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,mD,YAAA,IAAA,KAAA,IA+PL,KAAd,KAyGT,KAGYwG,KAAiB,KACtBN,KAAe,MAAC,EACjB,EADiB,KAEb,UAFa,KAAD,KASnB,UAGCA,KAAe,MAAC,EACZ,UADY,KAMR,UANQ,KAAD,KAHhB,MAeYA,KAAe,MAAC,EACzB,EADyB,KAErB,UAFqB,KAAD,KAOjBA,KAAe,MACtB,MAAA,IAGI,MAAA,IAJmB,EAAA,KAAA,KAAD,KAhCE,EAAA,KAAA,IAAA,KAAA,KAAD,KAApB,OA0CE,MAAwB,EArZP,IAAA,KAAA,OAAA,cAAAJ,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA+PnB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAAAzE,IAAA,KAAA,MAAA,IACV,KADU,IAAA,IAAA,IAAA,MAyGT,EAzGS,OAAAC,GAAAA,IAAA,KAAAqxC,GAAAA,IAAA,MAAA5sC,IAAA,KAAA,EAAA,MAAA,EACV,SA2BU,KAzBY,MACA,KACG,MACM,MACE,MACA,MACN,MACM,MACJ,MACpB,KACE,KACW,MACb,KACc,MACN,MACG,MACH,MACC,MACH,MACL,MACI,MACU,MACH,MACI,MACA,MAEDooC,GAAAA,IAAM,MAAP,IAAA,IACDA,IAAM,KAAP,IAAA,IACnB,GACM9wC,IAAAA,KAAQ,SAAZ,IAGmB,KAAC,EAAA,IAAD,KAHnB,EACiB,KAAC,EAAA,IAAD,KADjB,EAQMkxC,MAAYC,IAAkB,MAAlBA,GACTC,MAAeD,IAAkB,MAAlBA,GACdE,MAAgBF,IAAkB,KAAlBA,GAChBG,MAAgBH,IAAkB,MAAlBA,GAChBI,MAAgBJ,IAAkB,MAAlBA,GALF,EAAA,KAAA,KAAA,IAAA,KAAA,KASpB,KAAM,KAAV,MACuB,IACnB,KAFJ,EACQ,KAAM,KADd,EAKQ,IAAK,KAAL,GAARoE,IAA0CrtC,IAAA,EAAA,MACf,EAAA,IAAA,EADe,OAI5C,GACmB,KAAC4oC,IAAM,MAAP,KACF,KAACA,IAAM,MAAP,KAGjB3qC,IAAAA,KACE,OAAA,QADO,MAKPnG,IAAAA,KAAQ,YAARA,IAA6C,MAAA,IAE7CA,IAAAA,KAAQ,KAARA,IAAsDw1C,IAAAA,KAAtDx1C,EAA4By1C,IAAAA,KAA5Bz1C,IAIA01C,OAKAxF,IAAA,KAIsB+B,MAgBpB/B,IAAA,KAACW,IAAA,KACC,KAAC8E,IAAA,KAAI,EAAA,IAAA,IAAA,IAAL,MADG,EAAA,IAAA,IAAL,MApBQ,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,SAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,KAAA,IAAV,MADF,E,Q,K,I,K,K,I,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,OC5VJ,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OAEA,IAAA,KAAA,KAAA,OAA+B,IAAA,KAAA,IAAA,QAAA,IAWX,MAAC,KAAD,SA6OJ,SAMQ,IAAA,KAAsC,MAAhD,MAeoB,UAAH,IAQa,UAAH,OAO3B,MAAQ,EA5RS,IAAA,KAAA,OAAA,cAAA/1C,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAAA,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAqQ/B,GAC+Bu0C,GAAAA,IAAAA,OAAQ,KAAUjG,IAAA,QAAA,QAAhC,OAAU,IACzB,GAAA,GACU,KAEV,EA/PmB,kBA6BV,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MAAA,KAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MADKpE,GAAAA,IAAA,KACLC,IADK,MAG0BoK,IAAAA,OAAQ,KAAOjG,IAAA,QAAA,MAAnC,OAAgB,IAG5BuB,IAAiB,OAAT,IAAI,MAAJ,GACLE,IAAoB,OAAT,IAAI,MAAJ,GACVC,IAAqB,OAAT,IAAI,KAAJ,GACZC,IAAqB,OAAT,IAAI,MAAJ,GACZC,IAAqB,OAAT,IAAI,MAAJ,GALI,EAAA,KAAA,KAAA,IAAA,KAAA,KASjB,KAATsE,MAEIC,IAAmB,KAFvBD,EACa,KADbA,EAKcC,IAAmB,KAAnBA,GAAdC,IAA2C7tC,IAAA,EAAA,MAChB,EAAA,IAAA,EADgB,UAK1C8tC,IAAAA,GACCC,IADDD,GAECE,IAFF,KAGAH,IAHA,4DADe,IAMGI,IAAqB,KAAxB,IACFC,IAAAA,MAsBXC,IADF,IAAA,IAAA,IAGEC,IAHF,IAIEL,IAJF,IAKED,IALF,IAMEO,IANF,IAOEC,IAPF,IAQEC,IARF,IASEP,IATF,IAUEQ,IAVF,IApBA,KADoB,MAmCAC,IAAAA,KAAe,KAAlB,IACUP,IAAAA,MAmCzBQ,IADF,IAAA,IAEEC,IAFF,IAGEC,IAHF,IAIEC,IAJF,IAKEC,IALF,IAjCA,KADkC,MA6CzB,QAATnB,IAEIlmC,IAAAA,KAAsB,MAAV,KAEN2J,IAAAA,KAAsB,KAAV,KAEG,QACvB,IAAA,MAAJ,IACgB29B,IAA+B,MAAN,IADzC,EAII,IAAA,MAAA,GAAJ,IACU32C,IAAAA,KAAkB,MAEtB42C,IAAyC,MAAN,IAFL,EAAA,KAAR,MAcC,SAC7B,OAAA,MACE97C,MAAa,SAAA,QAAA,IAAA,OAMSs1C,IAAAA,MAAWyG,IAAAA,KAAD,KAEdn3C,IAAAA,KAAe,MAAC,EAC7Bo3C,IAD6B,KAAA,IAAD,KAKd99B,IAAAA,KAAY,OAEtBu4B,IAAc,KAArB,OAAJ,MAC8BA,IAAc,KAAqB,KAAA,IAAtC,MAIpB,KAALwF,IAAAA,GAA8B,MAALA,IAGzBnH,IAAA,KADKoH,MAmBJxF,IAAA,KAAY,MACX,KAACyF,IAAA,MAAUrvC,IAAA,EAAA,MAAA,SAMPkvC,IAAsBp3C,IAAAA,KAAQ,YAA9Bo3C,OAAAA,GAIkBnF,OAAAA,GAGlBE,GAAOC,IAAAA,MAA4B,KAGtBoF,OAAAA,GAELjU,OAhBc,EAAA,IAAA,KAAA,KAAA,KAAA,IAAA,KAaNkU,IAbM,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,EAFf,OAAX,MADoB,IAAA,IAAA,IAAtB,MAnBKH,KACJC,IAAA,MAAiBrvC,IAAA,EAAA,MACH,EAAA,IAAA,aADG,IAII+pC,OAElBE,GAAOC,IAAAA,MAA4B,KAGxBsF,IAEHnU,OARc,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,EAHR,OAAlB,MADF,EAlIE,EACE8S,GAAAA,MAAAA,GAEiBqB,IAAD,GACOpB,IACjBL,IACAD,IAUES,IACoCP,IAfxC,EAAA,IAAA,KAAA,KAAA,IAKW,KALX,KASY,KATZ,KAAA,KAAA,QAFN,EAQUyB,GAAAA,IAAgBjB,IAAD,KAAD,KACdH,MAAAA,IAAAA,OAAS,KACX,EAEEoB,GAAAA,QAAc,KACdnB,MAAAA,IAAAA,OAAU,KACZ,EAsBR,EACEI,GAAAA,MAAAA,IA2BeA,IAAa,MAEpBA,IAAa,MACYA,IAAa,MA5B1C,EACkB,KADlB,KAOiB,KAPjB,KAaoB,KAbpB,KAmBsB,KAnBtB,KAAA,KAAA,KAAA,QAHN,EAIwB,GACdA,GAAAA,IAA8B,MAAA,KAC1BC,MAAJ,IACEA,MAAgB,KADlB,EAGF,EACe,GACbD,GAAAA,IAA6B,MAAA,KACzBE,MAAJ,IACEA,MAAe,KADjB,EAGF,EACkB,GAChBF,GAAAA,IAAgC,MAAA,KAC5BG,MAAJ,IACEA,MAAkB,KADpB,EAGF,EACoB,GAClBH,GAAAA,IAAkC,MAAA,KAC9BI,MAAJ,IACEA,MAAoB,KADtB,EAGF,E,qB,K,M,I,K,M,K,I,Q,O,K,M,K,M,K,SC/IZ,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAt3C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,QAAA,IAAA,KAqE9B,EArE8B,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAsBxB,EA+BL,EAKK,EAIL,EAGK,EAIP,E,K,K,M,M,K,I,Q,O,M,K,QC3DC,EANM,GACE,EAAA,IAAA,IAAA,IAAA,IAAP,EAGK,GACE,UAAA,IAAiC+3C,GAAAA,MAAY,KAApD,E,a,M,O,M,K,I,Q,O,K,SCdF,IAAA,KAAA,KAAA,OAIA,IAAA,KAAA,IAmCC,EA5Bc,OAGWC,GAAAA,IAAAA,OAAM,KAC9B,IAAqC,KAArC,IACgCC,IAAAA,KAAY,KAAA,UAAA,IAAA,IAAnB,MADzB,QAGoC,KAAlB,IAIlBC,IAAAA,KAIG,IAAA,IAASC,IAAT,IAJO,KAAD,MAQTD,IAAAA,KAMIC,IAAD,IAAA,IANO,KAAD,MAQFA,MAAAA,IAA8BA,IAA6B,MAAA,IAAlE,EAfMC,GAAAA,MAAJ,IAAsBD,IAAtB,IACEA,IAAsB,MAACC,IAAD,KADxB,EAGF,EAKMD,GAAAA,MAAJ,MAKF,IAJW,KAAP,EACEA,GAAAA,IAAkB,MAAA,MACpB,E,qB,K,I,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,K,O,I,K,Q,I,K,QC1BN,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QAEA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QAEA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAt4C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,iD,S,SA2JXA,MAAa,MAAC,EACjB,UADiB,KAUH,UAVG,KAmBF,UAnBE,KA4BL,UA5BK,KAqCJ,UArCI,KA8CA,UA9CA,KAuDC,UAvDD,KAgEzB,UAhEyB,KAAD,KAAhB,IA2EM,KAAH,IAIO,KAAH,IAIA,KAAH,IAKI,KAAH,IAIa,UAAH,IAqGC,KAsiB9B,IAAA,MAW4B,KAAH,IAwB3B,EAr6B8B,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAq4B/B,OAEa,QAAAI,IAAA,MAAAA,IAAA,IACK,QAAAA,IAAA,MAAAA,IAAA,IAAAA,EAETpF,MAAQ,OAAM67C,OAAN,MAAf,EAeF,GACkC,KAAlB,MAAS,MACvBhwC,GAAAA,IAAA,IAAA,MAOoB,MALL,EAAA,KAAA,KAAA,KAAA,KAAA,KADL,EAAA,IAAA,EADV,OAAA,EArrBqB,OACrBiwC,IAAAA,OACAA,IAFwC,EAIf,OACzBA,IAAAA,OACAA,IAF4C,EAItB,OACtBA,IAAAA,OACAA,IADAA,OAEAA,IAHyC,EAKlB,OACvBA,IAAAA,OAAqCA,IADM,EAyGZ,EAAA,KAAA,IAyB9Bn0C,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAIA,MAAA,IAKD,KALC,IAJA,IAmBA,MAAA,IAKD,KALC,IAnBA,IA6BA,MAAA,IAED,KAFC,IA7BA,IAkQA,MAAA,IAMD,KANC,IAlQA,IAwSA,MAAA,IAMD,KANC,IAxSA,IA0WA,MAAA,IAED,KAFC,IA1WA,IAoXA,MAAA,IAED,KAFC,IApXA,IA6YA,MAAA,IAED,KAFC,IA7YA,IAyZA,MAAA,IAqBD,KArBC,IAzZA,IA0dA,MAAA,IAED,KAFC,IA1dA,IAmeA,MAAA,IAED,KAFC,IAneA,IA0eA,MAAA,IAED,KAFC,IA1eA,IAifA,MAAA,IAED,KAFC,IAjfA,IAwfA,MAAA,IAED,KAFC,IAxfA,IA+fA,MAAA,IAED,KAFC,IA/fA,IAsgBA,MAAA,IAED,KAFC,IAtgBA,MAAA,MA6gBA,EA/gBD,IAAwC,IAAAC,GAAAA,IAAA,KAAA6zC,GAAAA,MAAA,QArB1B,MACM,MACC,QACX,MACY,MACJ,MACG,MACT,MACI,UAWL,MA+ZQ,KAAH,MA5ZA,SAAA,KAChB,EA2ZmB,eAQjB,MAAA,GAAA,GAAA,GAAA,GAAA,KACE,EAEFxyC,GAAAA,IACU8yC,IAEDC,IAHe,EAAA,IAAA,IAAA,IAAA,IAAH,QAMvB,EA1aA,KACc,QACd,EAKA,EACiC,MAAA,IACC,MAAA,IACC,MAAA,IACJ,MAAA,IACG,MAAA,MAIjBv+C,MAAa,MAAC,EAAD,KAAhB,QACd,EAKA,EACU,QAAR,IACiD,MAAA,IAA5B,MAEV,MAAX,EAGF,QAAsC,IACT,EACjB,KADiB,KAOhB,KAPgB,KAeI,EACF,KADE,KAYX,KAZW,KAwCZ,KAxCY,KA2ET,KA3ES,KA+EP,KA/EO,KAmFE,KAnFF,KA8FpB,KA9FoB,KA8G7Bw+C,GAAAA,IAAAA,KAAqE,MAAA,IADvE,GAmDIt4C,IAAAA,KAAQ,WAARA,IAAyBA,IAAAA,KAAQ,WAAjCA,IAEI,EACgB,KADhB,KAsBgB,KAtBhB,QA2CNkI,IAAA,EAAA,MAAA,MAAA,MAAA,EA7F2B,EAAA,KAAA,KAIS,KAApB,MAAY,MAC5B,cACsC,KAAH,MAgBnC,cACsC,KAAH,MAkBnCA,IAAA,EAAA,MAAA,MAAA,MAAA,EAtKmB1C,GAAAA,IAAI,KAAQ,QAC7B,SACQ,KADR,EAGF,EAEoBA,GAAAA,IAAI,KAAQ,QAC9B,SACS,KADT,EAGF,EAKqBA,GAAAA,IAAI,KAAQ,OAC/B,IAMO,GAAP,EALiDA,IAAI,KAAQ,QACpD+yC,MAEiC,IAFxC,EAOc,OACH,MAAA,IAEb/yC,GAAAA,IAAgC,MAAA,IAEP,MAAR,UACD,MACG,UAAA,MAEEgzC,GAAAA,IAAmB,KAAQ,MAAb,OACnC,IAKEhzC,IAAmB,UAAA,gBAJnBA,MAA0B8U,MAAW,KAAD,MAAb,MAOFk+B,IACrBhzC,IAAI,KAAQ,YAEZizC,OAHmC,SAKPn+B,MAE3Bo+B,IAFsC,KAAD,MAAb,MAG7B,EAdMlzC,GAAAA,IAAmB,MAAUgW,GAAAA,QAAV,QACrB,EAWAhW,GAAAA,IAAqB,MAACgW,GAAAA,IAAD,OACvB,EAGe,GACOhW,GAAAA,IAAI,KAAQ,QAClC,MACa,KAIWA,IAAI,MAC5B,OAIcmzC,GAAAA,MAAsB,KACpC,OAMInzC,IAAI,MAAR,IACiBA,IAAI,MAAuB,MAAc,MAAzCA,IACI,MAAuB,MAAc,MAAzCA,MACXnJ,MAAU,MAAA,SAAd,IACEmJ,IAAiC,MAAA,IAIjCA,IAAkC,MAAA,MACpCA,IADF,GAGmC,MAAA,IACd,UAAA,MAJrB,EACqB,UAAA,MAKvB,EAnBIA,IAAiC,MAAA,IACd,UAAA,MACnB,IAPA,EA2BFA,GAAAA,IAAmB,aAAA,QACrB,EAGEA,GAAAA,IAAmB,aAAA,QACrB,EAGuBA,GAAAA,IAAI,KAAQ,QACjC,IAMA,EALqDA,IAAI,KAAQ,QACxDozC,MAEqC,IAF5C,EAQ0BpzC,GAAAA,IAAI,KAAlB,KAAU,OACxB,MAAA,SACS,KADT,EAGF,EAmBsC,OAClCA,GAAAA,MAAe,MACiB,MAAA,IAC5BqzC,MAAJ,UACuBL,GAAAA,IAAehzC,IAAI,KAAQ,MAAb,OACnC,IAMEqzC,IAAUC,IAA+B,KAAhC,eALI,MAAA,IACbtzC,MAA4B8U,MAAW,KAAD,MAAb,MAO/B,EANQu+B,GAAAA,IAAUC,GAAAA,IAAgCt9B,GAAAA,MAAD,KAAhC,KACX,EAQ8B,OAC9BhW,GAAAA,IAAI,MAAR,YACEA,MAAe,MACgB,MAAA,IAC3BuzC,MAAJ,UACwBP,GAAAA,IAAehzC,IAAI,KAAQ,MAAb,OACpC,IAMEuzC,IAAWD,IAA+B,KAAhC,eALG,MAAA,IACbtzC,MAA6B8U,MAAW,KAAD,MAAb,MAQlC,EAPUy+B,GAAAA,IAAWD,GAAAA,IAAgCt9B,GAAAA,MAAD,KAAhC,KACZ,EAkBY,OACRw9B,GAAAA,IAAAA,MAAc,IAAlB,gBACExzC,GAAAA,MAAe,MACiB,MAAA,IACR,KAAQ,QAChC,cACuBgzC,IACnBhzC,IAAI,KAAQ,MADqB,OAGnC,IAMW,uBALI,MAAA,IACbA,MAA4B8U,MAAW,KAAD,MAAb,MAQjC,EAPUu+B,GAAAA,IAAUr9B,MAAD,KACX,EAQM,OACRhW,GAAAA,IAAI,MAAR,gBACEA,MAAe,MACgB,MAAA,IACN,KAAQ,QACjC,cACwBgzC,GAAAA,IACpBhzC,IAAI,KAAQ,MADsB,OAGpC,IAMY,uBALG,MAAA,IACbA,MAA4B8U,MAAW,KAAD,MAAb,MAQjC,EAPUy+B,GAAAA,IAAWv9B,MAAD,KACZ,EAoBpB,gBAKW,KAAY,QAArB,sBACEy9B,GAAAA,IAAAA,KAA6C,MAAC,KAAD,KAQzB,MACJC,GAAAA,IAAW,MAAd,IAAG,IACV,MAAR,QAAA,IAGA/yC,IAAAA,KACEgzC,IAAAA,OAAqBA,IAIV,MAAX,OAAA,IACQ,MADR,kBALO,IAST,IACoC,qBAAA,IAClB,MAEpB,EAfI,EATIhB,GAAAA,IACiB38B,IAAK,KAAY,MAF7B,EAAA,KAAA,KAAP,EA+BN,cAMM49B,GAAAA,MAAgB,KAApB,KAC6B,MACM,MAAA,IAFnC,IAMEttB,IAAAA,OACAqtB,IAGCE,IAAkB,KAAnB,GAAA,GAAkCA,IAAkB,KAEtD,GAAA,GAC8B,MAAA,IAG1BC,IAAe,KAAnB,OAAA,IAC4B,KAAQ,QAClC,IACa,KAIMC,IAAc,KACA,KAEnC,GAAA,GACgB,MAAA,KADhB,EAEO,GAAA,GACW,MAAA,KAGdD,IAAe,KAAnB,UAAA,OAEE,GAAA,GACgB,MAAA,KACE,MAAA,KAEuC,KAAvC,MAAS,KAAsB,QACjD,IAEIrD,IAAAA,OACAnqB,IADAmqB,GAEgC,MAAA,IAClC,GACMj2C,IAAAA,KAAQ,SAAZ,MAAA,IACEw5C,IAAAA,KAA2B,MAAA,IAEtB,KAKgB,MAAA,IAC/B,EAEA,KAC0B,KAAQ,MACTb,GAAAA,MAAsB,KAAjC,MAAO,MACW,EAAA,KAAA,KAAH,QACDt7C,MAAQ,KAAA,IAAX,QACvB,IACW,KAEb,EAEA,WAC2B,KAAQ,QACjC,iBAC2Bm7C,GAAAA,IACnB,KAAQ,SADyB,SAKjBn7C,MAAQ,KAAA,IAAU,QAAR,OAAVA,IACAhB,MAAQ,KAC5Bo9C,IACAjB,IAAmB,KAAQ,MAAb,KAFc,MAI9B,IAMY,uBALG,MAAA,IACgBl+B,MAAW,KAAD,MAAb,MAOP,MACzB,EAPQk8B,GAAAA,IAAWh7B,MAAD,KACZ,EAQN,EACU,QAAR,IAIe,MAAX,OAAJ,IAGM,MAAqB,MAAK,MAAL,KAH3B,EACE5M,GAAAA,IAAAA,KAAiB,MAAK,MAAmB,MAAxB,MADnB,EAKF,IARI,EA6BJ,UASkB8qC,GAAAA,IAAAA,MAAkB,KAAQ,MAAb,KACLA,MAAkB,KAAQ,MAAb,KAEH,KACF,KACC,KACF,mBAE/B,IACa,QAAX,IACyB,KAAX,IAEH,QAAX,IACuB,KAAX,IAED,QAAX,IACwB,KAAX,IAEF,iBAAX,IACsB,KAAX,aADX,EAMAC,IAAe,KADL,IACiBC,IAA0B,KAD3C,MAEED,IAAe,KAAnB,IAA6BC,IAA0B,KAAvD,MACKD,IAAe,KAAnB,IAA8BC,IAA0B,KAAxD,MACED,IAAe,KAAnB,IAA4BC,IAA0B,KAAtD,IAGF,MAAL19B,IAAAA,GACK,MAALA,IADAA,GAEK,MAALA,IAFAA,GAGK,MAALA,IAJF,EAQF,EAEQ,UADN,IAEM,UAFN,IAIqB,aAAA,MAJrB,EAMF,EAEA,EAEQ,KAAQ,QAAZ,IAAA,GACI,KAAgD,MAAA,IAFtD,EAMF,EACU,QAAR,MACE3B,MAAiB,QAAL,KACa,MAF3B,EAIF,EAEA,EACU,QAAR,MACEA,MAAiB,QAAL,KACc,MAF5B,EAIF,EAEA,EACU,QAAR,MACEA,MAAiB,QAAL,KACe,MAF7B,EAIF,EAEA,EACU,QAAR,MACEA,MAAiB,QAAL,KACW,MAFzB,EAIF,EAEA,EACU,QAAR,MACEA,MAAiB,QAAL,KACc,MAF5B,EAIF,EAW6B,GACU,KAAlB,MAAS,QAE9B,IAA8B,OAA9B,IAGA,IAA4C,OAA5C,IAGY,KAAZ,EAFuB,IAArB,EAHc,IAAd,E,U,M,QCn6BJ,IAAA,KAAA,KAAA,IAEqB,EACH,KADG,QAQP,MAAgB,EANtBs/B,GAAAA,IAAAA,KAAJ,GACEA,IAAAA,KAAiC,MAAA,IADnC,EAGF,E,e,K,I,M,K,I,Q,O,WCLF,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAn6C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAStC,SAAA,KAAsB,MAAA,EATgB,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,ECqC/B,EAClB,KADkB,KAEhB,KAFgB,KAGG,KAHH,KAIV,KAJU,KAKjB,KALiB,KAMrB,KANqB,KAOnB,KAPmB,QAUhC,QAA2B,EATb,EAAA,EACE,EAAA,EACmB,EAAA,EACb,EAAA,EACP,EAAA,EACJ,EAAA,EACE,EAAA,E,e,I,O,M,K,I,Q,O,K,SC9C3B,IAAA,KAAA,OAEa,IAETG,KAAQ,SAAZ,iBACoBiF,MAChB,MAAA,OAAA,IAAA,GACExL,MAAM,MADR,GAEEA,MAAM,MAAS,KAHM,KAMzB,mBAS0B,IACF,IASD,KAOrBwG,MAAyB,UAAA,OACzBA,MAAyB,UAAA,OACzBA,MAAyB,UAhBL,KAgBK,OAM5B,EADQuG,GAAAA,IAAP,EApBQA,GAAAA,IAAJ,KAAiBnJ,MAAQ,KAAA,IAAKy8C,IAAbz8C,IAAkC08C,IAAnD,MAGS,MACX,IAHI,EAKiB,EACE18C,MAAQ,KAAA,IAAX,GAAA,IACdmJ,IAAJ,KACW,IADX,EAGF,E,a,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,IC1BqC,KAuBtC,IAIsC,KAAA,OAAA,IAAA,IAEkB,MAAA,EA7BlB,EAAA,KAAA,IAGvBxC,GAAAA,IAAA,KAAA,MAAA,IAEhB,KAFgB,IAAA,IAAA,IAIf,MAAA,IAED,KAFC,IAJe,IAWf,MAAA,IAED,KAFC,IAXe,MAAA,MAoBf,EApBD,EAAcC,GAAAA,IAAA,KAAAg1C,GAAAA,MAAA,MAF4C,IAAhD,MAEK,EAEf,EACM,MAAgB,QAAA,OACtB,EAEA,EACoB,MAAmB,QAAA,WACrC,IACM,MAAkB,SAAA,MADxB,EAGF,EAEA,IACU,MAAW,OAAnB,aAI4B,IAAjB,IACP,MAAmB,KAAC,KAAD,KACzB,IALI,EAI2Cz9B,GAAAA,SAAD,KAAZ,E,e,I,O,M,K,I,Q,O,M,SC/BpC,IAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAuCmB,MAAA,IAGM,MAAA,IAJL,EAAA,KAAA,KArBG,EACJ,UADI,KAAA,SAAA,KAAH,IAgCU,EACX,UADW,SAAA,KAU3B25B,KAA2C,KAAZ,MAExB,SAGD,MAAP,GAA0BvmC,KAA8B,MAAA,KAAxD,aAEKumC,KAAkD,KAAnB,MAExB,MAAA,EARV7mC,GAAAA,IAAAA,MAAiB0rC,MAAD,KAD0B,EAQtC1rC,GAAAA,IAAAA,MAAiB2rC,MAAD,KADiC,E,K,O,IClExC,EACf,WADe,MAIf,SAJe,MAOf,SAPe,MAUf,SAVe,MAaf,SAbe,MAgBf,SAhBe,MAmBf,SAnBe,SAAH,MAsBZ,EApBSl3C,GAAAA,IAAOC,MAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,E,OCrB0B,SAAA,KAAV,IAKE,KA4DkB,SAAA,MACK,OAAA,MAArB,SAEV,MAAiB,EA/DT,eAQD,MAEnB,OAeI,OAAJ,WAOA,IAAiC+M,GAAAA,MAAc,KAA/C,MA0BF,IAzBe5U,UACT,OAGG++C,MAAAA,IAHH,IAAA,QAAA,IAAA,QAAA,IAAA,IADc,KAAA,QACd,QAAA,OADc,IAAA,IAAhB,IAJA,KAlBA,KAWA,IAVa/+C,UACT,IAGG++C,MAAAA,IAHH,IAAA,QAAA,IAAA,IADc,KAAA,QACd,OADc,IAAA,IAAhB,E,KCjBmB,SAAA,KAK2B,MACjC,KACF,KACC,KACF,KAJqC,EAAA,IAAA,IAAA,IAAA,IAAD,QAOtC,MAAgC,E,KCNpB,SAAA,KAA8B,OAAxC,MACf,E,E,K,I,K,SCTiC,SAAA,KAAV,IAIgB,MAEvB,QAAH,MAiDZ,EArDF,EAA0B,EAC1B,EAAmC,EAGlB,EAAA,KAAA,IAAA,KAcA,MA4BGC,GAAAA,IACGC,IAvBA,EAAA,KAAA,KAAA,IAAA,IAAA,IAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KA0BG,MAExB,EA9CiBC,GAAAA,OAAf,MAIcl/C,MAAK,KAAA,WAAA,IAAA,QAKX,MACR,IARE,EAYKy4C,GAAAA,IAAP,E,OCpBU,QAAwB,E,Q,K,I,OCFzB,MAAA,KAAA,OAE0B,IAAA,QACK,IAAA,QACC,IAAA,QACA,IAAA,QACD,IAAA,QACL,IAAA,QACd,IAAA,KAKI,EAAA,MAEb,KACO,KAEO,KAAC,QAAD,KAEL,KACN,KACc,KACY,MAC1B,MACC,KADA,EAAA,KAAD,KAD2B,IAAA,IAIjC,KAJiC,IAAD,KAMzB,KACD,KACG,KACE,KACE,KACH,KACiB,KACP,KAAC,QAAD,KAUF,KAAC,QAAD,KACF,KAAC,QAAD,KAQb,KACG,KACkB,KAClB,KAED,KA9CU,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,IAAA,EADC,UAkDf,MAA2B,EA/D5B,OAAA95C,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,E,KCEY,SAAA,KAKqB,MAC7B,KACE,KACK,KAAC,QAAD,KAMK,MAAU,KAAV,KACV,KACA,KACD,KACF,KACE,KAd6B,EAAA,KAAA,KAAA,KAAA,IAAA,IAAA,KAAA,IAAA,KAAA,IAAD,KAiBC,MAAC,IAAA,IAErC,KAFqC,IAG7B,MAAA,KAH6B,IAAD,QAMjC,MAAuB,E,Q,K,I,OC9BxB,MAAA,KAAA,OAE0B,IAAA,QACE,IAAA,QACG,IAAA,QACA,IAAA,QACnB,IAAA,KAKU,EAAA,MAAA,MAAA,MAIE,KAAC,QAAD,KAEF,KACC,KAEX,KACO,KACC,KACT,KACI,KAAC,QAAD,KACR,KACO,KAAC,QAAD,KACF,KAEI,KAAC,QAAD,KAfI,EAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,EAHE,UA2BrB,MAAiC,EAtClC,OAAAvH,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,E,KCEY,SAAA,KAEyB,MACvC,KADwC,IAAA,IAExC,KAFwC,IAAD,KASnB,KAAC,QAAD,KAQF,KAAC,QAAD,KAOD,KAAC,QAAD,KAQM,MAAW,KAAV,IAAA,IAA4B,KAA5B,IAAD,KACJ,KACH,KACC,KACC,KACA,KACF,KACH,KAEF,KACM,KAAC,QAAD,KACF,KAAC,QAAD,KAET,KAEe,KAAC,QAAD,KAMX,KACE,KACI,KAAC,QAAD,KACX,KAEiB,KAAC,QAAD,KA4BN,KAAC,QAAD,KAgBA,KAAC,QAAD,KAER,KAIA,KApGe,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,IAAA,IAAA,KAAA,IAAA,IAAA,IAAA,QAuGpB,MAA6B,E,QCjHJ,MAAA,QACd,IAAA,KAOM,MACV,KACD,KAFY,EAAA,IAAA,IAAD,KAIL,KACD,KAPY,EAAA,KAAA,KAAA,KAAA,QAUvB,MAAgC,E,KChBrB,SAAA,KAMK,MACP,MACF,MAAwB,KAAvB,EAAA,KAAD,KADG,IAAA,IAEH,MAAmB,KAAlB,EAAA,IAAD,KAFG,IAGH,MAAoB,KAAnB,EAAA,KAAD,KAHG,IAIH,MAAoB,KAAnB,EAAA,KAAD,KAJG,IAKH,MAAoB,KAAnB,EAAA,KAAD,KALG,IAMH,MAAkB,KAAjB,EAAA,IAAD,KANG,IAOH,MAAmB,KAAlB,EAAA,KAAD,KAPG,IAQH,MAAmB,KAAlB,EAAA,KAAD,KARG,IASH,MAAkB,KAAjB,EAAA,KAAD,KATG,IAUH,MAAkB,KAAjB,EAAA,KAAD,KAVG,IAWH,MAAuB,KAAtB,EAAA,IAAD,KAXG,IAYH,MAAuB,KAAtB,EAAA,IAAD,KAZG,IAAD,KADO,KADO,EAAA,OAmBvB,MAAgC,E,E,K,SCxBQ,SAAA,KAAV,I,QAoC9B,MAAgC,EAlC9C,EACwBi5C,GAAAA,SAAsC,KAAzC,IACZ,KAAP,EAAO,aAEI,OAAT,GAEa,EACUhhC,GAAAA,IAAkB,IAAN,KAAf,OACnB,KAN8Dhe,QAAA+I,IAAAA,IAAA,KAAA,UAAA,IAAA,OAM9D,IAN8D,IAAAC,IAAA,IAAA,GAM9D,IACMi2C,GAAAA,IAAa,KAAA,IAAA,IAAA,OAAA,OAAA,IAA4C,KAAA,KAA5C,MAApB,EAIJ,OACE,IAAsB,OAAtB,MAIKj/C,MAAa,KAAA,KAAlB,GACE,EAGa,EACoB,KACXge,KADxB,IACwBA,IAAkB,IAAN,KAClC,GACE,GAAA,QAAA,SAAA,GAC6B,IAAhB,IADb,EAHyD,GAA7D,IAQA,EAhBE,E,Q,K,I,K,MCnBS,MAAA,KAAA,OAEY,IAAA,KAAV,I,QAgED,MAA0C,EAlE3C,OAAAxf,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAIb,KAAA,IAAA,KAAA,IAAA,KA0D8C,SAAA,MAAjB,MAC3B,EA1DA,yDAQY,IAAV,MACE,GACE8E,GAAAA,QAEE,QAA6B,QAA7B,IAA6B,IAA7B,IAFO,MAMX,EAEqB,IACN,MACIuD,MAAAA,IACrB,IACEvD,GAAAA,QAEE,QAAA,IAAA,QAA6D,QAA7D,IAAA,QAAA,QAA6D,IAA7D,IAFO,MAQE+B,GAAAA,IAAA,EAAY,IAAZ,MAA2BsyC,GAAAA,IAA3B,MAAuC,GAxB7Cl/C,QAAA+I,IAAAA,IAAA,KAAA,UAAA,IAAA,OAwB6C,IAxB7C,IAAAC,IAAA,IAAA,GAwB6C,IACpD,GAAA,WAAA,YAAA,GACkBk2C,IAAU,IAC1B,GACEr0C,IAEE,IAAA,IAAA,IAAA,IAAA,IAEE/H,MAAc,MAAM,IAAN,OAFhB,IAAA,IAAA,IAIEA,MAAc,MAACtE,MAAW,KAAC0gD,IAAD,KAAZ,OAJhB,IAAA,IAFO,MASU,KAAA,IAAA,IAAA,IAAA,IAAA,IAAwC,KAAA,KAAxC,MACrB,MACEr0C,IAEO,KAALykB,IAEExsB,MAAc,MAAM,IAAN,OAFhBwsB,IAFO,MADX,KASJ,EACA,OAA6E,KAAFtvB,QAAA0nC,IAAAA,IAAA,KAAA,UAAA,IAAA,OAAE,IAAF,IAAAC,IAAA,IAAA,GAAE,IACpEwX,GAAAA,IAAS,KAAA,WAAA,OAAA,OAAA,OAAA,IAAgD,KAAA,KAAhD,MAAhB,E,Q,K,I,OC5DS,MAAA,KAAA,OAE+B,IAAA,QACA,IAAA,QAOjC,IAAA,KALsB,MACN,MACC,MACA,MACd,SAE8B,IAAA,QACnB,IAAA,KAGA,KACA,KAFG,EAAA,KAAA,KAOD,KACO,KACP,KACO,KACR,KACO,KACL,KACO,KACT,KACO,KACT,KACO,KACL,KACO,KACR,KACO,KAhBF,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAoBX,KACO,KACN,KACO,KAJC,EAAA,KAAA,KAAA,KAAA,KAQF,KACO,KACV,KACO,KACN,KACO,KACN,KACO,KARJ,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAYS,KACO,KACjB,KACE,KACD,KACE,KACC,KACF,KACI,KACS,KACJ,KACO,KAZN,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAkBV,EAAA,MAAA,MAAA,MAAA,MAAA,MAML,KACa,MACxB,KADyB,IAAA,IAEnB,KAAC,QAAD,KAFmB,IAAD,KAIT,KACA,KACF,KACD,KACK,KACA,KAAC,QAAD,KACL,KACG,KACA,KACA,KACA,KACC,KACY,MAAA,KACD,KACV,KACe,KACd,MACe,MACjC,KADkC,IAAA,IAE1B,MAAU,KAAV,KAF0B,IAAD,KAIZ,KACQ,KAAC,QAAD,KAIL,KACd,KACC,KACF,KACQ,MAAC,IAAA,IAElB,KAFkB,IAAD,KAIc,KAAC,QAAD,KAMR,MACA,MACf,KACsB,KACT,KACA,KACH,KACX,KACC,KACE,KACS,KAAC,QAAD,KACE,KACS,KAEZ,KACM,KACV,KAAC,cAAA,IAAD,KACR,KA/DgB,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,EALN,UAuEf,MAA2B,EAlJ5B,OAAA3gD,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,E,KCEY,SAAA,KAMmB,KAAC,QAAD,KA0CL,MACK,MACL,MACR,KAAC,QAAD,KA9CK,EAAA,KAAA,KAAA,KAAA,KAAA,QAmHtB,MAA+B,E,Q,K,I,OC1HhC,MAAA,KAAA,OAE0B,IAAA,QACE,IAAA,QACG,IAAA,QACA,IAAA,QACnB,IAAA,KAKS,EAAA,MAAA,MAAA,MAIG,KAAC,QAAD,KAGH,KACC,KACC,KACA,KACN,KAEA,KAAC,QAAD,KAGF,KACH,KAEI,KAEC,KAAC,QAAD,KAEC,KACC,KACC,KACA,KACN,KACH,KACF,KACF,KACY,KAAC,QAAD,KA5BC,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,EAHC,UAkCpB,MAAgC,EA7CjC,OAAAvH,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,E,KCEY,SAAA,KAKY,MACvB,KACA,KAFwB,EAAA,IAAA,IAAD,QAKvB,MAAiB,E,Q,K,I,OCZlB,MAAA,KAAA,OAE0B,IAAA,QACA,IAAA,QACA,IAAA,QACd,IAAA,KAEC,QAYQ,EAAA,MAEL,KACI,KAAC,QAAD,KACF,KAAC,QAAD,KA2DP,KACF,KACG,KACD,KACU,KAAC,QAAD,KAML,KAEC,KACU,MACrB,KAAA,KADsB,IAAA,IAEpB,MAAgB,KAAA,KAAhB,KAFoB,IAAD,KAIf,KACO,KACX,KACqB,KACX,KAAC,QAAD,KASH,KACG,KACE,KACL,KAAC,QAAD,KAUS,KAAC,QAAD,KACN,KAAC,QAAD,KAgBQ,KAAC,QAAD,KAML,KACZ,KACA,KACI,KACP,KACE,KACI,KACO,KACP,KACL,KACG,KACF,KACA,KACS,KACF,KACJ,KACA,KAEH,KACkB,KACZ,KACK,KAAC,QAAD,KAef,KACS,KACE,KACA,MACV,KACE,KAAO,MAFE,EAAA,KAAA,IAAD,KAKE,KACG,KACV,KACS,KACC,KAAC,QAAD,KACG,KAAC,QAAD,KACF,KAAC,QAAD,KA+BhB,KAjNU,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,IAAA,EADM,UAqNpB,MAAgC,EAxOjC,OAAAvH,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,E,QCE0B,MAAA,QACK,IAAA,QACA,IAAA,QACA,IAAA,QAOjC,IAAA,KALsB,MACN,MACC,MACA,MACd,SAEW,IAAA,KAMD,KACa,MACxB,KADyB,IAAA,IAEnB,KAAC,QAAD,KAFmB,IAAD,KAIT,KACA,KACH,KACK,KACF,KACa,MAAA,KACX,KACC,KACG,KAGX,KACU,KACJ,KACM,KAAC,QAAD,KAOd,KACa,KAAC,QAAD,KAaF,KAAC,QAAD,KACjB,KACwB,KAAC,QAAD,KAML,KACL,KACR,KACK,KACQ,KACb,KACG,KACa,KACjB,KACE,KACC,KACM,KACD,KACG,KACE,KACS,KACJ,KACb,KAGF,KAEc,KACJ,KACd,KACiB,KAAC,QAAD,KA1EJ,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,QA6ElB,MAA2B,E,Q,K,I,OC/F5B,MAAA,KAAA,OAE0B,IAAA,QACK,IAAA,QACnB,IAAA,KAKS,EAAA,MAGX,KACF,KACO,KAAC,QAAD,KACM,MACb,MACA,KAAC,QAAD,KADA,KADc,IAAA,IA8BtB,KA9BsB,IAAD,KAgCL,KAAC,QAAD,KAgCE,KACL,KACH,KACK,KAAC,QAAD,KACQ,KAAC,QAAD,KAEC,KAAC,QAAD,KAMC,KAAC,QAAD,KAEH,MACd,KACD,KAFgB,EAAA,IAAA,IAAD,KAIN,KACG,KAAC,QAAD,KAMH,KAAC,QAAD,KACG,KAAC,QAAD,KACG,KAAC,QAAD,KAhGF,EAAA,IAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,EADC,UAoGpB,MAAgC,EA7GjC,OAAAvH,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,E,kB,K,I,K,I,K,M,I,Q,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OCIb,IAAA,KAAA,QACA,IAAA,KAAA,QAGA,IAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA3B,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,mD,S,SAA/B,OAA+B,IAAA,KAAA,QAAA,IA0EY,KAAd,KAsP1B,KA7OK,KAJqB,MAkBrB,KAJ+B,MAwB/B,KATO,MA0BkC,KAAlB,MA8L7BkG,KAAQ,SAARA,IASI,KATJA,EAGI,KAHJA,IADqB,QAYY,MAElBy1C,OAAH,MAA2B,EAjVV,IAAA,KAAA,OAAA,cAAA71C,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA0EF,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAiE1BzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IA2CA,MAAA,IAED,KAFC,IA3CA,IAyDA,MAAA,IAED,KAFC,IAzDA,IA4EA,MAAA,IAED,KAFC,IA5EA,IA6KA,MAAA,IAED,KAFC,IA7KA,IAiLA,MAAA,IAED,KAFC,IAjLA,IAAA,MAqLA,EAtP0B,MAAAC,GAAAA,IAAA,KAAAwxC,GAAAA,IAAA,MAAA,KAAAn6C,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,IAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAgEPovC,IAAAA,KAA2C,MAAA,IAA/B,KAAA,OAAA,IAAA,IADjB,EAAA,KAAV,MAEJ,EAED,IAEQ,KAAM,QADoB,IACK,KAAM,OAAd,IAAI,KAAJ,GAEV,KAAM,MAAX,GAEN,KAAM,KAAV,IACQ,KAAM,KADd,IAGW,KAAM,MACC,KAAM,MACR,KAAM,MACL,KAAM,MAEJ,KAAM,MACD,KAAM,MACf,KAAM,MACV,KAAM,KAdd,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,OAAA,KAAA,KAAA,KAAA,KAAA,IAeM,KAfN,KAwBQ,KAxBR,KA6BO,KA7BP,KAAP,EAea,GACL93C,GAAAA,IAAAA,KAAQ,SAAZ,IACEwF,GAAAA,IAA2B,MAAA,KACK,QAAA,KAE9BA,GAAAA,IAAI,KAAM,QAAd,IACEA,IAAI,KAAgB,MAAA,KADtB,EAGF,EAEMxF,GAAAA,IAAAA,KAAQ,SAAZ,IACEwF,GAAAA,IAA2B,SAAA,KAD7B,EAGF,EAEMxF,GAAAA,IAAAA,KAAQ,SAAZ,IACEwF,GAAAA,IAAgC,QAAA,KAE9BA,GAAAA,IAAI,KAAM,QAAd,IACEA,IAAI,KAAiB,SAAA,KADvB,EAGF,EAKExF,GAAAA,IAAAA,KAAQ,SAAZ,IAC2B06C,IAAAA,UAA2B,OACpD,IAMEC,IAAAA,KAAmB,SAAA,MANrB,IACEv/C,MAAY,SAAA,KADd,EASJ,EAGM4E,GAAAA,IAAAA,KAAQ,SAAZ,OACsC,KAApB,MAAW,MACF06C,IAAAA,UAA2B,OACpD,IAMEC,IAAAA,KAAsB,QAEpBC,OAAAA,EACAC,OAHoB,OANxB,IACEz/C,MAAY,SAAA,KADd,EAaJ,EAEA,YACkB+E,GAAAA,IAAK,MAAc,MAAK,KAAM,KAAX,KACV,KAAM,KAAd,IAAA,IAYX,KAAM,MAA8B,MAAA,IAD7B,MAAS,MAAqCorC,IAAA,KAAAC,IAAA,MAI/C,KAAM,QAAZ,IAAiC,KAAM,OAAd,IAAI,MAAJ,GAEvB,KAAM,MADL,IAC6B,KAAM,OAAd,IAAI,MAAJ,GAEtB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,KAAJ,GAEvB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,MAAJ,GAEvB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,MAAJ,GATL,EAAA,KAAA,KAAA,IAAA,KAAA,KAapB,KAAM,QAAV,IAA2BtjC,IAAA,EAAA,MAGP,KAAM,KADE,EAAA,IAAA,EAFD,OAQlB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACvB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACvB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACtB,KAAM,MAAZ,IAAsC,KAAM,QAAd,IAAI,KAAJ,GAJT,EAAA,IAAA,IAAA,IAAA,IAQrB,KAAM,UAAV,IAEQ,KAAM,MADJ,IACyB,KAAM,MAD/B,GAIN,KAAM,MADY,IACU,KAAM,MACjC/H,IAAK,MAAa,KAAb,IAAA,IACH+H,IAAA,EAAA,MAGF4yC,IACG,KAAM,MAAV,IAEQ,KAAM,MAFd,EACIrF,GAAAA,IAA4C,MAAA,IAE5C,KAAM,QAAV,IAJkB,MAHf,MASW,KAAM,MACC,KAAM,MACF,KAAM,MAEV,KAAM,MAEH,KAAM,MACL,KAAM,MAG3B,KAAM,MAAV,IAEQ,KAAM,MAEV,KAAM,MADY,IACU,KAAM,MAGlC,KAAM,MADe,IACQ,KAAM,MAChB,KAAM,MAClB,KAAM,MAEb,KAAM,QAAV,IAAA,GACI,KAAM,KAAV,IADA,GAEK,KAAM,KAAX,GACY,KAAM,MACD,KAAM,MACH,KAAM,MACT,KAAM,MACL,KAAM,MACT,KAAM,MACT,KAAM,KACR,KAAM,MAhCjB,EACW,IADX,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,EARI,OADG,IAyCiB,KAAA,KAzCJ,MAAzB,EA+CF,EACM,KAAM,MAAuB,MAA+B,MAAA,IAA/B,OACnC,EAEA,EACM,KAAM,MAAmB,MAAA,MAC/B,EA7OkC,aAAA,KAAN,EAcM,aAAA,KAAN,EAqBH9lC,GAAAA,IAAAA,UAAY,KACnCxJ,IAAAA,OACE40C,IAAAA,GAA0B,OAAA,IAA1BA,IADO,MAIF,MAAA,IAAA,OAAA,QAAA,KAAP,EAYA/6C,GAAAA,IAAAA,KAAQ,SAARA,IAAAA,GAA6BA,IAAAA,KAAQ,SAARA,IADgB,EAiM3C,MACEg7C,GAAiBvF,GAAAA,IAA8C,MAAA,IAA/DuF,GAEI,EAAA,KAFJA,EACI,EAAA,QAF6B,EAMnC,EAAmC,E,kB,K,I,K,I,K,M,I,Q,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OCvVzC,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QAGA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAt7C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,2C,S,YAAA,IAAA,KAAA,IAAA,QAAA,IA8GK,KAAd,KAsLnB,KAtLmB,IAyLa,MAAC,KAAD,SAId,SAEP,MAAa,EA7SI,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA8GT,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAInBzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAkDA,MAAA,IAKD,KALC,IAlDA,IA8DA,MAAA,IAED,KAFC,IA9DA,IAkEA,MAAA,IAED,KAFC,IAlEA,IAsEA,MAAA,IAED,KAFC,IAtEA,IA2EA,MAAA,IAED,KAFC,IA3EA,IAkKA,MAAA,IAED,KAFC,IAlKA,IA8KA,MAAA,IAED,KAFC,IA9KA,IAAA,MAkLA,EAtLmB,MAAAC,GAAAA,IAAA,KAAAuxC,GAAAA,IAAA,MAAA,KAAAl6C,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,IAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAERuyC,IAAAA,KAAQ,MAA4C,MAAA,IAAtC,KAAA,OAAA,IAAA,IACNnD,IAAAA,KAA2C,MAAA,IAA/B,KAAA,OAAA,IAAA,IAFjB,EAAA,KAAA,KAAV,MAGJ,EAED,IAEqB,KAAM,MAAX,GAEN,KAAM,OADJ,IAEF,KAAM,MAFJ,IAGF,KAAM,OADiB,IAC3B,KAD2B,GAFrB,IAIK,KAAM,MACC,KAAM,MACR,KAAM,MACL,KAAM,MAEJ,KAAM,MAiBV,KAAM,MACV,KAAM,KA7Bd,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,OAAA,KAAA,KAYG,KAZH,KAoBI,KApBJ,KAAA,KAAA,IA8BM,KA9BN,KAwCO,KAxCP,KAAP,EAaQ93C,GAAAA,IAAAA,KAAQ,MAAZ,GACEwF,GAAAA,IAAqB,SAAA,KAEnBA,GAAAA,IAAI,KAAM,QAAd,IACEA,IAAI,KAAa,SAAA,KADnB,EAGF,EAEMxF,GAAAA,IAAAA,KAAQ,MAAZ,GACEwF,GAAAA,IAAmB,SAAA,KAEjBA,GAAAA,IAAI,KAAM,QAAd,IACEA,IAAI,KAAc,SAAA,KADpB,EAGF,EAGW,MACTA,GAAAA,IAAmB,MACZ,MAAe,SAApBgW,MADiB,KAKfhW,IAAI,KAAM,QAAd,IACEA,IAAI,KAAgB,MAAA,KADtB,EAGF,EAEEA,GAAAA,IAAqB,SAAA,KACb,KAAM,QAAd,IACEA,IAAI,KAAiB,SAAA,KADvB,EAGF,EAQFy1C,GAAAA,IAAAA,KAAe,QAAK,KAAM,MAGhBC,IAAAA,KAAY,MAACA,KAAM,MAAP,KAHW,KAAA,OAAA,IAAA,MAAA,KAAlB,MAKP,KAAA,MACV,EAEA,YACoB,MAAK,KAAM,QAAX,OAAA,GAAA,QACpB,EAEA,EACoB,MAAsC,MAAA,OAAtC,QACpB,EAEA,KACkB5hC,GAAAA,IAAAA,OAAiB,KAAM,KAAX,OAAf,IAAG,KACT,OAAA,OAAP,EAGF,YAIQ,KAAM,MAA8B,MAAA,IAD7B,MAAS,MAAqCiyB,GAAAA,IAAA,KAAAC,IAAA,MAI/C,KAAM,QAAZ,IAAiC,KAAM,OAAd,IAAI,MAAJ,GAEvB,KAAM,MADL,IAC6B,KAAM,OAAd,IAAI,MAAJ,GAEtB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,KAAJ,GAEvB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,MAAJ,GAEvB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,MAAJ,GATL,EAAA,KAAA,KAAA,IAAA,KAAA,KAapB,KAAM,QAAV,IAA2BtjC,IAAA,EAAA,MAGP,KAAM,KADE,EAAA,IAAA,EAFD,OAQlB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACvB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACvB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACtB,KAAM,MAAZ,IAAsC,KAAM,QAAd,IAAI,KAAJ,GAJT,EAAA,IAAA,IAAA,IAAA,IAQrB,KAAM,UAAV,IAEQ,KAAM,MADJ,IACyB,KAAM,MAD/B,GAIN,KAAM,MADY,IACU,KAAM,MAEtCgoC,IAAA,KAACiL,IAAA,KAAQ,KAAKjzC,IACI,KAAM,MAEC,KAAM,MACF,KAAM,MACV,KAAM,MAEH,KAAM,MACL,KAAM,MAG3B,KAAM,QAAV,IAEQ,KAAM,MAGV,KAAM,MADY,IACU,KAAM,MAIlC,KAAM,MADe,IACQ,KAAM,MAE7B,KAAM,KAAX,IAAA,IAAiC,KAAM,MAApB,EAAA,IAAnB,IACO,KAAM,MACR,KAAM,MACJ,KAAM,KACD,KAAM,MACH,KAAM,MACT,KAAM,MACL,KAAM,MACT,KAAM,MACE,KAAM,MAClB,KAAM,MAEb,KAAM,QAAV,IAAA,GAAsC,KAAM,KAAV,IAE3B,KAAM,MApCH,EACA,IADA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,MAsCP,KAAM,KADyB,IAAA,IAAA,IAAA,EAAA,IAAA,EArCxB,OAAd,MADF,EA+CF,OACM,KAAM,MAAuB,MAA+B,MAAA,IAA/B,KAE3B,KAAM,KAAuB,KADnC,IAEGoR,GAAAA,IAAAA,KAAsB,KAAV,SAAZ,IAAA,KACCA,IAAAA,KAAiB,KAAM,KAAX,OADyB,IACrC,KADD,IAFH,IAMuB,SAAA,KAEzB,EAEA,EACM,KAAM,MAAmB,MAAA,MAC/B,EAIA42B,GAAAA,IAAA,KAACsF,IAAgBttC,MAAA,KAAA,MAAU,KAAA,KAAA,EAAV,OAAjB,MAD6C,E,a,M,O,M,K,I,Q,O,S,I,K,QCzS/C,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,KAEmBlI,KAAQ,MAARA,GAEfo7C,KAFep7C,EACfq7C,KADer7C,I,iBAEyC,EAG1D,SAH0D,MAM1D,SAN0D,MAS1D,SAT0D,MAY1D,SAZ0D,MAe1D,SAf0D,MAkB1D,SAlB0D,M,KAAA,MAqB/C,MAAA,EAzB6B,OAAAlG,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAQ/B0B,GAAAA,IAAOC,OAAA,MAAA,KAAiC,KAA/C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA8B,KAA5C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAmC,KAAjD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAoC,KAAlD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA6B,KAA3C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA6B,KAA3C,E,W,K,I,K,MClCS,MAAA,OAAAlJ,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAYb,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAmD0B,KAAH,IAcC,KAAH,IAkDN,KAAA,IAqDA,KAAA,IAAH,IAsDE,KAAA,IA0CG,KAAH,IA6DG,KAAH,IAoEA,KAAH,IAuJFwhD,KAMEC,KAIFC,KAMQC,KAOTC,KA2HNC,KAQAC,MAcOC,MA/KM,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KA9gBH,KA8gBG,IAvgBE,KAugBF,KAhgBA,KAggBA,KAzfE,KAyfF,IAlfA,KAkfA,KA9eG,KA8eH,KAAA,KAAA,KAAA,KAtIC,KAsID,KArHF,KAqHE,KAnCD,KAmCC,KAAA,KAAA,K,KAAA,K,KAAA,KAAA,KAgLd,MAAA,EAzsBqD,OAAA/hD,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA4dtD,QAIE,GACE,EAC0Bw6C,GAAAA,IAAAA,MAAjBrgC,IAAJ,WAIE,KAAP,EAHmB,MAAA,KACnB,EAEO,IACL,GAAA,IAAA,OAAA,IAA+BA,IAAK,KAAA,EAAA,GAAA,MACpCuB,IAAQ,KAAA,EAAA,MACV,EAIJ,GAIE,GAA8B8+B,GAAAA,IAAAA,MAAjBrgC,IAAb,GACwB,SAAA,KADxB,EAGF,EAreasgC,GAAAA,IAAAA,KAAgB,KAAA,aAAA,IAAA,IAA3B,EAOWC,GAAAA,IAAAA,KAAmB,KAAA,aAAA,IAAA,IAA9B,EAOWC,GAAAA,IAAAA,KAAgB,KAAA,aAAA,IAAA,IAA3B,EAOWC,GAAAA,IAAAA,KAAsB,KAAA,aAAA,IAAA,IAAjC,EAIWC,GAAAA,IAAAA,KAAc,KAAA,aAAA,IAAA,IAAzB,EAQWC,GAAAA,IAAAA,KAAiB,KAAA,gBAAA,IAAA,IAA5B,EAGwB,QAIxB,GAAsB,MAAtB,MAMS1uC,GAAkB,MAAzB,UALO,KAAP,EAAO,IACLwqC,GAAAA,IAAM,MAANA,GAAqBA,IAAM,MAAW,KAAA,EAAA,GAAA,MACtCxqC,IAAAA,GAAYA,IAAQ,KAAA,EAAA,MACtB,EAMoB,WAKD8tC,GAAAA,IAAAA,KAAjB5gD,IAAJ,MAe4B6gD,IAAAA,KAAjB7gD,IAAJ,KA2BP,EA1BeuN,IAAA,EAAA,MACA,EAAA,MACA,EAAA,MACA,EAAA,MACb,GAAA,QAAA,SAAA,GAC6B,IAAnB,MAAG,MAAG,MAAG,MACjB,IAAA,IAAA,IAAA,IAMc,IACA,IACA,IACA,IATd,EAYoB,MAAP,MACO,MAAP,MACO,MAAP,MACO,MAAP,MAGRk0C,IAAS,IAAA,IAAA,IAAA,IAAA,IAAkB,IAAA,KAAnB,MAAf,EAvCal0C,IAAA,EAAA,MACA,EAAA,MACb,GAAA,QAAA,SAAA,GACuB,IAAb,KAAG,KACX,IAAA,IACc,IACA,IAFd,EAKoB,KAAP,MACO,KAAP,MAGRk0C,IAAS,IAAA,IAAA,IAAU,IAAA,KAAX,MAAf,EA+BW,UAIC,KAwBZC,GAAAA,IAA+BC,IAAhB,mBAAfD,GAA0C,EACjC,KADiC,IAKlC,KALkC,KASjC,KATiC,KAatB,KAbsB,KAkBlB,KAlBkB,KAA1CA,KADF,EAvBc,MAKDE,GAAAA,SAAiB,MAGJ,MAAA,IACP,KAAoBb,IAAAA,KAAjCc,IAAJ,GAWqB,MAAKC,IAAAA,KAAe,KAAA,UAAA,IAAA,IAApB,MAXrB,EACmB,MACXC,IAAAA,KAEW,KACbD,IAAAA,KAHkB,KAAA,gBAAA,IAAA,IADL,KAYrB,EAIME,GAAAA,IAAMhiD,IAAOs9C,SAAR,OACP,EAGEt9C,GAAAA,IAAmB,MAAA,MACrB,EAGEA,GAAAA,IAAoB,MAAA,MACtB,EAGoBuN,GAAAA,IAAA,EAAO+vC,GAAAA,MAAP,MAAa,KAAA,KAAA,EAAb,OAClB0E,IAAMhiD,IAAD,MACP,EAGSs9C,GAAAA,IAAM,MAANA,KAAP,EAMO,UAIC,KAyBZoE,GAAAA,IAA+BO,IAAhB,mBAAfP,GAA0C,EACjC,KADiC,IAKlC,KALkC,KASjC,KATiC,KAatB,KAbsB,KAkBlB,KAlBkB,KAA1CA,KADF,EAxBc,MAKDE,GAAAA,SAAiB,MAGJ,MAAA,IACP,KAAoBb,IAAAA,KAAjCc,IAAJ,GAWqB,MAAKK,IAAAA,KAAe,KAAA,UAAA,IAAA,IAApB,MAXrB,EACmB,MACXH,IAAAA,KAEW,KACbG,IAAAA,KAHkB,KAAA,gBAAA,IAAA,IADL,KAYrB,EAKMF,GAAAA,IAAMhiD,IAAOs9C,SAAR,OACP,EAGEt9C,GAAAA,IAAmB,MAAA,MACrB,EAGEA,GAAAA,IAAoB,MAAA,MACtB,EAGoBuN,GAAAA,IAAA,EAAO+vC,GAAAA,MAAP,MAAa,KAAA,KAAA,EAAb,OAClB0E,IAAMhiD,IAAD,MACP,EAGSs9C,GAAAA,IAAM,MAANA,KAAP,EAMM,UAIE,KAaZoE,GAAAA,IAA+BS,IAAhB,mBAAfT,GAAyC,EAChC,KADgC,IAKjC,KALiC,KAShC,KATgC,KAarB,KAbqB,KAkBjB,KAlBiB,KAAzCA,KADF,EAZc,MAKDE,GAAAA,SAAiB,MAGJ,MAAA,IACL,MAAKQ,IAAAA,KAAc,KAAA,UAAA,IAAA,IAAnB,MACrB,EAKMJ,GAAAA,IAAMhiD,IAAOs9C,SAAR,OACP,EAGEt9C,GAAAA,IAAmB,MAAA,MACrB,EAGEA,GAAAA,IAAoB,MAAA,MACtB,EAGoBuN,GAAAA,IAAA,EAAO+vC,GAAAA,MAAP,MAAa,KAAA,KAAA,EAAb,OAClB0E,IAAMhiD,IAAD,MACP,EAGSs9C,GAAAA,IAAM,MAANA,KAAP,EAMS,KAAA,MAGJ,IACJ,EACE,KADF,IAyBC,KAzBD,KA+BE,KA/BF,KAwCa,KAxCb,KA8CiB,KA9CjB,KAAP,EACS,KAAA,IACc,KAAA,IAgBf+E,GAAAA,IAAU,OAAd,IAGEA,IAAWtxB,IAAD,IAAe,KAAA,KAH3B,EACEje,GAAqB,IAAA,MAAD,KAApBA,EAIJ,EArBqB,GACN,KAAX,GACEA,GAAAA,IAAAA,GAAYA,MAAQ,KAApBA,EACA,EAGFie,GAAAA,IAAO,GAAA,IAESsxB,IAAU,KAA1B,IAKAA,IAAWtxB,IAAD,IAAe,KAACuxB,GAAAA,IAAD,OAC3B,EALIxvC,GAAAA,IAAAA,GAAYA,MAAQ,KAApBA,EACA,EAcAie,GAAAA,IAAUsxB,IAAU,KAAxB,IACEA,IAAWtxB,IAAD,IAAc,MAAA,IAD1B,EAGF,EAGEsxB,GAAAA,IAAkB,OAAC,KAAD,OAKX,MACT,EANqB,GACNtxB,GAAAA,OAAX,IACiB,MAAA,IADjB,EAGF,EAIgB,EACNvwB,MAAK,KAAA,WAAA,IAAA,IAAf,EAKoB,EACpB,EAUW,QAOQ88C,GAAgB,QAANA,IAAVA,aADe,gBACjB,GAAH,IAEH,EACN,KADM,IA8BP,KA9BO,KAqCN,KArCM,KA6CK,KA7CL,KAmDS,KAnDT,KAAH,IAwDZ,EAvDS,KACDiF,GAAAA,IAAcF,IAAU,KAA5B,QAKAA,IAAkB,KAAC,KAAD,OAqBpB,EAzBIvvC,GAAqB,IAAA,MAAD,KAApBA,EACA,EAGiB,KACN,YAcX,GACK,IAAA,MAAD,KADJ,EAGiB,KAAA,KAHjB,EAKF,EAnBa,GACT0vC,GAAAA,IAASC,GAAAA,MAAI,IACbF,IAAS,GAAA,IACSF,IAAU,KAA5B,IAMc,KAAd,GAA2BK,IAA3B,GACEpd,IAAW,MAAA,IADb,EAGF,IARa,IACTxyB,GAAAA,IAAAA,GAAYA,MAAQ,KAApBA,EACA,EAiBNuvC,GAAAA,IAAkB,OAAC,KAAD,OAIpB,EAJqB,MAChBG,GAAAA,IAAQ,IAAT,GAAA,GAAgC,MAAA,IAChCA,MAAa,MACf,EAIAH,GAAAA,IAAkB,OAAC,KAAD,OAKpB,EALqB,GACF,MAAA,IACfG,GAAAA,SAAa,MACJ,MACX,EAGgB,EACNhiD,MAAK,KAAA,WAAA,IAAA,IAAf,EAKoB,EACpB,EASGyhD,GAAAA,IAAWtB,IAAAA,KAAa,KAAA,SAAA,IAAA,IAAK,aAAA,QAAvB,MAAb,EAQc,QAAA,IAIPc,GAAAA,IACS,KAAC,KAAD,OADD,KAAf,EAEWkB,GAAAA,IAAUpF,IAAMqF,GAAAA,OAAAA,MAAD,KAAN,IAAA,OAAA,IAAD,KAAf,EAWO,YAIS,MAAA97C,IAAA,IAAAA,IADkD,EAClDA,EAAA,IADoD,MAA7D+7C,OAAA,QAA2BC,OAAAA,WAAA,MAExB,MACK,IACZ,EACE,KADF,IA0BC,KA1BD,KA+BE,KA/BF,KAqCa,KArCb,KA2CiB,KA3CjB,KAAP,EACS,KAAA,IACW,KAAA,IAaXC,GAAAA,IAAL,GAAkBC,MAAlB,IAGMD,IAA8B,MAAA,IAAlC,KAGS,IAHT,EACEA,IAA0B,MAACC,IAAD,KAD5B,EAFAlwC,GAAqB,IAAA,MAAD,KAApBA,EAQJ,EAtBkB,IAA2B,KAAAhM,IAAA,IAAAA,IAAG,IAAA,IAAHA,EAAA,IAEvCm8C,GAAAA,IADF,GAEEC,IAAoBF,IAFtB,IAGQ,OAHR,IAOEE,IAAe,GAAA,IACfC,IAAAA,GAAwBJ,IAAe,MAAA,IACvCA,IAAe,KAACK,GAAAA,IAAD,KATjB,EAKEtwC,GAAAA,IAAAA,GAAYA,IAAQ,KAMxB,EAaU,KAAA,IACViwC,IAAc,MAAA,MAChB,EAGiB,KAAA,MACL,IACVA,IAAe,MAAA,MACjB,EAEkB,EACNviD,MAAK,KAAA,WAAA,IAAA,IAAf,EAMOuiD,GAAAA,IAA8B,MAAA,IAArC,EAmCsB7B,GAAAA,IAAAA,MAAa,KAAA,aAAA,IAAA,IACtB,KAAjB,GAGmC,MAAA,IAAjC,EAFA,E,W,K,MCxhBS,MAAA,OAAA/hD,MAAA,KAAA,IAAA,QAAA,OAAA,MAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAIb,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IA+H0B,KAyGvB,IAAA,MAAA,EA5NI,aAAA,IAQiB,IAAH,IAEF,KAAA,IAkBjBqM,GAAAA,IAAAA,OACY,IAAV63C,GAA2B,IAAG,KAA9BA,IADO,MAMU,IAAG,KAAc,IAA5B,MAEQr9C,IAAAA,QAAc,OAC9B,sBACEs9C,IAAqB,KAAC,KAAD,KAShB,EACC,KADD,KAAP,EArCiB,QACM3C,GAAAA,IAAAA,KAAjB3gD,IAAJ,MAO4B4gD,IAAAA,KAAjB5gD,IAAJ,GAGI,OAAJ,OACL,GACEujD,GADF,WAAA,YAAA,GACEA,IAAc,IAAkB,KAAA,KAAxB,MADV,EAHAA,GAAAA,IAAc,KAAe,SAAA,KAArB,MACM,KAAe,SAAA,KAArB,MAFH,EANa,MAACC,GAAAA,IAAD,KAElBF,IAAkB,KAEsB,KAAA,IAFrB,EAAA,KAAA,KAAD,KAYtB,EAaIG,GAAAA,IAAAA,KAAoB,MAA2B,MAC7CC,GAAAA,IACAnW,OAF6C,SAKjD,EAKMmW,GAAAA,MAAJ,IACEJ,IAAqB,OAAC,KAAD,KADvB,EAUF,EARMG,GAAAA,IAAAA,KAAoB,MAAgC,MAClDC,GAAAA,IACAnW,OAEO,MAJ2C,SAMtD,EA0DkB,EAAA,KAAA,IAqBvBlkC,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAIA,MAAA,IAED,KAFC,IAJA,IAQA,MAAA,IAED,KAFC,IARA,IAsBA,MAAA,IAED,KAFC,IAtBA,IA+BA,MAAA,IAED,KAFC,IA/BA,MAAA,MAoFA,EAlGD,QAAuE,IAAAC,GAAAA,IAAA,KAAA43C,GAAAA,MAAA,MALzC,IAApB,MAyGO,KAAH,SAnGI,QAEhB,MACEzgD,MAAY,SAAA,KACH,IAAA,QAGD,MAAV,GACoB,MAAO,MAAP,KAED,MACDgjD,IAAAA,KAA0C,MAAA,KAA7C,MACe,MAAT,MACvB,EAsFiB,MAAkB,KAAV9iD,MAAA,KAAA,UAAA,IAAA,MAAU,IAAV,IAAA,IAAA,GAAU,QACjCgK,GAAAA,IAAI,MAAmB,KAAC,KAAD,KACzB,EAD0B,GAAoB,KAAIpC,GAAAA,MAAJ,MAAZ,EArFlC,GACM,MAAgB,QAAA,OACtB,EAEA,QAAA,IACwB,MAAkB,KAAC,KAAD,KAAzB,QACjB,EADoEuK,GAAAA,OAAbsP,IAAJ,EAGnD,GACE5W,GAAAA,IAAAA,KACM,WADG,MAKay1C,IAGhB,MACA,cAJiC,IAApB,MAMrB,EAEA,GACEz1C,GAAAA,IAAAA,KACM,WADG,MAKL,MAAJ,GAA2B,MAAsB,MAAA,IACnD,EAEA,KACU,KAAR,OAgBO,KAAP,EALe,MAAX,EAKG,MAAkB,KAAV7K,MAAA,KAAA,UAAA,IAAA,MAAU,IAAV,IAAA,IAAA,GAAU,QAMN,KAAA,IAAH,IAsBdkK,GAAAA,IAAI,MAAoB,KAAC,KAAD,KAIpB,MAAe,KAAItC,IAAJ,MACrB,EA3BmB,QAIWo4C,GAAAA,IAAAA,KAAtBgD,IAAJ,MAIiC/C,IAAAA,KAAtB+C,IAAJ,GAKI,OAAJ,IACL,GAIEJ,GAJF,QAAA,SAAA,GAIEA,IAAmB,IAAoB,IAA/B,MAJV,EALI,OAAJ,IACEA,GAAAA,IAAmB,KAAU,KAArB,MACW,KAAU,KAArB,MAFV,EAJI,OAAJ,IACqB,MAAA,KAezB,EAEEA,GAAAA,IAAkBh7C,OAAI,SAAd,MACV,E,W,K,K,K,O,M,O,M,K,I,Q,O,S,I,K,QClON,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,KAIElD,KAAQ,SAARA,OAA+B,MAA/BA,IAEIu+C,KAFJv+C,EACIw+C,KAQ+Bz6C,MAAG,KAAA,OAAA,IAAA,IAOtC/D,KAAQ,SAARA,IAAAA,KACEy+C,IAAAA,GAAoB,MAArB,GAAD,GADAz+C,GAEAs4C,KAAiD,MAAA,IAYHoG,MAAAA,EAC1C,KA8BD,IA/B2CA,wBAP5C,MAGA,oB,+CAf2B,QAEC,gB,SAiBa,IAsCjC,EACA,KADA,KAgBe,KAhBf,KA0BiB,KA1BjB,KAkCI,KAlCJ,KA6CE,KA7CF,KAiFM,KAjFN,KAqGU,KArGV,KAyGgB,KAzGhB,KAkHyB,KAlHzB,KAsHwB,KAtHxB,KA0HY,KA1HZ,KA8He,KA9Hf,KAqIU,KArIV,KAiKK,KAjKL,KAqKY,KArKZ,KAyKa,KAzKb,KA6KiB,KA7KjB,KAiLiB,KAjLjB,KAqLiB,KArLjB,KAyLsB,KAzLtB,KAoMY,KApMZ,KA2MQ,KA3MR,KA+Mc,KA/Md,KA4NiB,KA5NjB,KAAH,IA6QsB,UAAH,IAaN,EAAA,MACK,EAAA,UADL,OAAA,IAyBO,UAAH,IAaa,UAAH,IAkGJ,IA8CjB,EAAA,K,KAAA,KAAA,KAAA,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,KAmBb,SAnBa,MA6Bd,MAAA,EArjBiC,OAAA5kD,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAmTlC,EACuCqC,GAAAA,IAAAA,KAAiC,SAEpE,KAFoE,MAApC,IAahCA,KAAiC,SAE/B,KAF+B,MADQ,MAa7C,EAvBI,GACsB,KACHi7C,GAAAA,IAA8B,IAC/C,KACE,EAEa,OAAP,KACDA,IAAP,IACF,EAKE,GAC8B,MACXC,GAAAA,IAAuC,IACxD,KACE,IAEM,KACDA,IAAP,IACF,EAuEJC,GAAAA,SAAsB,MACxB,EAIEC,GAAAA,SAA0B,MAC5B,EAIEC,GAAAA,SAAqC,MACvC,EAGSC,GAAAA,IAAqC,QAAA,KAA5C,EAIOH,GAAAA,IAA+B,QAAA,KAAtC,EAIOC,GAAAA,IAAmC,QAAA,KAA1C,EAIOC,GAAAA,IAA6C,QAAA,KAApD,EAGF,GAgBiB,OAAC,KAAD,OAOjB,EAPkB,GACTE,GAAAA,IAA+B,QAAP,KAA7B,KACY9jD,MACW,UADN,IAAA,KAAA,QAAA,OAAA,IAAA,IAAf,EAIJ,EAGF,EACE,GACO+jD,GADP,QAAA,SAAA,GACOA,IAAoB,KAAzB,KACY/jD,UAAK,IAAA,KAAA,QAAA,OAAA,IAAA,IAAf,EAKN,EAEA,EAGE,GACOgkD,GADP,QAAA,SAAA,GACOA,IAA6B,KAAlC,KACYhkD,UAAK,IAAA,KAAA,QAAA,OAAA,IAAA,IAAf,EAKN,EAGSikD,GAAAA,IAA4B,GAAA,GAAA,IAAnC,EAIOC,GAAAA,IAAwB,GAAA,GAAA,IAA/B,EAIAl5C,GAAAA,IAAAA,KAAUs4C,UAAD,MACX,EAIA,KAGY,QAAV,MACErjD,MAAY,SAAA,KAMJ,QAAV,IAAwCqjD,GAAAA,IAAxC,GAESa,IAAL,KACElkD,MAAY,SAAA,KAOgB,IAGhC,EAGW,MAAN68C,KAAP,EAGF,GAGM,OAAJ,IAGI,cAAW,MAAA,KAAf,GAKE,IAJgBnmC,QAAU,KAAVA,KACWzV,MAAI,MAAdkjD,OAAAA,IACjB,EALA,EAzee,QAuBK,QAAqB,KAKpC,EALe,MAAlB,EAAuC,SAGjBn+C,OAAH,IACjB,EAUI,MAIR+E,GAAAA,IAAAA,KAAUq5C,UAAD,MACLd,IAAJ,GAOEe,IAAkB,MAACD,IAAS,MAAV,OAPpB,EACE,GACEb,IAAmC,IAGrCc,IAAkB,MAACD,IAAS,MAAV,MAItB,EAEEE,GAAAA,IAA8B,QAAA,OACf,IAEbpH,IAAAA,KAAwD,MAAA,IAD1D,GAEEqH,IAFF,KAIEplC,MAAaolC,MAAD,KAJd,EAMF,EAEED,GAAAA,IAAiC,QAAA,KAEH,OAA9B,MACiB,IACfD,IAAgB,MAAA,IAFlB,EAIF,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MAELlH,IAAAA,KAAwD,MAAA,IAA5D,GAKEmH,IAAc,MAAA,IALhB,EACsBE,MACpBC,MAAc,KACM1hB,MAAauhB,IAAG,MAAJ,KAAf,IAIrB,EACY,EACVt5C,GAAAA,IAAAA,KAAUs4C,UAAD,QACQ,IAGbC,IAAJ,GAA2BmB,IAAa,KAAxC,OAGKnB,IAAL,GAA4Bh5C,IAAK,KAAjC,IACE,EAGEg5C,IAAJ,MAeE1+C,IAAAA,KAAQ,SAARA,IAA6By+C,IAAoB,MAApBA,IAAAA,IAAwC,MAAA,IACjD/4C,IAAK,OAAzB,IACEA,IAAQ,IAAA,IADgC,GAA1C,IAGAA,IAAY,MACZ1F,IAAAA,KAAQ,KAARA,IACEy+C,IAAoB,MAApBA,IAAAA,IAAyC,MAAA,IAAzCA,EAlBCqB,IADH,GAEGC,IAFH,GAIEC,IAAgC,IAMlCvB,IAAoB,MAApBA,IAAAA,IAAqD,MAAGoB,IAAH,KACrDA,IAAoB,MAUxB,EA7BI,EA8BY,cAGL,KADFvkD,QAAA+I,IAAAA,IAAA,KAAA,UAAA,IAAA,OACE,IADF,IAAAC,IAAA,IAAA,GACE,IACLo6C,GAAAA,IAAJ,GAUIuB,IAAJ,GAAuBv6C,IAAK,KAA5B,IAGI,KAAA,wBAFFA,IAAU,KAAC,KAAD,KAId,EAZIm6C,IAAa,KAAK,KAAL,IAAA,IAAQ,KAAA,KAAH,MAClB,EAOiBv9B,GAAAA,IAAE,KAAIpf,MAAJ,MAAR,EAMbiD,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,YAAV,OACpB,EAKEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACI,MAAb,GACEC,IAAkB,MAACD,IAAS,YAAV,OAEtB,EAEEr5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,SAAV,MACpB,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,SAAV,MACpB,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,YAAV,OACpB,EAKEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,YAAV,OACpB,EACoB,YAMlBt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACLd,IAAJ,GAYEe,IAAkB,MAChBD,IAAS,qBADO,IAZpB,EACE,GACEZ,IAAoD,IAGtDa,IAAkB,MAChBD,IAAS,kBADO,IAetB,EAEEr5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,SAAV,MACpB,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,YAAV,OACpB,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,YAAV,OACpB,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,SAAV,MACpB,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,SAAV,MACpB,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,YAAV,OACpB,EAKEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MACP,YADO,OAKpB,EAEEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MAEI,QAAb,IACEC,IAAkB,MAACD,IAAS,SAAV,MAEtB,EAEEr5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MAAU,SAAV,MACpB,EAMEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MACP,kBADO,IAMpB,EAMEt5C,GAAAA,IAAAA,KAAUq5C,UAAD,MACTC,IAAkB,MACP,kBADO,IAMpB,EA4POS,GAAAA,IAAL,GAC2BzU,IAAAA,KAGvBzrC,IAAAA,KAAQ,WAARA,IAA+By+C,IAHU,KAAA,UAAA,IAAA,IAAzB,IAMbyB,IAAP,E,e,K,I,M,K,I,Q,O,WCjkBJ,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxgD,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OA4DnC,SAAA,KAA8B,MAAA,EA5DK,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,e,K,I,M,K,I,Q,O,WCA1E,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OA4DnC,SAAA,KAEtC,MAAA,EA9DyE,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,K,I,K,I,K,I,K,MCF7D,MAAA,OAAA/F,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAOb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAM0BskD,KAAoB,MAAvB,IA4DoB+B,KAAT,KA0N/B,KA1N4D,MAAA,EAlEL,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA8B1D,EAAA,KAAA,MAC6BlB,MAAG,KAAA,OAAA,IAAA,IAAV,SAWF,KAEI,KAAC,KAAD,KACxB,EAbE,GAIiB,MAAX,OAAJ,IAGoB,MAAA,IAAU,KAACq8C,GAAAA,IAAD,KAH9B,EACEC,GAAAA,IAAkB,KAAA,KADpB,EAKF,EAGuB,GAAqC,MAAA,IAAxB,EAQtC,GACEC,GAAAA,IAAyC,MAAA,UAChC,IACTA,IAA2C,MAAA,KAC7C,EAUkC,EAAA,KAAA,IAAA1mC,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAmB/BzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAUA,MAAA,IAED,KAFC,IAVA,IAcA,MAAA,IAQD,KARC,IAdA,IAoCA,MAAA,IASD,KATC,IApCA,IAkDA,MAAA,IAQD,KARC,IAlDA,IAgEA,MAAA,IAQD,KARC,IAhEA,IA8EA,MAAA,IASD,KATC,IA9EA,IAkGA,MAAA,IAOD,KAPC,IAlGA,IAkHA,MAAA,IAED,KAFC,IAlHA,IAsHA,MAAA,IAMD,KANC,IAtHA,IAgIA,MAAA,IAQD,KARC,IAhIA,IAiKA,MAAA,IAKD,KALC,IAjKA,IAyKA,MAAA,IAKD,KALC,IAzKA,IAmLA,MAAA,IAED,KAFC,IAnLA,IA+LA,MAAA,IAED,KAFC,IA/LA,IAAA,MAuMA,EAlND,SAA0DC,GAAAA,IAAA,KAAAq3C,GAAAA,MAAA,MACxD5yC,IAAA,KAAA,KACI,OAAJ,IAGiC,MAAd,QACP,QACG,MACf,GAAoB,MAApB,GACmB,MAAA,IAClB,IAPWvN,MAAK,KAAA,WAAA,IAAA,IAAf,EAUJ,OACU,SAAR,KACEmlD,GAAAA,IAA0B,MAAoB,KAAA,IAAI,KAAxB,MAIV,MAAA,IAClBxb,GAAAA,IAAA,KAAAprB,IAAA,KAAA4hC,GAAAA,IAAA,KAAA,SAAA,OAAA,KAAA,KACF,EALM91C,GAAAA,IAA0B,SAAZ7K,IAAH,QACb,EAMJ,GACa,MAAc,MAAlB,IAAP,EASF,UACU,MAAR,GACM,MAAgB,MAAA,MACL,MAEA,MAEV,KAAL,GAFe,MAIT,aAAR,KACE4lD,GAAAA,IAA2C,KAAA,IAAW,KAAA,IAAI,KAAnC,MAI3B,EAHMD,GAAAA,IAAsC,MAAC36C,GAAAA,IAAmB,KAAA,IAAIhL,IAAxB,MADkB,EAa9D,MACc,MACJ,KAAR,GACE2lD,GAAAA,IAAuC,MAAoB,KAAA,IAApB,MADzC,EAGF,EAQA,GACM,MAAe,MAAR,IAAA,QACC,MACJ,KAAR,GACEA,GAAAA,IAA2C,MAAoB,KAAA,IAApB,KAD7C,EAGF,EAQA,GACM,MAAgB,MAAR,IAAA,QACD,MACH,KAAR,GACEA,GAAAA,IAA2C,MAAoB,KAAA,IAApB,KAD7C,EAGF,EASA,MACmB,MAAA,IACb,MAAJ,GAAuB,MAAgB,MAAA,IAAvC,EACe,MACf,GACU,KAAR,GAG0B,KAAA,MAAhB,KAHV,EACEA,GAAAA,IAA0B,MAAoB,KAAA,IAApB,MAD5B,EAMJ,EAOA,GACoB,SAAA,KACA,MAAP,MACH,KAAR,GACEA,GAAAA,IAAsC,MACjB,KAAA,IACf,MAFgC,MADxC,EAMF,EAEA,GACmB,WAAA,QACnB,EASa7E,GAAAA,IAAAA,KAAqB,KAAA,aAAA,IAAA,IAAhC,EASF,QAEe,QAAb,GACW+E,GAAAA,IAAAA,KAA0C,MAAA,IAEvB,MAC1B,MAAJ,GAAuB,MAAgB,MAAA,IAAvC,eACe,MACA,KACT,MACJ,KAKA,cAPa,MAiBjB,EAZMC,GAAAA,IAAiB,WAAA,QACnB,EAEEA,GAAAA,MAAe,MACX7iB,IAAJ,IACE4iB,GAAAA,IAAAA,KAAyC,MAAC5iB,IAAD,KAE3CnwB,IAAAA,GAAYA,SAAQ,KAApBA,EACF,EASJ,GACM,MAAJ,GAAsB,MAAmB,MAAA,IAAzC,EACc,QAChB,EAKA,GACmB,MAAA,OACH,MAEV,MAAJ,GAAsB,MAAiB,MAAA,IAAvC,EACF,EAEA,QACE,IAIW,SACX,GACEizC,GAAAA,IAAM,KAER5b,GAAAA,IAAA,KAAAprB,IAAA,KAAA4hC,GAAAA,IAAA,KAAA,SAAA,OAAA,KAAqC,KAAA,IAArC,MACF,IARcngD,MAAK,KAAA,WAAA,IAAA,IAAf,EAUJ,GAGe,MACC,MAHP,MAAA,IAAA,IAAA,IAAP,E,Q,K,I,K,M,M,QC/RJ,IAAA,KAAA,QAE6B,IAAA,KAAV,OACI,IAAA,QACE,IAAA,QACA,IAAA,KAAV,IAIM2I,KAAY,KAAA,OAAA,IAAA,IAAnB,IAuHU,KAAiB,KAAA,KA9Dd,EACjB,UADiB,KAUL,KAVK,KA0CF,KA1CE,KAqDH,KArDG,KAAA,IAqEd,KArEc,KAAH,MA0EIC,MAAG,KAAA,OAAA,IAAA,IAAV,IACUA,MAAG,KAAA,OAAA,IAAA,IAAV,IACUA,MAAG,KAAA,OAAA,IAAA,IAAV,IACM,EAAA,KAAD,KAAA,UAAA,IAAA,IAAhB,IAC6B,IACrC,UACK,OAoDC,MAAsB,EA9C7B48C,GAAAA,IAAL,GACMC,MAAJ,MAGsB1iB,MAAa2iB,MAAD,KAAf,IAHnB,IACsBvmC,MAAWumC,MAAD,MAAb,IADnB,EAMJ,EAKA,IACmB,GAAA,IAEQC,IAAe,KACxCC,IAA0B,KAAC,KAAD,KAC1BC,IAA6B,KAAC,KAAD,KACAF,IAAe,KAE5C,IAAA,IAGO,IAAA,IAELG,IAAa,MAACT,IAAkB,MAAO,MAA1B,KAFR,EADLS,IAAa,MAACT,IAAkB,MAAO,MAA1B,KAOf,IACSU,IAA4B,MAAA,IAAnC,GACEA,IAAsB,MAAA,IAEpBN,IADF,IAEE17C,IAAqC,MAAA,IAAM07C,IAF7C,IAFKM,IAA4B,MAAA,IAAnC,KAOIC,MAAe,IAKrBJ,IAAwB,MAAA,IACxBC,IAA2B,MAAA,MAC7B,EA5BuCF,GAAAA,IAAmB,QAAA,KAAvB,EACOA,GAAAA,IAAsB,QAAA,KAA1B,EA7FhB,KAAA,IAQS,IAAH,MACJz9C,MAAO,KAAA,IAAC,QAAD,IAAA,IAaZ,KAAU,KAAA,KAFlB,EAAA,IAGG,KAHH,KAAP,EAX4B,IAC1B89C,GAAAA,MAAe,IACXC,GAAAA,IAAJ,GACEC,IAAU,KAACD,IAAD,KAEZC,IAAU,KAEaD,IAAAA,GAAQA,IAAI,KAAZA,MAAAA,IAAf,IAFG,KAAA,KAAA,IAAD,KAIVF,IAAuB,MAACG,IAAD,KACzB,EAKIH,GAAAA,IAAsB,MAACG,GAAAA,IAAD,OACxB,EASFF,GAAAA,MAAe,IACEG,IAAF,GAAA,IACfP,IAAsB,KAAA,KACtB,EAMoB,GAEpB56C,GAAAA,IAAW,KAAD,OAAD,MACTg7C,IAAe,IACfJ,IAAyB,KAAA,KACzBC,IAAyB,KAAA,KAC3B,EAWW,MAAA,MACX,E,Q,K,I,K,MC3IW,MAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAEU,IAAA,QACE,IAAA,KAAV,IA8BA,KAuIZ,OAGW,MAAa,EA3Kd,OAAAlnD,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAiCE,EAAA,KAAA,IAWZ8D,GAAAA,IAAA,MAAA,IAOD,KAPC,IAAA,IAAA,IASA,MAAA,IAED,KAFC,IATA,IAaA,MAAA,IAED,KAFC,IAbA,IAuBA,MAAA,IAYD,KAZC,IAvBA,IAqCA,MAAA,IAKD,KALC,IArCA,IAoEA,MAAA,IASD,KATC,IApEA,IA+FA,MAAA,IAED,KAFC,IA/FA,MAAA,MA4HA,EA/HD,MAAwB,MAAAC,GAAAA,IAAAm8C,GAAAA,MAAA,MACL,MACG,EAAQ,IAAR,OAAA,KAAD,IAAA,IAAH,MAClB,EAOA,GACuB,MAAA,IAAO,QAAA,OAC9B,EAEA,QAAuC,IACxB,KAAC,KAAD,OACf,EADwBj8C,GAAAA,IAAY,SAAA,KAAhB,EAGpB,QAAA,IAEyB,MACjB,KAAC,KAAD,KAIG,KAAC,KAAD,KALO,QAMlB,EALS,GAAK4C,GAAAA,IAAA,IAAA,MAEI,MAAa,OAAC,KAAD,KADjB,EAAA,KAAA,EADA,OAAA,EAE0Bs5C,GAAAA,IAAqB,QAAA,WAArBA,IAAJ,EAExB,GAAqB,MAAM,OAAX97C,IAAAA,MAA0B03C,IAA/B,EAavB,GAC8B,MAAA,IAAE,OAAvB,IAAP,EAMF,WACqC,MAAA,OAC1B,KAAT,SAC0B,MAAA,IACxB,GACM,OAAJ,OAAoC,MAApC,MAGW,GAAJ,OAAoC,MAApC,GAILj3C,GAAAA,SAGI/H,MAAc,WAAA,WADhB,IADA,OAAA,IADO,MAML,IAVC,KAEG,MAAA,IAFH,EADW,SAAA,KAmBxB,EANM,KAEuC,QAAJgjD,OAAAA,OAAjC,IAA4D,SAA5D,IAAA,IADO,MAET,EAYN,GACuB,MAAY,QAAhB,IACC,MAAY,IAEvB,MADP,GAEO,MAAM,OAFb,IAGM,MAAY,KAHlB,IAac,MAAZ,EARI,MAAgB,KAAA,IAMQ,MAAA,IAA5B,EAMJ,QAAA,IAA+B,IAKzB,MAAiB,KAAC,EAAQ,IAAR,OAAA,KAAD,KACA,MAAY,QAAhB,IACK,MAAY,IAAnB,IAIT,MAAA,IACC,KAAC,KAAD,KASC,MAAC,KAAD,OAMV,EATMK,GAAAA,MAAiB,MACjBj8C,IAAsB,MAAA,IAAtBA,GAA4BA,IAAiB,MAAA,IAA7CA,EACF,EACO,KAAA,MACL8U,QAAW,OAAD,MAIZ,EAHIuiB,GAAAA,IAA2DukB,GAAAA,IAAI,SAArD,IAAiE,SAAjE,IAAA,IAAA,MACV,E,W,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,MCnKG,MAAA,OAAAtnD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAKb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,IAae,KAAH,IAwJa,cAAH,IAqHZqmD,KAFgC,KAmEvC,KAjE2B,MAEA,MAEyB,EA9RrB,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAAA,OAAAnL,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAmBlC,SAGY,KAAV,GAAuC,OAAY,IAAzB,OAA1B,OAImD,KAE1B,KAiBJ,KAAN42C,GAAiByJ,GAAAA,IAGtB,QAAV,IAEiB,QAAV,IACmB,KADnB,EADmB,MAMhB,MAAV,IAEiB,KAAV,IACoB,KADpB,EADoB,MAD3B,oBAMO,KAAP,EAtCUC,GAAAA,MAAwC,KAAhD,EAsCK,GACLx7C,GAAAA,IAAAA,OACE,OAAA,QADO,MAKKy7C,IAAiBC,GAAAA,IAAR,MACfC,IAEI,OACCC,IAAD,IACVC,IAAW,IACA,IACXC,IACAC,IACAC,SARiB,IAAnB,EAaJ,wBAaE,QACE,cAEO,UAOT,QACE,cAEO,OAOT,IAIA,cAQA,MAEwBpnC,MAAjB,IAGKklB,IAAsBmiB,IAAvB,IAHJ,EACIniB,IADJ,EADI,GADX,KASe,KAGf,MAEyBllB,MAAlB,IAGcsnC,IAAVpiB,IAAAA,IAHJ,EACIA,IADJ,EADI,GAOX,EA3BE,IAGA,EAFE,EALF,EATE,EAVA,EAqDN,GACwBlwB,GAAAA,IAAAA,OAAc,OACpC,OAAgC,OAAhC,IAIkBC,KAAAA,UAEPA,UACAA,UACAA,OACAA,WAHD,IAKV,QAAA,OAJU,IAIV,IAAA,OAHU,IAGV,IAAA,IAFU,IAEV,QAAA,IAAA,EAVE,EAuBJ,KAAA,IAG0C,KACxC7J,GAAAA,IAAAA,KAAqB,QAAX67C,UAAD,MACoB,KAACM,IAAD,KAAlB,IACXC,IAAY,OAYoB,IAAS,MAACC,IAAD,KAAsB,KAAC,KAAD,KAA7C,IACC,KAAC,KAAD,KAQe,IAC1B,MAACA,IAAD,KAKF,KAAC,KAAD,KANc,IAeAC,IAAuB,IAAZ,KAAd,IAEV,KAAP,EA1BsE,IAAN,EAC5C,GAGP,MAACD,GAAAA,IAAD,KAA0B,OAAC,KAAD,OAGvC,EAFIE,GAAAA,OAAY,IAAQ,QAAC,GAAD,OACtB,EAUSC,GAAAA,IAAmBz6C,IAAA,EACrB+vC,GAAAA,MADqB,MAEXyK,OAAY,IADhB,EAAA,IAAA,EADe,OAAA,KAA1B,EAUG,KAAA,MACA,IAIEV,GAAAA,IAAW,IAAW,KAACQ,GAAAA,IAAkB,KAAnB,MAA7B,EACaI,GAAAA,IAAexhD,GAAAA,IAAC,GAAA,GAAA,IAAG,IAAC+oC,IAAD,KAApB,GACN0Y,OAAJ,GACQzhD,OAAAA,MAA0B/E,MAAU,WAAC0gC,IAAD,KAAV1gC,IAA1B+E,IAAQ/E,MAAU,KAAA,KAAlB+E,GADR,EAGO/C,QAAM,KAAb,EAKN,GACS,OAAA,IAAA,GAA6C,UAAA,KAApD,EAGF,sBACqB,IAAW,KAACmkD,GAAAA,IAAD,MACP,KAAvB,IACEr8C,IAAAA,KACiB,IAAW,KAACq8C,IAAD,MACF,IAAxB,IAA2C,IAA3C,IAAA,IADAM,IADO,MADqB,GAAT,KAAvB,IAMF,EAEA,SAE4B,KAAVjB,UAAhB,IACgB,OAAd,IADqC,GAAb,KAAVA,OAAhB,IAKOzgD,IAAP,EAlPa,GAAU,EA2QiB,EAAA,KAAA,IAAAwY,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAiBvCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAKA,MAAA,IAED,KAFC,IALA,IAcA,MAAA,IAED,KAFC,IAdA,IAoBA,MAAA,IAED,KAFC,IApBA,IAwBA,MAAA,IAED,KAFC,IAxBA,IA6BA,MAAA,IAED,KAFC,IA7BA,IAiCA,MAAA,IAED,KAFC,IAjCA,IAAA,MAkDA,EAvDD,MAA4EC,GAAAA,IAAA,KAAAw3C,GAAAA,MAAA,MAC1E/yC,IAAA,KAAA,QACY,MACA,MACUi6C,IAAmB,KAAtB,MAA+B,EAGpD,MACM,MAAqB,MAAA,KACzB7d,GAAAA,IAAA,KAAAprB,IAAA,KAAA+hC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAEA,GACkC,MAAmB,KAAA,IACnDt1C,GAAAA,IAAAA,OACE,OAAA,QADO,MAIiB,MAAA,KAA1B,EAMWs1C,GAAAA,IAAqB,KAAA,aAAA,IAAA,IAAhC,EAGF,GACM,MAAmB,MAAA,OACzB,EAEA,GACM,MAAsB,MAAA,KAC1B3W,GAAAA,IAAA,KAAAprB,IAAA,KAAA+hC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GACkB,KAAC2C,GAAAA,IAAAA,KAAoB,MAArB,KAAhB,EAGF,OAMoB,KAAQ,KAEa,MAAK,KAAQ,KAAb,KAE/B,KAAQ,MAAZ,GAAoC,KAAQ,KAA5C,MAEI,KAAQ,MAAZ,GAAqC,KAAQ,KAA7C,MAPG,EAAA,IAAA,IAAA,KAAA,SAAA,IAAP,E,W,K,I,K,MC3VS,MAAA,OAAAtkD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAIb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAEkD4hD,KAAT,KAqEtC,KArE2D,MAAA,EAFpB,KAAA,IAAAp0C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAED,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAMtCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAcA,MAAA,IAED,KAFC,IAdA,IA6BA,MAAA,IAED,KAFC,IA7BA,IA+CA,MAAA,IAED,KAFC,IA/CA,IAmDA,MAAA,IAED,KAFC,IAnDA,IAAA,MA+DA,EAlED,GAAcC,GAAAA,IAAA,KAAAk8C,GAAAA,MAAA,MACZz3C,IAAA,KAAA,KACiB,IAAH,MAAM,EAGtB,QACW,KAAT,KACiB,MACS,MAAxB,GAAA,GAEE01C,GAFF,IAAA,GAAA,IACoB,MAAA,KAClBA,IAAAA,KAAoB,MAAyB,MACxB,KAAA,IACC,KAAA,IAFuB,MAI/C,EAAA,EAAA,GAAA,EAEFtZ,GAAAA,IAAA,KAAAprB,IAAA,KAAAymC,GAAAA,IAAA,KAAA,SAAA,OAAA,KAAA,MACF,EAEA,MACU,MAAU,OAAlB,IACe,MAAA,IAEX,MAAe,KAAA,KACX,KAAR,GAEoB,MAAyB,MAAA,IAAzB,KAClB/B,GAAAA,IAAAA,KAAoB,MAAyB,MACxB,KAAA,IACC,KAAA,IAFuB,MAH/C,EAQF,EAEA,MACoB,MAAkB,KAAA,WACpC,IAIQ,KAAR,GAA4B,KAA5B,GACEA,GAAAA,IAAAA,KAAoB,MAA4B,MAC3B,KAAA,IACC,KAAA,IAF0B,MAK9C,MAAiB,SAAA,MACb,MAAU,OAAlB,IACe,MAAA,IADf,EAGF,IAbIhjD,MAAY,SAAA,OACZ,EAcJ,GACa,MAAX,EAGF,OACE0pC,GAAAA,IAAA,KAAAprB,IAAA,KAAAymC,GAAAA,IAAA,KAAA,SAAA,OAAA,QAAA,MACS,KAAT,GAC0B,MAAxB,GAAA,GAAA,IAAA,GAAA,IAAA,GAEW,KAAT,MACuB,MAAiB,KAAA,IAAjB,KAEzB,EAAA,EAAA,GAAA,EAEJ,E,aC5EW,MAAA,OAAArmD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAIb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAE0BskD,KAAoB,MAAvB,IAIV,IAIoB,KA2K9B,IAAA,MAAA,EA3K8B,EAAA,KAAA,IA+B9Bp6C,GAAAA,IAAA,KAAA,MAAA,IA3BD,KA2BC,IAAA,IAAA,IA3BkB,MAAA,IACnB,KADmB,IA2BlB,IAlBA,MAAA,IACD,KADC,IAkBA,IAjBmB,MAAA,IACpB,KADoB,IAiBnB,IAdA,MAAA,IACD,KADC,IAcA,IAbiC,MAAA,IAClC,KADkC,IAajC,IAZoC,MAAA,IACrC,KADqC,IAYpC,IATA,MAAA,IAWD,KAXC,IASA,IAWA,MAAA,IASD,KATC,IAXA,IA2BA,MAAA,IAQD,KARC,IA3BA,IAwCA,MAAA,IAOD,KAPC,IAxCA,IAoDA,MAAA,IAED,KAFC,IApDA,IAwDA,MAAA,IAED,KAFC,IAxDA,IAkFA,MAAA,IAED,KAFC,IAlFA,IAsFA,MAAA,IAED,KAFC,IAtFA,IA4FA,MAAA,IAED,KAFC,IA5FA,IAsGA,MAAA,IAED,KAFC,IAtGA,IA6HA,MAAA,IACD,KADC,IA7HA,IAkIA,MAAA,IACD,KADC,IAlIA,IAqIA,MAAA,IAED,KAFC,IArIA,IAyIA,MAAA,IACD,KADC,IAzIA,MAAA,MA4IA,EA9ID,GAAcC,GAAAA,IAAA,KAAAy3C,GAAAA,MAAA,MACM,EAAH,MACjB,EA3BA,EAAkB,EAClB,GACMpD,GAAAA,IAAAA,KAA+C,MAAA,IAAnD,GACyB,MAAA,IAEjB,KAAR,GAA2B,QAA3B,IACE8F,IAAAA,KAAoB,MAAqB,MAAK,MAAL,OACzB,MAFlB,EAIF,EACA,EAAmB,EACnB,GACwB,KAAA,IAAtB,EAEF,EAAiC,EACjC,EAAoC,EAE3B,IAAP,EAYF,GACW,KAAT,KACYjjD,MAAK,KAAA,WAAA,IAAA,IAAf,KAGkB,MACC,MAAA,IAArB,GAC0C,MAAA,IAD1C,EAGF,EASA,KACakD,MAAO0kD,GAAAA,IAAS,GAAA,GAAA,MAAV,KACb,SAAe,IACX,KAAR,GAC0C,MAAA,IAE1C,EASF,GACa,SAAX,IACQ,KAAR,GAAyC,MAAA,IAAzC,GAC0C,MAAA,IAD1C,EAGF,EAOA,GACoB,EAAH,MACP,KAAR,GAC0C,MAAA,IAD1C,EAGF,EAEA,EACWjpD,MAAW,QAAK,MAAL,KAAiB,KAA7B,GAAD,GAAP,EAGF,KAEQ,MADN,GAEO,MAFP,KAIE,EAGM,MAAR,KAC6C,MACH,MAAA,IAF1C,IAKAwmD,GAAAA,IAAmD,MAAoB,KAAA,IAApB,KAEjDlC,IAAAA,KAAoB,MAA+B,SAEjD,KAFiD,MADnB,QAUpC,EAPM,GACU,KAAS94C,GAAAA,IAAmB,KAAA,IAApC,IAGAA,IAAoC,MAAK,KAAL,OACtC,IAHI,EAOV,GACsB,SAAA,OACtB,EAEA,MACwB,MAAtB,QAAA,SAAA,GACM,MAAgB,IAAC,EAAA,IAAD,KADtB,IAGF,EAEA,GACW,MAAT,KACE,EAGE,MAAqC,KAAA,MACP,MAClCg7C,GAAAA,IAAkD,MAAoB,KAAA,IAApB,OACpD,EAEA,GACElC,GAAAA,IAAAA,KAA+C,MAAA,IAC/Cj4C,IAAAA,KACM,WADG,MAMH,QADS,IACOi4C,IAAAA,KAAuC,MAAA,IAErD,MAAR,IACkB,MACqB,MAAA,IAC7B,MAAR,GAC8B,MAAP,MAEvBA,IAAAA,KAAoB,MAAuB,MAAA,QACA,MAG7C,EAEF,EACYjjD,MAAK,KAAA,WAAA,IAAA,IAAf,EAIF,GACwB,KAAA,IAAtB,EAGF,GACa,MAAX,EAEF,MACsB,QACtB,E,W,K,I,K,MC3LW,MAAA,OAAArB,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAIb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,IAWa,IAQgCqmD,KAAT,KAqNjC,KArN8D,MAAA,EAnB/B,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAmBE,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAsCjCzE,IAAA,KAAA,MAAA,IAQD,KARC,IAAA,IAAA,IAWA,MAAA,IASD,KATC,IAXA,IAuBA,MAAA,IAQD,KARC,IAvBA,IAkCA,MAAA,IAQD,KARC,IAlCA,IA6CA,MAAA,IAED,KAFC,IA7CA,IAwDA,MAAA,IAOD,KAPC,IAxDA,IAyEA,MAAA,IASD,KATC,IAzEA,IA4FA,MAAA,IAWD,KAXC,IA5FA,IAiHA,MAAA,IAQD,KARC,IAjHA,IA6HA,MAAA,IAOD,KAPC,IA7HA,IAwIA,MAAA,IAOD,KAPC,IAxIA,IAoJA,MAAA,IAOD,KAPC,IApJA,IA6JA,MAAA,IAED,KAFC,IA7JA,IAmKA,MAAA,IAED,KAFC,IAnKA,IAyKA,MAAA,IAED,KAFC,IAzKA,IAAA,MA+KA,EAzMD,SAOEC,GAAAA,IAAA,KAAAs3C,GAAAA,MAAA,MACA7yC,IAAA,KAAA,KACmBs6C,GAAW,UACd,KAAZ,OAAJ,IAA+C,KAAZ,GAAnC,IAIE78C,IAAAA,KACO,KAAcm1C,IAAAA,KAAnB3gD,IAAAA,GAAyC,KAAc2gD,IAAAA,KAAnB3gD,IAApCA,IADO,MAKK,KAAR,MACQ,KAAR,MAVR,EACe2gD,IAAAA,KAAmB,KAAN,KAAA,OAAA,IAAA,IAApB,MACOA,KAAmB,KAAN,KAAA,OAAA,IAAA,IAApB,MAUU,EAAH,MACf,GAAoB,MAApB,GACmB,MAAA,IAClB,EASH,MACM,KAAW,MAAM,KAAN,KACX,KAAW,MAAM,KAAN,OACjB,EASA,MACM,KAAY,MAAO,KAAP,KACZ,KAAY,MAAO,KAAP,OAClB,EAQA,GACM,KAAgB,MAAA,IAChB,KAAgB,MAAA,MACtB,EAQA,GACM,KAAgB,MAAA,IAChB,KAAgB,MAAA,MACtB,EAEA,GAMW,KAAa,KAAA,IACb,KAAa,KAAA,IAFf,EAAA,IAAA,IAAP,EAWF,MAOM,KAAiB,MAAA,IACjB,KAAiB,MAAA,IACrB7tC,GAAoC,KAAA,MAAhB,KAApBA,EACF,EASA,MAOM,KAAgB,MAAA,IAChB,KAAgB,MAAA,IACpBA,GAAoC,KAAA,MAAhB,KAApBA,EACF,EAWA,QAAA,IAAuD,MAC1CpP,MAAO0kD,GAAAA,IAAS,GAAA,GAAA,MAAV,KACK,KAGlB,MACK,KAAc,KAAA,KACd,KAAc,KAAA,KAFD,EAAA,IAAA,IAAH,IAInB,EAPsB,GAAe,KACnCt1C,GAAAA,IAASjI,IAAe,KAAA,MAAhB,KACV,EAcF,MACM,KAAiB,MAAK,MAAW,IAAI,KAApB,KACjB,KAAiB,MAAK,MAAW,IAAI,KAApB,KACV,MAAX,MACF,EAOA,GACM,KAAqB,MAAA,IACrB,KAAqB,MAAA,IACP,EAAH,QACjB,EAOA,GAEc,KACD,KAFJ,EAAA,IAAA,IAAP,EAWF,GAC2B,KAAjB,EAAA,IAAD,IAAA,IAAwC,KAAjB,EAAA,IAAvB,IAAP,EAGF,GACM,KAAa,MAAA,KACb,KAAa,MAAA,KACjBs/B,GAAAA,IAAA,KAAAprB,IAAA,KAAA6hC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GACM,KAAgB,MAAA,KAChB,KAAgB,MAAA,KACpBzW,GAAAA,IAAA,KAAAprB,IAAA,KAAA6hC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,MACM,KAAe,MAAA,KACf,KAAe,MAAA,KACnBzW,GAAAA,IAAA,KAAAprB,IAAA,KAAA6hC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,E,c,I,K,I,K,MC9OW,MAAA,OAAAzhD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAMb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAoB4CmpD,KAAT,KAqFhC,KArFkD,MAAA,EApBjB,KAAA,IAAA37C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAoBD,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAmBhCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAgBA,MAAA,IAED,KAFC,IAhBA,IAqCA,MAAA,IAED,KAFC,IArCA,IA2DA,MAAA,IAED,KAFC,IA3DA,IAAA,MAkEA,EA1ED,mBAAgDC,GAAAA,IAAA,KAAA84C,GAAAA,MAAA,MAC9Cr0C,IAAA,KAAA,KAC2B,QAAT,OAAA,MACK,KAAT,MACU01C,IAAAA,KAA0C,MAAA,KAA7C,MACQ,MAAT,MACS,MAAT,IAA4B,MAAD,GAA3B,MACM,MAAT,OAAA,MAA0B,EAG7C,GASsB,MACJ,MACE,MACI,MALf,MAAA,IAAA,KAAA,IAAA,KAAA,KAAP,EASF,QAOe,MACE,MACA,SACD,SACF,QACM/gD,MAAQ,KAAA,IAAX,MACP,MAAR,GAIyB6lD,MAA0B,MAAc,KAAA,OAAnB,KAAxB,MAJtB,EAC6B,SAAA,KAD7B,EAMF,EAEA,KACc7lD,MAAQ,KAAA,IAGd,MACC,MAAsB,SAAR,IAAlB,IACMhB,MAAQ,MAAW,MAAR,IAAqC,MAAV0J,IAA7B,GAAA,IAAD,KAAZ,IADF,IADD,IAIY,MAAA,KAEV1J,MAAQ,MAAK,MAAJ,IAAD,eAAZ,IAKe,MACP,MAAR,GAEyB6mD,MAA0B,MAAc,KAAA,OAAnB,KAAxB,MAFtB,EAIF,EATyB,MAAC,IAAA,IAAD,OACrB,EAUJ,GACEpe,GAAAA,IAAA,KAAAprB,IAAA,KAAAqjC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,OACa,MACbrjD,IAA2B,MAAK,MAAL,KACN,MAAC,EAAA,IAAD,KACvB,E,aChHW,MAAA,OAAAI,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAKb,IAAA,KAAA,KAAA,IAa8B,IAKA,KAqD3B,IAAA,MAAA,EArD2B,EAAA,KAAA,IAAAkK,GAAAA,IAAA,KAAA,MAAA,IAM5B,KAN4B,IAAA,IAAA,IAYlB,MAAA,IACV,KADU,IAZkB,IAiB3B,MAAA,IACD,KADC,IAjB2B,IAsB3B,MAAA,IAED,KAFC,IAtB2B,IA4B3B,MAAA,IACD,KADC,IA5B2B,MAAA,MAqD3B,EArD2BC,GAAAA,IAAA,KAAAg/C,GAAAA,SAAA,MAAA,EAM5B,EAMS,EACT,GACU,MAAR,GACE7E,GAAAA,IAAAA,KAAoB,MAAkB,MAAK,MAAL,KADxC,EAGF,EACA,EAGYjjD,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,GACoB,QACN,MACZgoD,QAAc,KAAdA,EACF,EACA,MACwCC,GAAAA,QAAAA,UACZ,IAAA,IAC1BhF,IAAAA,KAAoB,MAA4B,MAAA,KAIA,MAAA,IACpB,MAAO,MAAP,KACRA,IAAAA,KAA2C,MAAA,IAA9C,MACfA,KAAoB,MAAuB,MACrC,MACwB,KAAA,IAGxB,MAAsB,KAAA,cALe,IAU3CA,IAAAA,KAAoB,MAA8B,SAAA,OAItD,EAPI,EACA,EACQ,EACRA,IAAAA,KAAoB,MAA8B,MAAA,KAGpD,E,qB,K,I,K,MC3ES,IAAA,KAAAtkD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAQb,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAEkC,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA4F,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,kC,SAFlC,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,IA2D6CmpD,KAAT,KA+RjC,KA/RmD,MAAA,EA3DpB,IAAA,KAAA,OAAA,cAAArjD,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,KAAA,IAAAyH,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA2DE,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAsFjCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IA4BA,MAAA,IAED,KAFC,IA5BA,IAqEA,MAAA,IAED,KAFC,IArEA,IA6EA,MAAA,IAuBD,KAvBC,IA7EA,IAiMA,MAAA,IAED,KAFC,IAjMA,IAAA,MAyMA,EAxQD,uCAAiDC,GAAAA,IAAA,KAAAw4C,GAAAA,MAAA,MAC/C/zC,IAAA,KAAA,KAEgC,UAAT,OAAA,MACiB,SAAT,OAAA,MACE,MAAT,OAAA,MACM,OAAT,OAAA,MACM,OAAT,OAAA,MACI,KAAT,MACO,QAAT,OAAA,MACa01C,IAAAA,KAA0C,MAAA,KAA7C,MACQ,MAAT,MACS,MAAT,IAA4B,MAAD,GAA3B,MACM,SAAT,OAAA,MAGT,MADR,OAEQ,MAFR,OAGQ,MAHR,OAeiB,MAAV,IAA6C,MAA7C,IAqBgBiF,IAA0C,MACvD,MADuD,OAEvD,MADc,OADyC,MAIjC,MAAf,MACa,MAAf,MACH,MA3BL,KAGLl9C,IAAAA,KACQ,MAAN8xC,IAAAA,GACQ,MAANA,IADFA,GAEQ,MAANA,IAFFA,GAGQ,MAANA,IAHFA,GAIQ,MAANA,IAJFA,IADO,MAQYoL,IAAmC,MAChD,MADgD,OAEhD,MADgB,OADgC,MAI1B,MAAf,MACa,MAAf,MACH,MAjBL,KAVLl9C,IAAAA,KACQ,MAAN8xC,IAAAA,GACQ,MAANA,IADFA,GAEQ,MAANA,IAFFA,GAGQ,MAANA,IAHFA,IADO,MAOe,MAAT,OAAA,MACO,MAAT,OAAA,MACM,MAAT,OAAA,MA+BZ9xC,IAAAA,KAAU,MAAAb,QAAD,MACTa,KAAU,MAAAb,QAAD,MACTa,KAAU,MAAAb,QAAD,MAAsD,EAGjE,GAe2B,MACQ,MACP,MACT,MACF,MACH,MACW,QAAN,IAA+B,MACjC,MACG,MACI,MAXf,MAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAP,EAeF,UAOe,SACM,MACM,MAAP,SAEJ,SACF,QACKjI,MAAQ,KAAA,IAAX,QACC,MAEkBo/C,GAAAA,IAA7B6G,IAAJ,GAC0D,MAAA,IACtB,MAAhB,MACgB,MAAhB,MAEU,MAAP,MACS,MAAhB,MAGF,KASN,iBAAR,KAGO,IAHP,EACkBhpC,MAAsB,QAAZ,MAAb,MADf,EAKF,EAbQ9U,GAAAA,IAAI,MACNA,IADF,GAGe,MAAA,IAHf,EAC6B,MAAC+9C,IAAD,KAD7B,EAKF,EAUF,GAEsB,MACA,MACJ,MAHT,EAAA,KAAA,KAAA,KAAP,EA4BF,OAMYlmD,MAAQ,KAAA,IACJ,SAAJ,IAAV,IACY,MAAJ,IAGqB,MAAV0I,IACf,YADc,IACH,IAAA,MAEO,MACA,MACA,MACE,MAAL,GAEG1J,MAAS,MAACi2C,IAAD,QAAb,IAALp6B,IACE7b,MAAS,MAACi2C,IAAD,KACAj2C,MAAS,SAAOmnD,IAAN,IAAD,KAAlBC,IACA,MAAgB,MAApB,IAIG,MACd,IAqBmBpnD,MAAQ,MAAC,GAAA,IAAD,KACV,MAAmConD,IAALC,IAAD,IAALC,IAAZC,IAAhB,IAEStrC,IAAkBA,IAAUmrC,IAA5BnrC,IAANorC,IAAwBprC,IAAxBorC,IAAZE,IAxBJ,KAEmBvnD,MAAQ,MAAC,GAAA,IAAA,IAAD,KAEnB,MAEMmnD,IAAgCnnD,MAAQ,MAACwnD,IAAD,KAAxCL,IAALE,IAAD,IAAA,IACKrnD,MAAQ,MAACwnD,IAAD,KAAbF,IADA,IADJC,IADA,IAOAJ,IAAAA,IAGInnD,MAAQ,MAACwnD,IAAD,KAAqBL,IAAAA,IAALE,IAAxBrnD,IACKA,MAAQ,MAACwnD,IAAD,KAAbF,IAEDtnD,MAAQ,MAACwnD,IAAD,KAAqBL,IAAAA,IAALE,IAAxBrnD,IACeA,MAAQ,MAACwnD,IAAD,KAAtBA,IAAAA,IADDxnD,IADHunD,IAFIvnD,IAAAA,IAHJmnD,IAAAA,IAgBU,MACI,MACA,MAEJ,MAAA,KACL,SAAT,KAEE,EAKM,QAAR,GAAmC,UAAnC,IACU,MAAsB,MAA9B,IAGkC,MAAfM,IAHnB,EACkC,MAAfA,IAKFznD,MAAQ,MAAA,KAAkB,MAA1BA,IAEX,UAAR,IAEIA,MAAQ,MAAK,MAAJ,IAAD,KAAkC,MAA1CA,IAGJ,GAAA,GAAA,GAYuB6mD,MAA0B,MAAc,KAAA,OAAnB,KAAxB,MACtB,EAZY,MAAR,IAE2B,MAAP,MACA,MACJ,MAAK,MAAL,KAGK,MAAC,EAAA,IAAD,OACrB,EAMJ,GACEpe,GAAAA,IAAA,KAAAprB,IAAA,KAAA+iC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,OACa,QACbliC,MAAiB,MAAL,KACZ7gB,IAA2B,MAAK,MAAL,KACN,MAAC,EAAA,IAAD,KACvB,E,W,K,I,K,I,K,I,K,I,K,MCtWW,MAAA,OAAAI,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAOb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAwB0BskD,KAAoB,MAAvB,IAES,UAAH,IAChB,IA6D8B+B,KAAT,KAkP/B,KAlP4D,MAAA,EAxFL,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA8B1D,KAGE,SAAA,OAII8+C,GAAAA,IAAW,KAAf,MAK4Ch0C,IAAAA,KAAc,KAI1D,OAAA,OAII,OAAJ,QAMO,cACcC,UACAA,UACAA,OACAA,IAEZ,KALW,IAKX,QAJW,IAIX,QAHW,IAGX,KAFW,IAEX,KAAP,EAVEg0C,IAAAA,MAAkB,KACpB,IAYF,EAXI,EAPF,EARA,IALA,EAkCJ,MAEIrpD,GACY,MAAZ,OAAA,IADAA,GAEY,MAAZ,OAAA,IAFAA,GAGY,MAAZ,OAAA,IAHAA,GAIY,MAAZ,OAAA,IALF,EASF,MAEIA,GACK,MAAc2gD,GAAAA,IAAAA,KAAnB3gD,IADAA,GAEK,MAAc2gD,GAAAA,IAAAA,KAAnB3gD,IAFAA,GAGK,MAAc2gD,GAAAA,IAAAA,KAAnB3gD,IAHAA,GAIK,MAAc2gD,GAAAA,IAAAA,KAAnB3gD,IALF,EASgC,EAAA,KAAA,IAAAif,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAoD/BzE,IAAA,KAAA,MAAA,IAMD,KANC,IAAA,IAAA,IA6CA,MAAA,IAOD,KAPC,IA7CA,IAyDA,MAAA,IAMD,KANC,IAzDA,IAoEA,MAAA,IAMD,KANC,IApEA,IA+EA,MAAA,IASD,KATC,IA/EA,IAoGA,MAAA,IAMD,KANC,IApGA,IAgHA,MAAA,IAKD,KALC,IAhHA,IA2HA,MAAA,IAOD,KAPC,IA3HA,IAwIA,MAAA,IAKD,KALC,IAxIA,IAmJA,MAAA,IAED,KAFC,IAnJA,IA2JA,MAAA,IAED,KAFC,IA3JA,IAmKA,MAAA,IAED,KAFC,IAnKA,IA2KA,MAAA,IAED,KAFC,IA3KA,IAmLA,MAAA,IAED,KAFC,IAnLA,IAAA,MA8LA,EAjOD,SAGEC,GAAAA,IAAA,KAAAu3C,GAAAA,MAAA,MACA9yC,IAAA,KAAA,KANE,EATM,QAiBNs6C,IAAWiB,IACTC,IAAmB,KAAvB,MAUIv0C,IAAY,KAFoC,IAECs0C,IACxBA,IACvBF,IAAW,WAAf,GAKkB,SAGLzI,IAAAA,KAAuB,MAAV,KAAA,OAAA,IAAA,IAApB,MACOA,IAAAA,KAAuB,MAAV,KAAA,OAAA,IAAA,IAApB,MACOA,IAAAA,KAAuB,MAAV,KAAA,OAAA,IAAA,IAApB,MACOA,IAAAA,KAAuB,MAAV,KAAA,OAAA,IAAA,IAApB,MAvBR,EAG4B,MAApB,MACoB,MAApB,MACoB,MAApB,MACoB,MAApB,MAmBJ,MAAJ,GAAA,GAAyC,MAAzC,GACmB,MAAA,IAClB,EAOH,GAEU,KAAR,GACuC,KAAA,IACrCgF,GAAAA,IAAyC,MAAmB,KAAA,IAAnB,KAIzC3wC,GAAAA,SAAY,OADoC,IACzBs0C,IACrBF,IAAW,KAAf,GAcU,QAAR,OACkB,QADlB,EAXI,MAAW,MAAU,MAAV,KACX,MAAW,MAAU,MAAV,KACX,MAAW,MAAU,MAAV,KACX,MAAW,MAAU,MAAV,KACP,QAAR,IACkB,QAYZ,KAAR,GACuC,KAAA,IACrC,GACEzD,IAA0C,MAElB,MAAA,IAFkB,MAK5CA,IAA2C,MAAmB,KAAA,IAAnB,KAE/C,EAOA,MACM,MAAY,MAAO,MAAP,KACZ,MAAY,MAAO,MAAP,KACZ,MAAY,MAAO,MAAP,KACZ,MAAY,MAAO,MAAP,OAClB,EAMA,GACM,MAAgB,MAAA,IAChB,MAAgB,MAAA,IAChB,MAAgB,MAAA,IAChB,MAAgB,MAAA,MACtB,EAMA,GACM,MAAgB,MAAA,IAChB,MAAgB,MAAA,IAChB,MAAgB,MAAA,IAChB,MAAgB,MAAA,MACtB,EASA,QAAA,IAAqD,MACxCjiD,MAAO0kD,GAAAA,IAAS,GAAA,GAAA,MAAV,KACK,KAGlB,MACK,MAAc,KAAA,KACd,MAAc,KAAA,KACd,MAAc,KAAA,KACd,MAAc,KAAA,KAJD,EAAA,KAAA,KAAA,KAAA,KAAH,IAMnB,EATsB,GAAe,KACnCt1C,GAAAA,IAASjI,IAAe,KAAA,MAAhB,KACV,EAcF,MACM,MAAiB,MAAK,MAAW,IAAI,MAApB,KACjB,MAAiB,MAAK,MAAW,IAAI,MAApB,KACjB,MAAiB,MAAK,MAAW,IAAI,MAApB,KACjB,MAAiB,MAAK,MAAW,IAAI,MAApB,KACV,MAAX,MACF,EAKA,GACM,MAAqB,MAAA,IACrB,MAAqB,MAAA,IACrB,MAAqB,MAAA,IACrB,MAAqB,MAAA,IACP,EAAH,QACjB,EAOA,MACM,MAAgB,MAAA,IAChB,MAAgB,MAAA,IAChB,MAAgB,MAAA,IAChB,MAAgB,MAAA,IACpBiI,GAAoC,KAAA,MAAhB,KAApBA,EACF,EAKA,MACM,MAAiB,MAAA,IACjB,MAAiB,MAAA,IACjB,MAAiB,MAAA,IACjB,MAAiB,MAAA,IACrBA,GAAoC,KAAA,MAAhB,KAApBA,EACF,EAEA,GACU,QAAR,IAGqB,MAAa,KAAA,QAAhC,IAA2C,MAAa,KAAA,QAAxD,IAAA,IAAmE,MAAa,KAAA,IAAhF,IAAA,IAA2F,MAAa,KAAA,IAAxG,IAAA,QAAA,IAAA,EAFW,MAAX,EAMJ,GACM,MAAa,MAAA,KACb,MAAa,MAAA,KACb,MAAa,MAAA,KACb,MAAa,MAAA,KACjBq3B,GAAAA,IAAA,KAAAprB,IAAA,KAAA8hC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GACM,MAAgB,MAAA,KAChB,MAAgB,MAAA,KAChB,MAAgB,MAAA,KAChB,MAAgB,MAAA,KACpB1W,GAAAA,IAAA,KAAAprB,IAAA,KAAA8hC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,MACM,MAAe,MAAA,KACf,MAAe,MAAA,KACf,MAAe,MAAA,KACf,MAAe,MAAA,KACnB1W,GAAAA,IAAA,KAAAprB,IAAA,KAAA8hC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAEA,GAGW,MAAiB,KAAA,IACjB,MAAiB,KAAA,IACjB,MAAiB,KAAA,IACjB,MAAiB,KAAA,IACP,MANZ,MAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAP,E,K,K,I,K,MC7US1hD,MAAA,KAAA,IAAA,QAAA,O,KAAA,M,KAAA,QAuFZ,EA/ED,MACUqqD,cAAD,OAAA,IAAP,EAGF,MACUA,OAAD,OAAA,IAAP,EAQaC,GAAAA,SAAyB,KAC3BC,OAAuB,KAF3B,EAAA,KAAA,KAAP,EAMK,EAAA,KAAA,kBA+CaC,WAAD,iBACA,UACGC,IAAD,oBACgB,UAZjC,IAEO,OAAA,IAxCJ,KA2CiB,OA3CjB,KAyCiB,OAzCjB,KAuCiB,QAtBO,IAAQjsC,IAjBhC,KAiBwB,cAAD,OAyCf8rC,GAAAA,IAAyB,KAC3BC,IAAuB,KAF3B,EAAA,KAAA,KAAP,EArDA,KACU1pD,OAAuB6pD,IAAxB,IAAP,EAGF,MACsB9e,OAALjuB,IAARklC,IAAP,EAGF,MACSrkC,OAAW,OAAD,IAAVA,IAAP,EAOF,KACkBjc,MAAQ,QAAA,gBAAjB,IAAkCA,MAAQ,QAAA,gBAAhB,cAAyB,IAAnD,IAAA,cAAA,IAAP,EAGF,KACoBA,MAAQ,QAAA,gBAAnB,IAAoCA,MAAQ,QAAA,gBAAhB,cAAyB,IAArD,IAAA,IAAA,IAAP,EAGF,KAEiBA,MAAQ,QAAA,gBAArB,IACWA,MAAQ,QAAA,gBAAnB,cACA,IAFA,IAAA,cAAA,IADF,E,c,I,I,I,K,I,K,I,K,MCvDS,MAAA,OAAAvC,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OASb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,KAsC6CmpD,KAAT,KA+GjC,KA/GmD,MAAA,EAtClB,KAAA,IAAA37C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA+B7Bw/C,GAAAA,IAAL,GACiB1hD,IAAOC,OAAA,MAAA,KAAa,KACV,MAAO,MAAP,KAAf,IAELyhD,IAAP,EAGkC,EAAA,KAAA,IAAA7qC,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAuBjCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAiBA,MAAA,IAED,KAFC,IAjBA,IAuDA,MAAA,IAED,KAFC,IAvDA,IAgFA,MAAA,IAED,KAFC,IAhFA,IAAA,MAwFA,EAlGD,eAAiDC,GAAAA,IAAA,KAAA44C,GAAAA,MAAA,MAC/Cn0C,IAAA,KAAA,KACsB,KAAT,MACQ,OAAT,IAAoBg8C,IAAS,IAA7B,MACW,KAAT,OAAA,MACM,QAAT,OAAA,MACe,MAAT,OAAA,MACOtG,IAAAA,KAA0C,MAAA,KAA7C,MACQ,MAAT,MACS,MAAT,IAA4B,MAAD,GAA3B,MAAkD,EAGxE,GAEiB,MACG/hD,MAAU,KAAK,gBAAJ,IAAD,OAC5B,IACa,KAAa,MAACwN,IAAD,KAAb,KAD+B,GAA5C,IAGW,KAAa,SAAA,KAAb,KAII,MACG,MACI,MALf,MAAA,IAAA,KAAA,IAAA,KAAA,KAAP,EASF,OAOe,SACE,SACD,SACF,MAEE,KAmBN,iBAAR,KAGO,IAHP,IACkByQ,MAAsB,QAAZ,MAAb,MADf,EAKF,EApBQ9U,GAAAA,IAAI,QAAR,IAA6BA,IAAI,MAAjC,GACEA,IAAc,MAAK,MAAL,KACO,MAAC,IAAA,IAAD,KAFvB,EAIEA,MAAkBnI,MAAQ,KAAA,IAAX,MACP,MACNmI,IADF,GAGyB09C,MAEjB,MAAc,KAAA,OAFwB,KAAxB,MAHtB,EAC6B,MAACK,IAAD,KAD7B,EASJ,EAQF,KACclmD,MAAQ,KAAA,IACL,MAAkB,MAAtB,IAAX,IAYc,MACR,MACU,MAAY,MAAV0I,IAA6B,MAA9B,IAAD,KACL,MAAgB,MAApB,IADH,IADF,IADY,KAKN,MAAR,GAEyBm9C,MAA0B,MAAc,KAAA,OAAnB,KAAxB,MAFtB,EAIF,EApBY,QAAR,IAGgB,MACR,MAA0B,SAAA,KAAW,MAAgB,MAApB,IAAnB,IAAlB,IADY,KAHhB,EACgB,MAAK,MAAL,KAMK,MAAC,IAAA,IAAD,OACrB,EAcJ,GACEpe,GAAAA,IAAA,KAAAprB,IAAA,KAAAmjC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,OACa,QACbtiC,MAAiB,MAAL,KACZ7gB,IAA2B,MAAK,MAAL,KACN,MAAC,EAAA,IAAD,KACvB,E,Q,O,MChKWI,MAAA,KAAA,IAAA,QAAA,SAAA,MAiDE,EAIR,KAJQ,KAWR,KAXQ,KAqBP,KArBO,KA+BT,KA/BS,KA4CT,KA5CS,KAsDR,KAtDQ,KAgET,KAhES,KAyEV,KAzEU,KAkFP,KAlFO,KA2FV,KA3FU,KAyGN,KAzGM,KAoHT,KApHS,KA6HP,KA7HO,KAuJP,KAvJO,KAoKX,KApKW,KA2KV,KA3KU,KAoLR,KApLQ,KAAH,IA8LS,MAAA,EA1Ld,QACI2d,OAAP,EAMG,QACIA,OAAP,EASI,GACJ,EAUKktC,GAAAA,IAAL,GACSzJ,IAAa,8BAAA,IAAhB,IAECyJ,SAAI,KAAX,EASE,GACKrsC,IAAP,EASG,GACIA,IAAAA,IAAP,EASE,KAAA,IACK,KAAP,EAAO,EAAejc,MAAQ,KAAIob,GAAAA,OAAJ,MAAb,EAQhB,EACUpb,MAAQ,MAAMA,MAAI,SAARic,OAAAA,IAAF,QAAZ,IAAP,EAQI,KACOjc,MAAS,MAAKic,OAAJ,IAAD,KAAb,IAAP,EAQC,EACMjc,MAAQ,WAAUic,UAAN,IAAJ,MAAf,EAaK,SAAmB,QAAA7W,IAAA,OAAAA,IAAA,IAAAA,MACDpF,MAAI,MAAjBioD,IAAH,IACA,KAAP,EAAO,KAASjoD,MAAQ,KAACA,MAAQ,MAAMA,MAAI,MAARic,OAAAA,IAAF,QAAT,MAAmCjc,MAAQ,MAAKyU,GAAAA,IAAJwH,IAAD,KAAnDjc,OAAJ,IAAJ,EASN,gBAAU,QAAAoF,IAAA,OAAAA,IAAA,IAAA,IACL,KAAP,EAAO,GAAK6W,IAAUssC,GAAAA,OAAAA,IAAD,IAAA,IAATtsC,IAAJ,EAQJ,aACJ,iBAIA,cAKA,cAKWA,cACJ,IAAA,cAAA,IAAP,YALaA,cACJ,IAAA,cAAA,IAAP,YANWA,cACJ,IAAA,cAAA,IAAP,YALO,IAAA,IAAP,EA8BcvV,GAAAA,IAAOC,MAAA,MAAA,KAAY,mBACrB,IAAd,EAMA,GACA,EAMC,KAAA,IACM,KAAP,EAAgBi/C,GAAAA,UAAO,MAAD,KAAV,IAAJ,EAQL,KAAA,IACI,KAAP,EAAO,aACL,IAGWA,GAAAA,OAAQ,SAAD,IAAD,KAANA,IAAJ,IAAP,EAFSA,GAAAA,OAAO3pC,MAAD,KAAN2pC,IAAP,E,K,K,I,K,I,K,I,K,I,K,I,K,I,K,MClOKnoD,MAAA,KAAA,IAAA,QAAA,O,KAAA,SAGU,cACD,cACK,OACK,OAEV,cACD,IAES,MAAA,OAAA,IAAH,MAwI1B,EAtID,MACe,OAAY,OAAlB,IAAA,IAAP,EAEF,MACS,UAAY,IAAZ,IAAP,EAEF,MACS,IAAP,EAIF,SACW8d,GAAAA,MAAC,MAADA,IAAmBX,IAAC,MAApBW,IAAD,IAAwCQ,IAAC,KAAzC,IAAD,IAAP,EAIF,SACeR,GAAAA,MAAC,SAAP,IAAA,IAAA,IAAoCX,IAAC,SAAP,IAAA,IAAyBmB,IAAC,KAAxD,IAAA,IAAP,EAGF,wBAsBUysC,KATWC,IAAD,IAALC,IACAC,IAAU,OAAVA,OACX,UAMA3oD,MAAQ,MAAA,KAAa4oD,IATvB,IAUE,GAAMJ,OAVR,IAYA,EAGF,gBAOsBK,GAAAA,SAApB,IACuBC,IAAQ,UAC7B,IAGiBH,IAAU,OAAVA,IACNI,IAAJ,IAN8B,GAAnBF,OAApB,IAQA,EALI,EAQS,kBAMb,OAAA,IAAA,IAAA,MACY/pD,MAAK,KAAA,WAAA,IAAA,IAAf,EAImBkqD,GAAAA,IAAAA,KAEb/pD,MAAMgqD,IAAD,KAAA,OAAA,IAAA,IAFQD,IACbE,MAAaD,IAAD,KAAA,OAAA,IAAA,IAEpB,IAAA,IACsBA,MAApB,IACoBN,IAAeQ,IAAJpkD,IAAD,OAAb,IADqB,GAAlBkkD,IAApB,wBAfW,SAwDN,KAAP,EApCA,WAOoCG,GAAAA,IAAY,IAG3BD,aALnB,IAKmBA,IAAJ,IAFb,SAHF,IAEkCC,IAAY,gBAF9C,IAOA,GAIQA,IAAY,IAAjBC,IACaC,IAAD,IAAkC,IAA9CF,IACsCD,IAFvC,IAEgCI,IAAhBC,IAEGV,IAAoBW,IAAKC,MAAjB,OACTC,IAApB,IAEO,IAGEC,IAGWT,IAAhBK,IACAC,IACAC,YALoB,IAAtB,EAFA,EAFOG,IAAoCJ,IAAKC,YAArB,IAA3B,EAcG,GACDD,GAAAA,IAAQK,IAAZ,IAAmBJ,IAAQK,IAA3B,MAIA,OAGA,IAGOpB,GAAAA,IAAWqB,MAAQ,KAAKF,IAAKC,IAAnB,OAAjB,EAFE,EAHA,EAJA,E,W,K,I,K,K,I,K,I,OC9IO,MAAA,OAAAtsD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAEb,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QAA+B,IAAA,KA6PmC,MAAA,MAHjE,OAAA,4CA1P8B,YAAA,gB,S,SA8PN,MAAA,EA9PM,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAAA,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAoB/B,KAGEkB,GAAAA,IAAAA,KACE,OAAA,IAAA,GACY,KAATmgD,GAAgC,KAAU,MAA1CA,GADH,cADO,MAOuBnmD,IAAK,KAAd,KAiNpB,KAjNoB,IAoNA,MAAC,KAAD,KAAvB,EApNuB,EAAA,KAAA,IAAAyZ,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAoJnBzE,IAAA,KAAA,MAAA,IA1IF,KA0IE,IAAA,IAAA,IA5HD,MAAA,IAED,KAFC,IA4HC,IAvHD,MAAA,IA0FD,KA1FC,IAuHC,IARD,MAAA,IAUD,KAVC,IAQC,IAqBD,MAAA,IAED,KAFC,IArBC,IA0BD,MAAA,IAED,KAFC,IA1BC,IAqCD,MAAA,IAED,KAFC,IArCC,IA0CD,MAAA,IAED,KAFC,IA1CC,IAqDD,MAAA,IAED,KAFC,IArDC,IAAA,MA6DD,EAjNoB,SAAAC,GAAAA,IAAA,KAAAsiD,GAAAA,IAAA,MAAA,KAAAjrD,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,QAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAAA,MAEc,MAAiBpD,IAGjB,IAApB,MAAsBA,IAGHkhD,IAAuB,GAAA,GAAA,QAAvBA,IAAd,MAAuClhD,IAuB/C,KAAH,MAmCRA,IAEgB,KAAH,MAMbA,IAEqB,KAAH,MAMlBA,IAQwB,KAAH,MA2BrBA,IAyBwDmhD,IAAAA,KAAiB,EACvD,KADuD,KAE3D,KAF2D,KAAD,KAAzD,MAMdnhD,IAAA,EA/GIA,GAAAA,IAAA,OAAJ,OAKEA,IAAA,KAAe,QAAf,IAAA,OAA0C,IAA1C,KAA0C,GAA1C,IAAA,GAUCA,IAAA,KAAe,MAAfA,IAAAA,GACCA,IAAA,KAAkC,MAAA,IAAlCA,IADDA,GAGCA,IAAA,KAAkC,MAAA,IAAE,QAApC,IAAA,OAA+D,IAA/D,KAA+D,GAA/D,IAHDA,GAVD,MAeCA,IAAA,KAAe,MAAfA,IAAAA,GACCA,IAAA,KAAkC,MAAA,IAAlCA,IADDA,GAECA,IAAA,KAAkC,MAAA,IAAE,MAApCA,IAFDA,GAGCA,IAAA,KAAkC,MAAA,IAAqB,MAAA,IAAvDA,IAHDA,GAICA,IAAA,KAAkC,MAAA,IAAqB,MAAA,IAAE,QAAzD,IAAA,OAGC,IAHD,KAGC,GAHD,IAJDA,GAjBH,IAFE,EA+BEA,GAAAA,IAAc,MAAA,IAAlB,GACE84C,GAAAA,IAAAA,KAAoB,MAA4B,MAC9C94C,IAAA,MAD8C,KADlD,EAKF,EAGMA,GAAAA,IAAc,MAAA,IAAlB,GACE84C,GAAAA,IAAAA,KAAoB,MAA8B,MAChD94C,IAAA,MADgD,KADpD,EAKF,EASMA,GAAAA,IAAA,OAAJ,OAUSA,IAAA,KAAe,MAAtB,OAHK,IAKLA,IAAc,MAAA,IALT,GAQKA,IAAA,MAAmB,KAAxB,GACLA,IAAA,KAA8B,MAC5BA,IAAA,MAAsC,MAAA,IADV,KADzB,IAKKnK,MAAK,KAAA,WAAA,IAAA,IAAf,EANAmK,IAAgB,MAAA,IAPX,EADLA,MAAwC,MAN1C,EA0BF,EA0ByBA,GAAAA,IAAA,KAAU,MAAhB,EAEfA,GAAAA,IAAsB,KAAH,MACnBA,OAAe,QACjB,EAzIF,OAG6B,OAAJ,IAAA,MAAA,GAEf,KAFe,EACf,KAA6B,MAAA,IACjB,KAEE,KAAtB,gBAAA,SAAA,GAA4B,KAA5B,UAOF,EATsB,OAGLE,GAAAA,IAAI,KAAM,IACHq2C,GAAAA,IAAAA,MAAhB6K,IAAJ,aAAyC,aAAzC,KACe,MAACC,IAAD,MACbnhD,IAAI,MAAqB,KAAC,KAAD,KAE7B,EAFoCkhD,GAAAA,IAAa,MAACC,GAAAA,IAAgBzkD,IAAjB,MAAnB,EAKhC,GACM,MAAwB,OAAC,KAAD,KACL,IAAH,QACtB,EAF+B,KAAgB,IAAV,EA4FrC,GAC+B,MAEH0kD,GAAAA,IAAAA,KAEpB,MAFiC,KAAA,UAAA,IAAA,IAApB,MAIf,MAAwB,MAAA,IAU5B,GACyC,MAAA,IACd,MAAA,IAF3B,EAIF,EAUA,GAC4B,MAA0B,KAAA,IAA9B,GAAoC,EAEd,OAAhCC,IAAG,EAAYtb,GAAAA,IAAA,KAAiBC,IAAjB,MAErB,KAAM,MAAV,GAAoD,EAAE,KAD7Bsb,IAAG,EAAoBvb,IAAA,KAAAwb,IAAA,MAEjC7+C,IAAA,EAAA,MAAA,MAKfgoC,IAAA,KAACoW,GAAAA,IAAS,EAAA,MAAA,MAKC,MAHQ,IAAA,KAAA,IAAA,IAAA,EAFT,OAAV,MADF,EAWF,GACqB,MAAA,IACF,MAAK,KAAL,OACnB,EAEA,GACU,MAAR,KAC0C,MACb,MAAA,IAGzB,MAA6B,MAAK,KAAL,KACT,MAAA,IACA,MAAA,MAC1B,EAEA,GACqB,MAAA,IACF,SAAA,OACnB,EAEA,GACU,KAAoB,MAA5B,IACM,MAA6B,MAAK,KAAL,KAE3B,KAAoB,MAA5B,IAAiE,QAAjE,IAC0B,MAAA,IACA,MAAA,IAEF,MAAA,MAC1B,EAEA,GACM,MAAJ,GAA2B,MAAwB,MAAA,IAC3B,MAAA,IACA,MAAA,MACT,MACI,QACrB,EAGsB,GAEpBpW,GAAAA,IAAA,KAACqW,GAAAA,IAAiBr+C,MAAA,KAAA,QAEX4hB,IAAqB,EAAA,QAFV,MAAlB,MADF,E,E,QChMU,QAAoB,EApBlC,KACiB,MAAA,IACJ,MAAA,IAEJ,KAAP,EAAO,GACgBk9B,GAAAA,MAAe,IAEpCC,IAAW,KAGP,OAAJ,QAGO,MAAA,IAEe,MAFf,EADO,KAKhB,E,e,K,I,M,K,I,Q,O,K,M,K,WCzDF,OAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAvnD,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAqC9B,EArC8B,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAezBqnD,GAAAA,MAAJ,OAWQ,IACV,EAHI,EASEA,GAAAA,MAAJ,MACU,IAEHA,IAAP,E,W,K,I,K,I,K,I,K,MCpCW,MAAA,OAAAptD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAIb,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAE2C4hD,KAAT,KAsJ/B,KAtJoD,MAAA,EAFrB,OAAA5hD,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAEA,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAe/BzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAgBA,MAAA,IAED,KAFC,IAhBA,IA2BA,MAAA,IAED,KAFC,IA3BA,IAoCA,MAAA,IAED,KAFC,IApCA,IAiDA,MAAA,IAED,KAFC,IAjDA,IAqDA,MAAA,IAED,KAFC,IArDA,IA0EA,MAAA,IAED,KAFC,IA1EA,IAoFA,MAAA,IAED,KAFC,IApFA,IAiGA,MAAA,IAED,KAFC,IAjGA,IA8GA,MAAA,IAED,KAFC,IA9GA,IAwHA,MAAA,IAED,KAFC,IAxHA,IAAA,MAuIA,EAjJD,MAAiDC,GAAAA,IAAA,KAAA2iD,GAAAA,MAAA,MAC/Cl+C,IAAA,KAAA,KACS,QAAT,GACOR,IAAA,EAAA,MAEQi/C,IAAAA,KAAmB,KAAN,KAAA,OAAA,IAAA,IADhB,EAAA,IAAA,EADL,UAKI,SACG,MAAY,EAG5B,GAC4D,EACpC,MAIQtL,GAJ9B,QAAA,SAAA,GACoB,MAAO,IACJH,IAAAA,KAAjB/gD,IAAJ,GAE4BkhD,IAAAA,MAAjBlhD,IAAJ,GAGK,IAHL,EAC0B,MAAA,IAArB,IADL,EADwB,KAAA,IAAnB,IADZ,EASF,EAGF,GACiC,EACT,MAEC+gD,GAFvB,QAAA,SAAA,GACoB,MAAO,IACJA,IAAAA,KAAjB/gD,IAAJ,GACuC,MAAA,IAA3B,IADZ,EAIF,EAGF,GACwB,MAEC+gD,GAFvB,QAAA,SAAA,GACoB,MAAO,IACJA,IAAAA,KAAjB/gD,IAAJ,GACkB,MAAA,KADlB,IAIJ,EAEA,GACU,KAAR,GAA2B,MAA3B,GAC+B,MAAA,IAET,MAEC+gD,GAFvB,QAAA,SAAA,GACoB,MAAO,IACJA,IAAAA,KAAjB/gD,IAAJ,GACqB,MAAA,KADrB,EAIFmqC,IAAA,KAAAprB,IAAA,KAAAktC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GACgB,MAAA,MAChB,EAEA,MACW,KAAT,QACiB,MACO,MAEClL,GAFvB,QAAA,SAAA,GACoB,MAAO,IACJA,IAAAA,KAAjB/gD,IAAJ,GACoB,MAAA,KADpB,EAQFmqC,IAAA,KAAAprB,IAAA,KAAAktC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MAEQ,MAAR,GAC4B,MAAA,IAD5B,EAIJ,EAEA,MACU,MAAR,IAGkB,MACV,KAAR,GAC4B,MAAA,IAD5B,EAGF,IANI,EAQJ,GACEzgD,GAAAA,IAAAA,KAAc,WAAL,MACsBxF,IAAAA,KAAmB,MAAL,KAC7CwF,OACEihD,QADO,MAIThJ,IAAAA,KAAoB,MAA8B,MAC7B,KAAA,IAD6B,MAIpD,EAEA,GACEj4C,GAAAA,IAAAA,KAAc,WAAL,MACsBxF,IAAAA,KAAmB,MAAL,KAC7CwF,OACEihD,QADO,MAIThJ,IAAAA,KAAoB,MAAmC,MAClC,KAAA,IADkC,MAIzD,EAEA,GAKU,KAAR,GACEA,GAAAA,IAAAA,KAAoB,MAAyB,MAAoB,KAAA,IAApB,KAD/C,EAGF,EAEA,GAC0C,EACd,MAEH1C,GAFvB,QAAA,SAAA,GACoB,MAAO,IACJA,IAAAA,KAAjB/gD,IAAJ,GACoB,MAAyB,MAAA,IAAzB,KACyB,KAAA,IAAvB,IAFtB,EAKK,MAAA,IAAA,IAAP,E,W,K,I,K,I,K,I,K,MC7JS,MAAA,OAAAb,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAIb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAE2CqmD,KAAT,KAoG/B,KApG4D,MAAA,EAFL,OAAArmD,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAExB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAa/BzE,IAAA,KAAA,MAAA,IAGD,KAHC,IAAA,IAAA,IAiBA,MAAA,IAED,KAFC,IAjBA,IAqBA,MAAA,IAGD,KAHC,IArBA,IAoCA,MAAA,IAED,KAFC,IApCA,IAwCA,MAAA,IAED,KAFC,IAxCA,IAiDA,MAAA,IAED,KAFC,IAjDA,IA2DA,MAAA,IAED,KAFC,IA3DA,IAqEA,MAAA,IAED,KAFC,IArEA,IAAA,MAuFA,EAjGD,GAAwBC,GAAAA,IAAA,KAAAkjD,GAAAA,MAAA,MACtBz+C,IAAA,KAAA,KACQ4Q,IAAAA,QAAY,KAAZ,GAAwB,EACvB,QAAT,GACOpR,IAAA,EAAA,MAEYm/C,IAAAA,KAAuB,KAAN,KAAA,OAAA,IAAA,IADxB,EAAA,IAAA,EADL,UAKI,MAAS,EAItB,YACgD,EAC9C,GAEuB3L,GAFvB,QAAA,SAAA,GACqB,IACEA,IAAAA,KAAjB/gD,IAAJ,GAEO,GAAcW,MAAa,KAAA,KAA3B,GAAsC,GAAtC,IAE0C,MAAA,KAA9B,IAFZ,EAIY,IAJZ,EAD+B,KAAA,IAAnB,IADnB,EASF,EAGF,GACoC,MAAK,MAAL,KAAlC,EAIF,YACgD,EAC9C,GAEuBogD,GAFvB,QAAA,SAAA,GACqB,IACEA,IAAAA,KAAjB/gD,IAAJ,GAEO,GAAcW,MAAa,KAAA,KAA3B,GAAsC,GAAtC,IAEkD,MAAA,KAAtC,IAFZ,EADuC,MAAA,IAA3B,IADnB,EAOF,EAGF,GAC4C,MAAK,MAAL,KAA1C,EAGF,GACwB,MAECogD,GAFvB,QAAA,SAAA,GACoB,MAAO,IACJA,IAAAA,KAAjB/gD,IAAJ,GACkB,MAAA,KADlB,IAIJ,EAEA,GACwB,MAEC+gD,GAFvB,QAAA,SAAA,GACoB,MAAO,IACJA,IAAAA,KAAjB/gD,IAAJ,GACqB,MAAA,KADrB,EAIFmqC,IAAA,KAAAprB,IAAA,KAAAytC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,MACwB,MAECzL,GAFvB,QAAA,SAAA,GACoB,MAAO,IACJA,IAAAA,KAAjB/gD,IAAJ,GACoB,MAAA,KADpB,EAIFmqC,IAAA,KAAAprB,IAAA,KAAAytC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAEA,GAC2C,EACd,MACYzL,GADvC,QAAA,SAAA,GACU,MAAO,IAAsBA,IAAAA,KAAjC,IAAJ,GACoB,MAAO,IACP,MAAyB,MAAA,IAAzB,KAC0B,KAAA,IAAvB,IAHvB,EAQF0C,IAAAA,KAAmC,MAAA,KAC5B,MAAA,IAAA,IAAP,E,W,K,I,K,MC1GS,MAAA,OAAAtkD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAIb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAE+CqmD,KAAT,KA8GnC,KA9GgE,MAAA,EAFT,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAEpB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAMnCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAYA,MAAA,IAED,KAFC,IAZA,IAgBA,MAAA,IAED,KAFC,IAhBA,IAoBA,MAAA,IAED,KAFC,IApBA,IA+BA,MAAA,IAED,KAFC,IA/BA,IA2CA,MAAA,IAED,KAFC,IA3CA,IAwEA,MAAA,IAED,KAFC,IAxEA,IAAA,MAwGA,EA3GD,GAAgDC,GAAAA,IAAA,KAAAojD,GAAAA,MAAA,MAC9C3+C,IAAA,KAAA,QACgB,MAAc,EAGhC,QAAA,IACM,MAAoB,KAAC,KAAD,KAQxBo8B,GAAAA,IAAA,KAAAprB,IAAA,KAAA2tC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAT2B,GACvB,GAGuBlJ,GADAzC,GAFvB,QAAA,SAAA,GACyB,IACFA,IAAAA,KAAjB/gD,IAAJ,GACoB,MAACwjD,IAAD,KADpB,IAIJ,EAIF,GACkB,QAAC,KAAD,KAAhB,EAAiB,GAAuC,KAAA,IAA3B,EAG/B,GACkB,QAAC,KAAD,KAAhB,EAAiB,GAA+C,MAAA,IAAnC,EAG/B,KAAiB,IACX,MAAoB,KAAC,KAAD,OAQ1B,EAR2B,GACvB,GAGqB34C,GADEk2C,GAFvB,QAAA,SAAA,GACyB,IACFA,IAAAA,KAAjB/gD,IAAJ,GACkB,MAAC6K,IAAD,KADlB,IAIJ,EAGF,KAAiB,IACX,MAAoB,KAAC,KAAD,KAQxBs/B,GAAAA,IAAA,KAAAprB,IAAA,KAAA2tC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAT2B,GACvB,GAGwB1hD,GADD+1C,GAFvB,QAAA,SAAA,GACyB,IACFA,IAAAA,KAAjB/gD,IAAJ,GACqB,MAACgL,IAAD,KADrB,IAIJ,EAIF,EACuB,IAAH,OAEd,MAAoB,KAAC,KAAD,KAmBxBy4C,GAAAA,IAAAA,KAAsC,MAAA,KAC/B,MAAA,IAAA,KAAP,EApByB,WACvB,GAYaA,GATTkJ,GAHJ,QAAA,SAAA,GACyB,IACF5L,IAAAA,KAAjB/gD,IACF2sD,IAAiB,KADnB,GAUWlJ,IAAAA,KAAsC,MAAA,KAH7B,EAAA,IAAA,KAAA,IAAD,KAPnB,EAIiC,KAAA,IAHb,EAAA,IAAA,KAAA,KAAD,KADnB,IAcJ,EASF,KAAA,OACa,MAAgB,KAAC,KAAD,KAA3B,EAA4B,2BACM,EAChC,GAGkBmJ,GAWgD5X,GAdlE,WAAA,YAAA,MACyB,IACF+L,IAAAA,KAAjB/gD,IAAJ,MAEWW,MAAa,KAAA,KAAjB,MAQI,GAAJ,UAUM,IAVN,QACS,EAAH,IAC4BxB,MAAc,MAAA,KAArD,GAAA,GAAA,IAAA,GAAA,IAA8D61C,IAAA,KAAA,MAAzC,IAAa,OACL+L,IAAAA,KAAvB8L,UACI,OADR,MAGwB,IAHxB,EAC2BD,OAAM,KAAT,IAI1B,EAAA,EAAA,GAAA,QAfuB,KAAC,KAAD,KAAZ,IADN,WADSA,IAAM,KAAT,IADb,KAuBF,EApB4B,GACC7L,GAAAA,IAAAA,KAAnB7/C,IAAJ,GAGE,EAFO0rD,GAAAA,MAAM,KAAb,E,W,K,I,K,MClGD,MAAA,OAAAztD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAMb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAE8CqmD,KAAT,KA0ClC,KA1C+D,MAAA,EAFR,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAErB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAQlCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAMA,MAAA,IAED,KAFC,IANA,IAUA,MAAA,IAED,KAFC,IAVA,IAgBA,MAAA,IAED,KAFC,IAhBA,IAqBA,MAAA,IAED,KAFC,IArBA,IA2BA,MAAA,IAED,KAFC,IA3BA,IAAA,MAkCA,EAtCD,SAAgEC,GAAAA,IAAA,KAAA63C,GAAAA,MAAA,MAC9DpzC,IAAA,KAAA,KACU,UAAA,IAA4B4yC,IAAAA,KAAa,KAAA,UAAA,IAAA,IAA5C,MACG,MAAA,IAA4BA,IAAAA,KAAa,KAAA,UAAA,IAAA,IAA5C,MAAoD,EAG7D,MACM,MAAgB,MAAA,KAChB,MAAgB,MAAA,KACpBxW,GAAAA,IAAA,KAAAprB,IAAA,KAAAoiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAEA,GACa,MAAc,KAAA,IAAS,MAAc,KAAA,IAAzC,IAAP,EAMWL,GAAAA,IAAAA,KAAqB,KAAA,aAAA,IAAA,IAAhC,EAGF,GACM,MAAc,MAAA,KACd,MAAc,MAAA,OACpB,EAEA,GACM,MAAiB,MAAA,KACjB,MAAiB,MAAA,KACrB3W,GAAAA,IAAA,KAAAprB,IAAA,KAAAoiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GAGgB,MAAkB,KAAA,IAAvB,IAAA,IAA+B,MAAkB,KAAA,IAAjD,IAFF,MAAA,IAAA,KAAP,E,W,K,I,K,MChDS,MAAA,OAAAhiD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAMb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAE+CqmD,KAAT,KAmDnC,KAnDgE,MAAA,EAFT,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAEpB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAcnCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAKA,MAAA,IAED,KAFC,IALA,IAWA,MAAA,IAED,KAFC,IAXA,IAmBA,MAAA,IAED,KAFC,IAnBA,IAuBA,MAAA,IAED,KAFC,IAvBA,IA4BA,MAAA,IAED,KAFC,IA5BA,IAAA,MAqCA,EA5CD,GAAuDC,GAAAA,IAAA,KAAAk4C,GAAAA,MAAA,MACrDzzC,IAAA,KAAA,QAEO,SACE,SACA,MACuB,MAAkB,KAAA,IAArB,MAAlB,MAA0C,EAGvD,MACM,MAAgB,MAAA,KACpBo8B,GAAAA,IAAA,KAAAprB,IAAA,KAAAyiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAKaV,GAAAA,IAAAA,KAAqB,KAAA,aAAA,IAAA,IAAhC,EAGF,GACoB,MAAc,KAAA,IACP,MAAZ9gD,IACE,QACD0B,MAAQ,KAACA,MAAQ,KAAK,MAAJ,IAAwB,MAAzB,MAAqC,MAA9C,MAAX,MACA,MAAX,EAGF,GACM,MAAc,MAAA,OACpB,EAEA,GACM,MAAiB,MAAA,KACrByoC,GAAAA,IAAA,KAAAprB,IAAA,KAAAyiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GAGe,MAAkB,KAAA,IACpB,MACA,MAJJ,MAAA,IAAA,KAAA,IAAA,IAAP,E,W,K,I,K,MCtDS,MAAA,OAAAriD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAKb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAE8CqmD,KAAT,KA0DlC,KA1D+D,MAAA,EAFR,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAErB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAYlCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAMA,MAAA,IAED,KAFC,IANA,IAsBA,MAAA,IAED,KAFC,IAtBA,IA4BA,MAAA,IAED,KAFC,IA5BA,IAiCA,MAAA,IAED,KAFC,IAjCA,IAuCA,MAAA,IAED,KAFC,IAvCA,IAAA,MA8CA,EArDD,SAAgEC,GAAAA,IAAA,KAAA+3C,GAAAA,MAAA,MAC9DtzC,IAAA,KAAA,OAHsB,QAItB,IAA6BgzC,IAAAA,KAAbtqC,IAAhB,GAAyD,KAAA,IAAzD,MACEhW,MAAa,SAAA,KAEL,UAAA,IAA4BkgD,IAAAA,KAAa,KAAA,UAAA,IAAA,IAA5C,MACG,MAAA,IAA4BA,IAAAA,KAAa,KAAA,UAAA,IAAA,IAA5C,MAAoD,EAG7D,MACM,MAAgB,MAAA,KAChB,MAAgB,MAAA,KACpBxW,GAAAA,IAAA,KAAAprB,IAAA,KAAAsiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAEA,GACgB,MAAc,KAAA,IACd,MAAc,KAAA,MAC5B,MAS6B,MACtBzkC,IAAP,EARW,MAAT,KACEnc,MAAa,SAAA,OACgB,MAG/B,EASSqgD,GAAAA,IAAAA,KAAqB,KAAA,aAAA,IAAA,IAAhC,EAGF,GACM,MAAc,MAAA,KACd,MAAc,MAAA,OACpB,EAEA,GACM,MAAiB,MAAA,KACjB,MAAiB,MAAA,KACrB3W,GAAAA,IAAA,KAAAprB,IAAA,KAAAsiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GAGgB,MAAkB,KAAA,IAAvB,IAAA,IAA+B,MAAkB,KAAA,IAAjD,IAFF,MAAA,IAAA,KAAP,E,W,K,I,K,MChES,MAAA,OAAAliD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAMb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAE4CqmD,KAAT,KA0ChC,KA1C6D,MAAA,EAFN,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAEvB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAQhCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAKA,MAAA,IAED,KAFC,IALA,IAWA,MAAA,IAED,KAFC,IAXA,IAiBA,MAAA,IAED,KAFC,IAjBA,IAqBA,MAAA,IAED,KAFC,IArBA,IA0BA,MAAA,IAED,KAFC,IA1BA,IAAA,MAkCA,EAtCD,GAA8CC,GAAAA,IAAA,KAAAi4C,GAAAA,MAAA,MAC5CxzC,IAAA,KAAA,QACO,SACM,MAAW,EAG1B,MACM,MAAgB,MAAA,KACpBo8B,GAAAA,IAAA,KAAAprB,IAAA,KAAAwiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAEA,GAEU,MAAc,KAAA,IAAS,MAA3B,IAA4C,MAA5C,IAA6D,MAA/D,IADF,EAQWT,GAAAA,IAAAA,KAAqB,KAAA,aAAA,IAAA,IAAhC,EAGF,GACM,MAAc,MAAA,OACpB,EAEA,GACM,MAAiB,MAAA,KACrB3W,GAAAA,IAAA,KAAAprB,IAAA,KAAAwiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GAGe,MAAkB,KAAA,IAChB,MAHR,MAAA,IAAA,KAAA,KAAP,E,W,K,I,K,MC9CS,MAAA,OAAApiD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAMb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAEoDqmD,KAAT,KAyCxC,KAzCqE,MAAA,EAFd,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAEf,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAQxCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAMA,MAAA,IAED,KAFC,IANA,IAUA,MAAA,IAED,KAFC,IAVA,IAgBA,MAAA,IACD,KADC,IAhBA,IAoBA,MAAA,IAED,KAFC,IApBA,IA0BA,MAAA,IAED,KAFC,IA1BA,IAAA,MAiCA,EArCD,SAAgEC,GAAAA,IAAA,KAAAg4C,GAAAA,MAAA,MAC9DvzC,IAAA,KAAA,KACU,UAAA,IAA4B4yC,IAAAA,KAAa,KAAA,UAAA,IAAA,IAA5C,MACG,MAAA,IAA4BA,IAAAA,KAAa,KAAA,UAAA,IAAA,IAA5C,MAAoD,EAG7D,MACM,MAAgB,MAAA,KAChB,MAAgB,MAAA,KACpBxW,GAAAA,IAAA,KAAAprB,IAAA,KAAAuiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAEA,GACa,MAAc,KAAA,IAAS,MAAc,KAAA,IAAzC,IAAP,EAMWR,GAAAA,IAAAA,KAAqB,KAAA,aAAA,IAAA,IAAhC,EAEF,GACM,MAAc,MAAA,KACd,MAAc,MAAA,OACpB,EAEA,GACM,MAAiB,MAAA,KACjB,MAAiB,MAAA,KACrB3W,GAAAA,IAAA,KAAAprB,IAAA,KAAAuiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GAGgB,MAAkB,KAAA,IAAvB,IAAA,IAA+B,MAAkB,KAAA,IAAjD,IAFF,MAAA,IAAA,KAAP,E,W,K,I,K,MC/CS,MAAA,OAAAniD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAMb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAEiDqmD,KAAT,KA0CrC,KA1CkE,MAAA,EAFX,KAAA,IAAA74C,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAElB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAQrCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAMA,MAAA,IAED,KAFC,IANA,IAUA,MAAA,IAED,KAFC,IAVA,IAgBA,MAAA,IAED,KAFC,IAhBA,IAqBA,MAAA,IAED,KAFC,IArBA,IA2BA,MAAA,IAED,KAFC,IA3BA,IAAA,MAkCA,EAtCD,SAAgEC,GAAAA,IAAA,KAAA83C,GAAAA,MAAA,MAC9DrzC,IAAA,KAAA,KACU,UAAA,IAA4B4yC,IAAAA,KAAa,KAAA,UAAA,IAAA,IAA5C,MACG,MAAA,IAA4BA,IAAAA,KAAa,KAAA,UAAA,IAAA,IAA5C,MAAoD,EAG7D,MACM,MAAgB,MAAA,KAChB,MAAgB,MAAA,KACpBxW,GAAAA,IAAA,KAAAprB,IAAA,KAAAqiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACF,EAEA,GACa,MAAc,KAAA,IAAS,MAAc,KAAA,IAAzC,IAAP,EAMWN,GAAAA,IAAAA,KAAqB,KAAA,aAAA,IAAA,IAAhC,EAGF,GACM,MAAc,MAAA,KACd,MAAc,MAAA,OACpB,EAEA,GACM,MAAiB,MAAA,KACjB,MAAiB,MAAA,KACrB3W,GAAAA,IAAA,KAAAprB,IAAA,KAAAqiC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GAGgB,MAAkB,KAAA,IAAvB,IAAA,IAA+B,MAAkB,KAAA,IAAjD,IAFF,MAAA,IAAA,KAAP,E,W,K,I,K,I,K,I,K,MChDS,MAAA,OAAAjiD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAMb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAE8C4hD,KAAT,KA+ElC,KA/EuD,MAAA,EAFhB,OAAA5hD,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAEL,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAwBlCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAOA,MAAA,IAED,KAFC,IAPA,IAWA,MAAA,IAED,KAFC,IAXA,IAwBA,MAAA,IAED,KAFC,IAxBA,IA6BA,MAAA,IAED,KAFC,IA7BA,IAuCA,MAAA,IAED,KAFC,IAvCA,IAAA,MAuDA,EAvED,MAMEC,GAAAA,IAAA,KAAAy4C,GAAAA,MAAA,MACAh0C,IAAA,KAAA,QACW,SACC,SACQ,MACC,MAEnB01C,IAAAA,KAA0C,MAAA,KADvB,SAEP,MACD,MAAA,IAAG,EAGlB,QACiB,MACX,MAAqB,MAAA,KACzBtZ,GAAAA,IAAA,KAAAprB,IAAA,KAAAgjC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,MACI,MAAoB,MAAA,KAC1B,EAEA,GACa,MAAmB,KAAA,IAA9B,EAGF,GACM,MAAmB,MAAA,KACf,MAAR,GAM6B,MAAiB,MAC3B,MAAA,KAPnB,EASF,EAEA,GACM,MAAsB,MAAA,KAC1B5X,GAAAA,IAAA,KAAAprB,IAAA,KAAAgjC,GAAAA,IAAA,OAAA,SAAA,OAAA,KAAA,KACF,EAEA,GACM,MAAe,MACT,MAAgBx0C,GAAAA,IAAA,EACf,QADe,MAER,MAAiB,KAAyB,KAAA,IADhC,EAAA,IAAA,EADF,OAAA,KAAA,UAAA,IAAA,IAIpB,MALa,MAOrB,EAEA,GAC4B,MAAgBA,GAAAA,IAAA,EACjC,QADiC,MAChB,EAAA,IAAA,EADgB,OAAA,KAAA,UAAA,IAAA,IAKkB,MAAA,IAG7Ck2C,IAAAA,KAA2C,MAAA,IAE3C,MAAuB,KAAA,IACzB,MAAsB,KAAA,IAL5B,MAAA,IAAA,KAAA,KAAA,IAAA,IAAP,E,W,K,I,K,I,K,MCjFS,MAAA,OAAAtkD,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OASb,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,OAWuB,IAmCA,EACd,KADc,IAEf,KAFe,KAGd,KAHc,KAIH,KAJG,KAKC,KALD,KAAH,IAUW,KAAH,IAuFnBwhD,KACEC,KACFC,KACQC,KACTC,KAIDN,KAAsB,KACjBA,KAAsB,MACxBA,KAAsB,MACpBA,KAAsB,KACxBA,KAAsB,MACnBA,KAAsB,MAM1BA,KAAsB,MAC7BO,KACAC,MACWR,KAAsB,MACpBA,KAAsB,MAC5BS,MAzBM,EAAA,KAAA,KAAA,KAAA,KAAA,KAhDD,KAgDC,KA9DA,KA8DA,KA5EA,KA4EA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,KA3BD,KA2BC,KAzCE,KAyCF,KAlCE,KAkCF,KAvBC,KAuBD,KAVF,KAUE,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KA0Bd,MAAA,EAxKqD,OAAA/hD,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAYtD,KAAA,IAGS,KAAP,EAAO,UAEHoM,IAEI,KAFJA,IAgBFkvC,GAAAA,MAAK,KACP,EAfQ,IACM8K,GAAAA,IAAJ,KAMmB,IAEjBh6C,GAAAA,IAAQ,KAAA,EAAA,MACV,EACqB,IAEvB,EAHY,IACW,IACrB,IAVErS,MAAY,SAAA,KAGZ,EAuBL,EAAO,EACR,EAAO,EACN,EAAO,EACI,EAAO,EACH,EACpB,EAI2B,KAAA,IACQ8M,GAAAA,IAAA,EAElCw/C,MAFkC,MAG9BC,IAAmB,KAAD,KADR,EAAA,IAAA,EAFoB,OAAA,EAGX,GACxB3K,GAAAA,IAAkB,OAAC,KAAD,OAClBvvC,IAAW,IAAA,MAAH,KAARA,EACF,EAFqB,GAA4B,KAAA,IAAnB,EAKjB,KAAA,OAIM,IACnBvF,GAAAA,IAAA,EACKw/C,MADL,MAESC,IAAmB,KAAD,KADR,EAAA,IAAA,EADnB,OAAA,EAE4B,GACxBC,GAAAA,IAAiB,MAAC3P,IAAM,KAAP,OACjBxqC,IAAW,IAAA,MAAH,KAARA,EACF,EAIW,KAAA,OAIM,IACnBvF,GAAAA,IAAA,EACKw/C,MADL,MAESC,IAAmB,KAAD,KADR,EAAA,IAAA,EADnB,OAAA,EAE4B,GACxBC,GAAAA,IAAiB,MAAC3P,IAAM,KAAP,OACjBxqC,IAAW,IAAA,MAAH,KAARA,EACF,EAQKi6C,GAAAA,IAAP,EAMOG,GAAAA,SAAsB,KAA7B,EAQOA,GAAAA,SAAsB,KAA7B,EAIOH,GAAAA,IAAP,EAOOG,GAAAA,SAAsB,KAA7B,EASW,IAIS,MAAApmD,IAAA,IAAAA,IADqB,EACrBA,EAAA,IADuB,MAEpCimD,GAAAA,IAAP,E,qB,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,K,OCvJF,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAhoD,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,W,YAAA,IAAA,KAAA,IAKmB,MAAC,KAAD,KAIlC6hD,KAAuB,KAEtC,MAAA,EAX8B,IAAA,KAAA,OAAA,cAAA/7C,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAM7B6uC,GAAAA,IAAA,KAAC4X,IAAA,KAAQ5/C,IAAA,YAAA,UAAA,MAAuC,KAAA,IAAA,EAAvC,OAAT,MAD4D,E,Q,K,I,K,I,K,I,K,I,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OCA9D,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAAqC,IAAA,KAAA,IAAA,QAAA,OAEjB,IAAA,KAAV,OACgB,IAAA,KAAV,OACU,IAAA,KAAV,OACQ,IAAA,QACC,IAAA,KAAV,OACM,IAAA,KAAV,IA4QwB,MAArB,KA+XX,KAG6B,KACzB,MAAA,KAD0B,EAAA,KAAD,KAApB,OAIE,MAAY,EAzpBW,OAAApO,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAuIrC,OACS8iD,OAAP,EAIF,QACSC,OAAP,EAsIY,EAAA,KAAA,IAAApuC,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IA0IXzE,IAAA,KAAA,MAAA,IArID,KAqIC,IAAA,IAAA,IAjIA,MAAA,IAUD,KAVC,IAiIA,IA7GA,MAAA,IAQD,KARC,IA6GA,IA3FA,MAAA,IAOD,KAPC,IA2FA,IAhFA,MAAA,IAOD,KAPC,IAgFA,IArEA,MAAA,IAOD,KAPC,IAqEA,IA1DA,MAAA,IAKD,KALC,IA0DA,IAjDA,MAAA,IAKD,KALC,IAiDA,IApCA,MAAA,IAED,KAFC,IAoCA,IA9BA,MAAA,IAED,KAFC,IA8BA,IAxBA,MAAA,IA2BD,KA3BC,IAwBA,IAwBA,MAAA,IAUD,KAVC,IAxBA,IA+DA,MAAA,IAmDD,KAnDC,IA/DA,IA0HA,MAAA,IAED,KAFC,IA1HA,IAwJA,MAAA,IA6DD,KA7DC,IAxJA,IAAA,MAqPA,EA3QD,IAAiCC,GAAAA,IAAA,KAAAgkD,GAAAA,MAAA,MAC/Bv/C,IAAA,QAAA,MAAA,IAgD4D,IAAzC,MAEP,KAAH,MAqCA,KAAH,MAiBQ,KAAH,MASG,KAAH,MA8DD,KAAH,MAyDWw/C,IAAAA,KAAW,MAAD,KAAb,MAvOC,MAAC,KAAD,KACZ,KAAU,MACZ5iD,IACE,KAFJ,GAQqB,MAAd,GACLA,IAAA,MAA+B,KAIVA,IAAA,KAAU,MACLA,IAAkC,MACxDA,IAAA,KAAU,MAD8C,KAL5B,EAAA,KAAA,KAAD,KAD1B,EANO,MAAmC,KAAC,KAAD,KADrB,MAiB3BA,IAAA,EA+BDA,GAAAA,OAAa,QACf,EAmCW,MACU6iD,GAAAA,IAAoB7iD,GAAAA,IAAA,KAAU,QAAX,QACtC,IAWa,IAAX,EAVY,MACZ,IACoByQ,IAAAA,IACE,KAApB,IACmB,IACT,KAAA,KAJwB,GAApC,IAOA,EAMY,KACVza,MAAa,KAAA,KAAjB,KAIE,EAHmB6sD,GAAAA,IAAoB7iD,GAAAA,IAAA,KAAU,QAAX,QAC/B0iD,IAA2D,KAA3DA,EAAiB3rD,MAAS,MAAK,KAAJiqC,IAAD,KAAjC,EAMY,QACK6hB,GAAAA,IAAoB7iD,GAAAA,IAAA,KAAU,QAAX,KACjB,KAAU,QAAb,IAA8B8iD,IAAAA,MAA9B,GAElB,IAemB,MAAnB,cAdEjiD,MACE7K,MAAa,KAAA,KAGb0sD,QAJO,OAOH,KAAC,KAAD,KAGC,SAAA,KAJP,EAEIK,GAAAA,IAA0CtyC,IAAQiyC,IAARjyC,OAAAA,SAA9B,MADA,EAkDR,KAAA,OAAA,IAQGoyC,GAAAA,SAAmB,KAgBb,gBAdJ,SA0CX,EADGG,GAEH,QAFGA,EACH,QADJ,EAzCe,GACTA,GAAAA,IAAJ,GAKWC,IAAJ,KAIL,EAFOA,MAAU,KAAjB,EAHOrY,GAAAA,IAAA,KAACoY,IAAiBpgD,IAAA,IAAA,MAAlB,MAAP,EASe,KACbsgD,GAAAA,OAAJ,IAsBSC,MAAM,KAAb,YArB0B,MAAA,KAAR,IAClBtiD,GAAAA,MACE7K,MAAa,KAAA,SADN,MAKP40C,IAAA,KAACwY,IAAYpoD,IAAkB,MAACwwC,IAAM,MAAM6X,IAAb,MACpB,KAAC,KAAD,KADN,EAAA,IAAA,IAAL,MADF,EAEc,GACQF,GAAAA,IAGP1yC,GAAAA,IAAQyyC,IAARzyC,IAAAA,IACKzP,IAAI,MAJK,KAAA,KAAA,IAAA,OAAD,OAMfzK,IACLq0C,GAAAA,IAAA,KAAC/vC,IAAK,MAAS,EAAA,IAAf,OADF,EAnNwC,GACrB,MACCmF,GAAAA,IAAkC,MACpD,MADoD,KAFL,EAAA,KAAA,KAAL,EApHxD,EACU,MAAR,GACM,MAAqB,SAAA,KAD3B,EAGF,EAUA,EAOU,MAAR,GACM,MAAuB,SAAA,KAD7B,EAGF,EAQA,EAOU,MAAR,GACM,MAAsB,SAAA,KAD5B,EAGF,EAOA,EACU,MAAR,GACM,MAAwB,SAAA,KAD9B,EAGF,EAOA,EACU,MAAR,GACM,MAA2B,MAAA,IADjC,EAGF,EAOA,EACU,MAAR,GACM,MAA+B,MAAA,IADrC,EAGF,EAKA,EACU,MAAR,KAGF,EAFe,MAA4B,MAAA,IAAvC,EAOJ,EAGU,MAAR,KAKF,EAFe,MAAsB,MAAA,IAAjC,EAIJ,EACU,MAAR,KAGF,EAFe,MAA2B,MAAA,IAAtC,EAIJ,EACU,MAAR,GACM,MAAwB,SAAA,KAD9B,EAGF,EA2BA,KACEa,GAAAA,IACW,MAAoB,KAAM,QAAnCyiD,QADO,MAME,MAAgC,KAAM,MAA/CA,QADO,MAKNzvC,IAAoB,MAAwB,KAAM,MAAxC,MAAX,OADO,MAKE,MACH,KAAM,MADZyvC,QADO,MAMO,MAAK,KAAL,KAClB,EAUA,GAUW,MAAA,MAAA,MAAA,MAAA,MAAA,MACUT,GAAAA,MAAwB,KAAM,QAAX,KACtChiD,IACE,GAAA,GAAY,GAAZ,IADO,SAIT,IAGEA,IACE,OADO,MAHX,EACEA,IAAU,OAAD,MAOXA,IACI0iD,MAAF,OADO,MAKX,EAmDA,OACqBV,GAAAA,IAAwB,KAAM,QAAX,KACb,KAAM,QAAb,IAA8BC,IAAAA,MAA9B,eAAA,IACjB,MAAa,KAAC,KAAD,KAKhB,EALiB,GACbjiD,GAAAA,IAAUqS,GAAAA,IAAC,OAADA,UAAD,MACM,KAASwvC,IAAVxvC,OAAAA,IACdgE,IAAQ,KAAAtU,IAAA,EAAA,MAAmBmgD,IAAY,MAAzB,EAAA,KAAA,IAAA,IAAA,EAAN,OAAA,KACV,EAGF,KAAA,MAOE,IACO,KAAP,EAAO,OAKcF,GAAAA,IAAoB3iD,GAAAA,IAAI,KAAM,MAAX,KAClCqjD,IAAJ,gBACE,IASEA,IAAsB,eARY,IAAH,IACS,IAAH,IACjC,MAAsB,KAAC,KAAD,KAGtB,MAAgB,KAAC,KAAD,KACpBA,IAAwBC,IAAeC,IAAhB,EAAA,KAAA,KAAD,KAK5B,EARQvjD,GAAAA,IAA6B,MAACsjD,GAAAA,OAAD,MADH,EAGFtjD,GAAAA,IAA6B,MAACujD,GAAAA,OAAD,MAAjC,EAoE9B,EAOU,KALI,MACQ,MAC2B,MAAxB,UACXC,OACEzd,GAAAA,IAAA,KAAAC,IAAA,MAGGyd,GAA0C,MAA1CA,EAAiB,MAIhC/Y,IAAA,KAACgZ,IAAA,KAAehhD,IAAA,EAAA,MAED,MACK,MACA,MACT,MAC2B,MACbihD,IAA8B,KANxC,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAUP,KAAM,MACN,KAAM,MAGN,KAAM,cALA,IATC,QADC,IAAhB,MAFF,E,qB,K,I,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,Q,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OC3nBJ,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QAKA,IAAA,QAIA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAzpD,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,+F,S,S,S,S,S,S,S,S,SAA/B,OAA+B,IAAA,KAAA,MAMX,QACiB,IA8FQsvD,KAAT,KA4lBjC,KA5lBgE,MAIbC,MAAlC,MA2pDL/oD,KAAiB,KAEhB,QAAA,KAAD,IAAA,IADO,EAAA,IAIN,EAAA,KAAD,IAAA,IADS,EAAA,IAGf,EAAA,IAPwB,EAAA,KAAA,KAAA,KAUb,UAVa,KAejB,UAfiB,KAqBZ,UArBY,KAyBR,UAzBQ,KA8BT,UA9BS,KAAD,KAApB,IAmCT,EAvyD4B,IAAA,KAAA,OAAA,cAAAV,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA8B/B,OACSqkD,OAAP,EAIF,QACSC,OAAP,EAIF,QACSC,OAAP,EAIF,QACSC,OAAP,EAIF,QACSC,OAAP,EAIF,QACSC,OAAP,EAGF,UAIkB,QAAHntC,IAAb,IACmB,IAAJ,QAAb,GADoC,GAAtC,MAMA,EAJc,IAAV,EAoC8B,EAAA,KAAA,IAAA5C,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAqTjCzE,IAAA,KAAA,MAAA,IA9SD,KA8SC,IAAA,IAAA,IAhRA,MAAA,IAGD,KAHC,IAgRA,IAxMA,MAAA,IAID,KAJC,IAwMA,IApLA,MAAA,IAYD,KAZC,IAoLA,IAnJA,MAAA,IAED,KAFC,IAmJA,IAzIA,MAAA,IAED,KAFC,IAyIA,IAjIA,MAAA,IAOD,KAPC,IAiIA,IAtHA,MAAA,IAED,KAFC,IAsHA,IA9GA,MAAA,IAED,KAFC,IA8GA,IApGA,MAAA,IAED,KAFC,IAoGA,IA9FA,MAAA,IAED,KAFC,IA8FA,IA1FA,MAAA,IAOD,KAPC,IA0FA,IAjFA,MAAA,IA6JD,KA7JC,IAiFA,IAkKA,MAAA,IAED,KAFC,IAlKA,IAkLA,MAAA,IAED,KAFC,IAlLA,IA2LA,MAAA,IAED,KAFC,IA3LA,IAsMA,MAAA,IAqBD,KArBC,IAtMA,IAsRA,MAAA,IA0BD,KA1BC,IAtRA,IAsTA,MAAA,IAKD,KALC,IAtTA,IAgVA,MAAA,IAED,KAFC,IAhVA,IAolBA,MAAA,IAED,KAFC,IAplBA,IA4mBA,MAAA,IAoDD,KApDC,IA5mBA,IAsqBA,MAAA,IA6ED,KA7EC,IAtqBA,IAiwBA,MAAA,IASD,KATC,IAjwBA,IA8wBA,MAAA,IAED,KAFC,IA9wBA,IAi0BA,MAAA,IAqBD,KArBC,IAj0BA,IAw1BA,MAAA,IAYD,KAZC,IAx1BA,IAo6BA,MAAA,IAED,KAFC,IAp6BA,IAg7BA,MAAA,IAED,KAFC,IAh7BA,IA07BA,MAAA,IAED,KAFC,IA17BA,IA09BA,MAAA,IAuHD,KAvHC,IA19BA,IAkoCA,MAAA,IAsND,KAtNC,IAloCA,IAu2CA,MAAA,IAr2CD,KAq2CC,IAAA,IAAA,IA3zCA,MAAA,IAED,KAFC,IA2zCA,IA7yCA,MAAA,IAED,KAFC,IA6yCA,IA7xCA,MAAA,IA8HD,KA9HC,IA6xCA,IA9oCA,MAAA,IA+DD,KA/DC,IA8oCA,IAv2CA,OAuSA,EA3VD,UAA0BC,GAAAA,IAAA,KAAA2lD,GAAAA,MAAA,MACxBlhD,IAAA,KAAA,MAAA,IApCkB,KAAH,MASY,KAAH,MAQD,KAAH,MAUK,KAAH,MAqWF,KAAH,MAeH,KAAH,QAsTK,MACgC,EAAzC,MASL,EAPG,MAQM,QAEoB,MACnB,MACN,MAC0B,EAAxB,MACG,MACG,MACU,QACgB7O,MAAG,KAAA,OAAA,IAAA,IAA/B,QACK,MAEbgwD,IAAAA,KAAmB,KAAA,OAAA,IAAA,IADR,MAEe,MACf,MAEA,UAAH,MAUJ,MACc,MACR,MACG,MAEyC,IAA1C,MAIE,KAAH,MAce,KAAH,MAsCb,KAAH,MAmDI,KAAH,MAgEF,KAAH,MAeQ,KAAH,MAQI,KAAH,MAKG,KAAH,MA6HQ,KAAH,MA2BU,KAAH,MAoBf,KAAH,MAyHY,KAAH,MAWC,KAAH,MAYS,KAAH,MAOC,KAAH,MASG,KAAH,MAwBD,KAAH,MAoBG,KAAH,MAoBZ,KAPmB,MA6BJ,KAAH,MA4Be,KAAH,MA/0C1B1jD,IAAAA,KAEQ,MAAN,GAAA,GAAyB,MAAS,KAAf,GAAnB,IAFO,MAMTA,IAAAA,KACE2jD,IAAyB,MAAN,KAAnBA,QADO,MAKT3jD,KACO,UADE,MAKTb,IAA2BykD,IAAAA,KAAezkD,IAAA,MAAD,KAAA,OAAA,IAAA,IAArB,MACpBA,IAAuC0kD,IAAAA,KACrC1kD,IAAA,MACAA,IAAA,KAAU,MADe,OADuB,KAAA,aAAA,IAAA,IAAlB,MAK5BA,IAAA,KAAU,MACZA,IAA0B,KAD5B,GAQ+B,MAAmB,MAChD,GACEA,IAAA,MAA4B,KACH2kD,IAAAA,KAAiB,KAAA,UAAA,IAAA,IADb,EAAA,KAAA,KAAD,KAD9B,EARoC,MAAmC,KACrE,KADqE,KAAhD,MAgBzB9jD,IAAAA,KACGb,IAAA,KAAD,OADO,MAKmBskD,IAAoC,MAAA,KAEhEtkD,IAE+C,MAAA,MAFlC,EAAA,KAAA,KAAH,MAGRA,IAAA,EArFKA,GAAAA,IAAA,KAAP,EASIA,GAAAA,IAAiC,MAAA,IAArC,GAGE4kD,GAAAA,IAAA,KAAA5kD,MAAA,KAAA,EAFOA,IAAA,KAAsC,MAAA,IAA7C,EAMqB,GAIvBA,GAAAA,IAAA,MAA0B,KAAU,KAAe,MAAzB,MACtB,MAAJ,GACW,KAAsB,MAAA,IADjC,EAGF,EAKEA,GAAAA,IAAA,MAA6B,QAAU,KAAV,OAC/B,EAiWsB,QAAA,IACR,KAAC,KAAD,OAId,EAJe,KACCpD,IAAAA,GAAeoD,GAAAA,IAAA,MAAc,IACzCwkB,GAA+B,MAAC6F,GAAAA,IAAD,KAA/B7F,EACF,EAWc,WACdqgC,MADkC,EAqWlC7kD,GAAAA,OAAe,QACjB,EAYgC,OACP,MACnBA,GAAAA,IAAiC,MAAA,IAE5B4qC,GAFT,MAGO,GA6BEA,IAAA,KAACka,IAAA,KAAUliD,MAAA,EAAA,MAAX,MAAP,EA5BA/B,IAAAA,KACc,QAEV/H,MAAc,MAAM,QAAN,OAAA,SADhB,MADA,OAAA,QACA,IAFO,MASP8xC,IAAA,KAACka,IAAA,KAAUliD,IAAA,EAAA,MAGF,MAALmvC,IAQO,MARPA,EACEnH,IAAA,KAACma,IAAA,KAEkB,MAEQ,MAJZ,EAAA,KAAA,KAAA,KAAf,MAHK,EAAA,KAAA,EADA,OAAX,MAHF,EAROna,IAAA,KAACW,IAAA,KAAI3oC,MAAA,EAAA,MAAL,MAAP,EAkCY,YACE,KAAY,KAElB5C,GAAAA,IAAkB,MAAA,KACA,MAAA,KAFf,EAAA,IAAA,IAAA,MAAA,KAMA,MAAY,IACzB,GAEM,KAAgB,KAFtB,IAGM,KAAgB,KAHtB,IAIgB,KAJhB,IAiBEA,IAAA,MAAY,IAAkB,MAjBhC,KAMEA,IAAA,MAA6B,OAAWglD,GAAW,KAA1BvpB,IAAJ,IAAA,MACrBz7B,IAAA,MAA4BglD,KAAJ,IAAA,MACxBhlD,IACE,MAAwB,MAAxBA,IADqB,MAEvB,MAAqB,MACajJ,MAAQ,KACxC,MADwC,MAAX,MAIE,MAAA,IAKnCiJ,IAAyC,MAAA,KAEnB,MAAA,IACG,MAAC,KAAY,KAAU,MAAvB,QAC3B,EAkBiB,GACFA,GAAAA,IAAA,MAAY,IACzB,GACEA,IAAA,MAAqB4C,GAAAA,MAAA,EAAA,MAAW,IAAA,KAAA,EAAX,OAAA,IADvB,EAGF,EA2DY,GACN5C,GAAAA,IAAiC,MAAA,IAGnCA,IAHF,GAKE,KAAsD,MACnD,KAAY,KADuC,KAArB,MALnC,EAG4C,MAAA,IAM5CA,IAAA,KAAU,KAAVA,GAAuBA,IAAA,KAAmB,KAAA,KAC1CA,IAAiC,MAAA,IACN,MAAA,MAC7B,EAGEA,GAAAA,IAAA,KAAU,KAAVA,GAAuBA,IAAA,KAAmB,QAAA,KAA1CA,EACF,EAOEA,GAAAA,IAAyC,MAAuB,MAAA,IAAvB,KACF,SAAE,KAAY,KAAd,KAArB,QACpB,EAGEA,GAAAA,IAAuC,SAAE,KAAY,KAAd,KAArB,QACpB,EA2HuB,QACrB,OAAA,OAGEA,GAAAA,IAAA,KAAU,QAHZ,IAIEA,IAAA,KAAU,MAJZ,IAKGA,IAAA,MALH,GAOMA,IAAA,KAAU,MAAd,IACEA,IAAkB,MAET,KAAU,MAFA,IAAA,KAAA,IAAD,KAKpBA,MAAsC,MAEpCA,GAAAA,IAAA,KAAU,MAAd,GACEA,IAAA,KAA8B,MAAA,MAEhCA,IAAA,KAAsD,MAAC,EAAA,IAAA,IAAD,KAArB,MACA,MAAA,IACN,MAAA,MAC7B,EAK8B,GAMN,KAAUA,GAAAA,IAAA,MAAjBilD,IAEc,MACJ,KAAmB,KAA5BC,IACM,KAAmB,MAElC,EAAA,KAAA,KAAA,IAAA,KAAP,EAQU,QAAA,IACVllD,GAAAA,IAAA,MAA8B,KAAC,KAAD,KAG1B,KAAU,MAAd,GACEA,IAAA,KAAmB,MAAA,KAEF,MACCA,IAAkB,MAAE,KAAY,MAAd,KACA,MAAE,KAAY,MAAd,KACP,MAAE,KAAY,MAAd,KACR,KAAmB,KAA5BklD,IAEuB,MAAA,UAArC,GACMllD,IAAA,KAAmB,QAAvB,OAMEA,IAAgC,MAAC,EAAA,KAAA,IAAD,KADnB,MAAe,MAAQ,KAAS,MAOtCA,IAAA,KAAmB,SAAnBA,KACPjJ,MAAQ,KAAgBiJ,IAAA,KAAmB,MAA/BmlD,IAAJ,MAEKC,UAEjB,IAEEplD,IAAA,KAAmB,MAFrB,OAGkB,IAHlB,IAIGA,IAAA,MAAe,MAJlB,GAMEypC,GAAAA,IAAAA,KAIezpC,IAAA,KAAmB,MAAhC,EAAA,KAAA,KAAA,WAJK,MAMP,QAAoB,MAIH,KAAY,QAAbxG,IAAmC,KAAY,MACjEwG,IAAsB,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAH,MAUM,MAAC,KAAY,KAAU,MAAvB,MACpB,KAAL,KACE,EAEFA,IAA2B,MAAA,IAC3B,IACEA,IAAA,MAA6B,MAAA,IAE/BA,IAAsB,MAAA,IACW,MAAA,MACnC,IAnDM,EAhB2B,GACV,MAACxG,GAAAA,IAAD,OACrB,EAsHmB,KAAA,IACnBwG,GAAAA,IAAA,MAA8B,KAAC,KAAD,KAG9B,MAA+B,KAAC,KAAD,OAGZ,MACnB,KAAU,MAAVA,GAAgCA,IAAA,KAA4B,MAAA,KAA5DA,EACF,EARiC,GACD,MAACxG,GAAAA,IAAD,OAC9B,EACgC,GACzB,MAAoC,MAAA,MAC3C,EAKiB,KAAA,IACjBwG,GAAAA,IAAA,MAA8B,KAAC,KAAD,KAGV,KAAY,KAChC,GACEA,IAAA,KAAiD,MAAA,KAArB,MAE9BA,IAAsB,MAAA,IACtB,KAAU,MAAVA,GAA8BA,IAAA,KAA0B,MAAA,KAAxDA,EACF,EATiC,GACH,MAACxG,GAAAA,IAAD,OAC5B,EASuB,KAAA,IACvBwG,GAAAA,IAAA,MAA8B,KAAC,KAAD,KAG9B,KAAU,MAAVA,GAAoCA,IAAA,KAAgC,MAAA,KAApEA,EACF,EAJiC,GACG,MAACxG,GAAAA,IAAD,OAClC,EAIqB,KAAA,IACrBwG,GAAAA,IAAA,MAA8B,KAAC,KAAD,KAG9B,OAA4B,MACN,MAAA,IACtB,KAAU,MAAVA,GAAkCA,IAAA,KAA8B,MAAA,KAAhEA,EACF,EANiC,GACC,MAACxG,GAAAA,IAAD,OAChC,EAOAwG,GAAAA,IAAa,OAAC,KAAD,OAqBf,EArBgB,MACgBA,GAAAA,IAA+B,MAEpD,MAFoD,MAIxCskD,GAAAA,IAAiC,MAGjB,MAAA,KAHiB,OAO/B,KAAgB,MAAoB,KADzD,IAEqB,KAAe,MAAoB,KAFxD,IAGmB,MAAM,MAAN,KAHnB,GAQO,EAAA,KAAA,KAAP,IAHE,EAOa,MAMY,KAAA,QACT,MAIbtkD,GAAAA,IAAkB,MAAA,OAHlB,EAAA,IAAA,KAAA,OAAA,KAAP,EAYiB,QACb/C,MAAgB,MAAA,KACX+C,GAAAA,IAA4B,MADrC,GAIIjJ,MAAU,KAAA,KADqC,MAIvBA,MAAU,KAAA,KAAlB0Z,IACC,KAAkC,KAAxB40C,IAAtBC,IAAP,EAPmC,MAAc,KAAjD,EAkBA,MACYtlD,GAAAA,IAAqB,MAAA,MACnC,GAAkB,KAAlB,IAImD,KAAA,MAAA,MACjDa,GAAAA,IAAAA,OACE4P,IAAAA,KAAkC,KAApBA,IAAdA,IACA,MAFO,MAIT5P,IAAAA,KACE,OADO,MAKCb,IAAA,MACA,MAAAA,IAFH,EAAA,IAAA,IAAP,EAXA,EAkBe,MAUyC,KAAA,MAAA,MAAA,MAC1Da,GAAAA,IAAAA,OACE4P,IAAAA,KAAkC,KAApBA,IAAdA,IACA,MAFO,MAIW,SACNmmB,GAAQ52B,GAAAA,IAAA,MAA+B,MAAA,OAAnB,IAClC,GAAmB,KAAnB,IACE,GAOF,EAHwB,MAApB,EAMyB,KAUzBA,GAAAA,IAAA,MADJ,GACgCA,IAAA,MAAe,MAAD,IAD9C,GAGS,IAAP,EAG8BA,IAAA,MAAe,MAAD,IACE,KAAM,KAClB,MAAM,KAAN,KAGpC,OAEEA,IAAA,MAAuB,KAAA,KAAuB,MAFhD,UAUUulD,OADV,IAEyCvlD,IAAA,KAAmB,cAF5D,IAKO,GACyBA,IAA4B,MAAA,MAGzD,KAHyB,IAHzB,MAHH,IAEyCA,IAAA,KAAmB,YAF5D,IAeU+mC,OADV,IAG8B/mC,IAAA,KAAmB,cAHjD,IAMM,GACyBA,IAA4B,MAAA,MAGxD,KAHwB,IAHxB,MAJH,IAG8BA,IAAA,KAAmB,YAHjD,IAaQ,EAAA,IAAA,IAAD,IAAA,IAAP,EAhCS,IAAP,EA/0CE,GACyB2kD,GAAAA,IAAAA,KAAsB,MAAL,KAAA,OAAA,IAAA,IACZ,MAFrB,EAAA,KAAA,KAAL,EApRV,OACmB9d,GAAe,MACX,KAAmB,MAAK,KAAM,KAAX,QAAvB,IACyB,MAAe,KAAf,QAC3B9vC,MAAQ,KAEhB,KACE,KADPwN,IAEM,MAFNA,IAGM,KAAe,MAHrBA,MAFqB,MAQf,QAAR,IAIQ,MAAW,MAAnB,IASI,MAAoB,MACtBihD,GAAAA,IAAwB,KAAM,QAAX,KACf,EADJA,GAEI,IAAA,QAFJA,EACI,IAAA,QAFkB,KAK1B,EAbI1vD,MAAY,SAAA,OAKZ,IATA,EAoBJ,OAaU,KALF,KACM,MACE,MACC,MACQ,MAEmC,MAAA,KAAA,MAAA,MAC1D+K,GAAAA,IAAAA,KACE4P,QAAU,UAAA,IADH,MAIT5P,KACc,QAAZ4kD,IACuD,SADhC,QAAA,IADhB,MAMT5kD,KACsB,KAApB4P,IAA0B,IAEZ,KAAZg1C,QAFwB,IAAA,IADnB,MAMT,GAAkC,MAAlC,IACE5kD,IAAAA,KACG,GAAD,OADO,MAMgB,MACQ,MAFX,EAAA,KAAA,KAAA,IAAD,KAKrB,EAEwC,QAAC9J,MAAU,KAAA,KAAa,KAAxB,MAExCA,MAAQ,KAEe,MAAY,KAAZ,MAClB2uD,KACM,KAAe,MAAsB,KAAzC,IADH,IADF,IAFM,MAKHC,KALL5uD,IAOM,QAAR,IAIQ,MAAW,MAAnB,IASI,MAAoB,MACT,EAAbitD,GAAqC,IAAA,QAArCA,EAAa,IAAA,QADS,KAG1B,EAXIluD,MAAY,SAAA,KAKZ,EATA,EAmBJ,OAOuB,MACqB,KAA/B,KAAS,MAAc,MACJ,OAC9B,IACa,SAAX,IAD0C,GAA5C,MAEsB,MAAA8M,GAAAA,IAAA,EAAA,MAAW,EAAA,IAAA,EAAX,OAAA,KAIxB,EAYA,KACmC,MAAA,KAEzB,QAAR,IAIQ,MAAW,MAAnB,IASI,MAAoB,MACtB4iD,GAAAA,IAAwB,KAAM,QAAX,KACf,EADJA,GAEI,IAAA,QAFJA,EACI,IAAA,QAFkB,KAK1B,IAbI1vD,MAAY,SAAA,OAKZ,IATA,EAmBJ,IACM,MAA0B,KAAC,KAAD,KAG1B,MAA2B,KAAC,KAAD,KAGN,MAAK,KAAY,KAAM,MAAvB,QAC3B,EAPiC,GACF,MAAA,MAC7B,EACgC,GAC7B,MAAoC,MAAA,MACvC,EAIF,EACU,QAAR,IAII,MAAiC,MAAA,MACvC,IAJI,EAWJ,EACU,MAAR,GAA2B,MAAW,MAAtC,KAGF,EAFe,MAA8B,MAAA,IAAzC,EAIJ,EACU,MAAR,GAA2B,MAAW,MAAtC,GAGSuF,GAAAA,IAAAA,KAAmB,QAAL,KAArB,EAFW,MAA6B,MAAA,IAAxC,EAMJ,EAGU,MAAR,GAA2B,MAAW,MAAtC,GAGa,MAAX,EAFW,MAAwB,MAAA,IAAnC,EAMJ,EACU,MAAR,GACM,MAA0B,SAAA,KADhC,EAGF,EAEA,MACa,SAAJ,IAAA,MAAA,MAAP,EAQF,EACa,MAAX,EA8JF,UAIoC,KAAA,MACJuqD,GAAAA,IACvB,QADqD,KAGnC,MAAA,MAE0B,KAA/B,MAAQ,KAAe,MACnBC,IAAAA,IAIxB,OAAA,OAOS,MAAT,MAyBS,MADP,GAEO,KAAe,KAFtB,KAGE9uD,MAAQ,MAAA,KAAqBkG,MAAM,MAHrC,IAK4B,KAAqB,QAAxC6oD,IACHxB,GAAAA,IAAqC,MAAA,MADzC,EAKuByB,IAAAA,MAEvBC,IAAkC,MAAN,KAC5BxB,IAAyB,MAAN,KAEf,MACA,aAN8C,IAQpD3jD,IAAAA,KACwB,KAAoB,KAA1ColD,QADO,MA1CX,EAEsB9B,MAAlB+B,IACIF,IAAkC,MAAN,KADhCE,EAMMnvD,MAAQ,KACO,KAAnB+uD,IACY,QAAZL,IAFY,MAFS,EAAA,IAAA,OA0CnB,MAAuB,KAAA,IAA/B,IAO+C,MACrB,KACA,KAFqB,QAKfU,IAAkC,KAArC,MAG7B,EArE4B,KAAqB,QAAxCL,IACHxB,GAAAA,IAAqC,MAAA,MADzC,EAwEJ,YACE,IAC8B,MAAmB,KAAA,QAC/C,IAEM,MAA4B,MAAkB,KAAlB,MAFlC,GAFiC,GAAnC,IAYA,EAJI,EAJkD,GAC/B,MAAA,IADwC,EAWjE,EACuC,MAAA,IAArC,GACM,KAA8B,MAEnB,KAAQ,MAFY,EAAA,IAAA,KAAD,KADpC,EAMF,EAEA,EACuC,MAAA,IAArC,GACM,KAAgC,MAAC,EAAA,IAAD,KAElC,MAAoC,MAAC,IAAA,KAAD,KACpC,MAA2B,OAAC,KAAD,KAG3B,MAAmC,MAAA,MACzC,EAJkC,GACzB,MAA0B,MAAA,MACjC,EAuBF,wBAoBU,KAXe,MACC,MACH,MACF,MACb,KACC,MACE,MACK,MACC,MACH,MACA,QAES8B,MACG,KAAZX,MAEL1uD,MAAQ,QAAA,MAAY,KAC3B,sJAAqC,IAAJsvD,IAAE,GAAA,IAAnC,IAkCF,EAnC6B,IAEZC,GAAAA,IAAQtlB,IAAMqlB,IAAP,MACRnmD,IAAkB,MAAOmmD,IAAQ,KAAf,OAC1B,MAAmB,KAACA,IAAD,MACnBE,IAA0B,KAACF,IAAKG,IAALH,IAAD,KAA9B,GACEI,IAAwB,KAACC,IAAK,KAAN,KAE1BA,IAAU,KACR9b,GAAAA,IAAA,KAAC+b,IAAA,KACwBC,IACCP,IAAKjmB,MAALimB,IAAWQ,IAAXR,IACLrD,IAEZ8D,IACS5mD,IAAI,MACL6mD,IACH/C,IACLqC,IACSW,IAGHC,IACK,MACM,MAET,MAIHhE,IArBD,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAgBS,KAhBT,KAAA,KAkBN,KAlBM,IAAA,KAYNrmD,IAZP,OADQ,KAyBIA,IAAH,IACb,EAT+BsD,GAAAA,IAAwB,MAACtD,GAAAA,IAAD,KAA5B,EAGnBsD,GAAAA,IAAI,MAAWtD,GAAAA,OAAI,MACrB,EAgCR,EAC4B,QAExBsqD,GACe,MAAd,GAA8B1B,GAAAA,IAAwB,KAAM,QAAX,KAAlD,GAAA,IAFM,GAAD,GAAP,EASF,SASW,QAAT,IAIY1C,GAAAA,IAAAA,QAAmB,QACnB/pD,MAAM,KAAlB,MACkB,IACR,KAAR,GAAqB,KAAK,KAA1B,GACkC,KAAK,KAAZ,IAG7B,EAV2B,MAAA,MAAzB,EAaJ,6BAWQ,KADmB,MAAqB,MAAqB,MAEpC,KAApB,KAAY,MACI,KAAM,QAAV,GACnBysD,GAAAA,IAAwB,KAAM,MAAX,KACjBha,IADFga,GAEQ,MAFRA,EACQ,MADRA,GADmB,GAKgB,MACJ/mD,MAAQ,KAAM,MAAX,KAAA,OAAA,IAAA,IACV,IAG5B,SACgC,OAAA,KAA9B,MAC0B,KAAA,KAEV5D,GAAAA,IAAoB,MAAA,QAApBA,GAKd+vC,IAAA,KAAoB,EAApB,MALc/vC,GAON,KACR+vC,IAAA,KAACuc,IAAA,MAC0B,MAAA,QAAhB,IAET,KAAC5b,IAAA,KACe,MACPvwC,IAAAA,KAAkB,SAEnB,KAAM,MAFa,MAFtB,EAAA,IAAA,IAAA,IAAL,MAHiC,EAAA,KAAA,QAAnC,OADQ,KAoBU,KAAmB,MAAA,OACzC,iBAAA,gBACwCH,GAAAA,IAAoB,MAAA,QAApBA,GAOpC+vC,IAAA,KAAmB,EAAnB,MAPoC/vC,IAAL,OASvB,KACR+vC,IAAA,KAACuc,IAAA,MAC0B,MAAA,QAAhB,IAERtsD,IAAkB,MAACtE,IAOXyE,IAAAA,KAAkB,SAAiBzE,IAAO,KAAM,KAA9B,MAPE,EACjB,KADiB,IAAA,IAAV,MAHc,EAAA,KAAA,QAAnC,OADQ,KAkBZ,OACkB,KAAA,QACS,IACW,MAAC,GAAD,KAEV,KAAM,MAA4B,MAAA,IACzC6wD,IAA6B,KAAhB,MAEhC,GAAA,GAAA,IAAA,GAAA,OAAA,GACa,MAAX,GAkCiB,kBAIN,KACA,WALM,IAlCjB,KAGU,KAAM,MAAd,YAOqBC,IACOC,GAAAA,GAAqB,KAAM,MAAX,GAC/BC,MAMF,KANEA,EACTC,IAAAA,QACS,KAAPH,IACO,KACH,MAHD,OAOwC,SACxC,KACH,KAF2C,MAID,MAAW,KAAX,MAEnC,KAAqB,KAAhCI,IAAsD,KAAtDA,OACQ,KACR7c,IAAA,KAACW,IAAA,KAEMvvC,IAAA,QAAA,EAAA,OAFF,EAAA,IACoB,KACU,IAFnC,OADQ,KAgBd,KAvCM,KAuCN,EAAA,GAAA,EAES,MAAW,KAApB,GAA6B0rD,IAA7B,GACE5xD,MAAY,KAGV6xD,QAHU,MAKR,QAAgB,MAKxB,MACkB9sD,GAAAA,IAAoB,MAAA,QAApBA,GAKd+vC,IAAA,KAAoB,EAApB,MALc/vC,GAON,KACR+vC,IAAA,KAACuc,IAAA,MACgC,MAAA,IAE/B,KAAC5b,IAAA,KACe,MACPvwC,IAAAA,KAAkB,SAEnB,KAAM,MAFa,MAFtB,EAAA,IAAA,IAAA,IAAL,MAHiC,EAAA,KAAA,QAAnC,OADQ,KAoBK4H,GAAAA,IACR,KADQ,EAAA,MAEU,MACX,MACA,MACS,MACF,MACM,MACF,MACJglD,IACf,KAAM,MADqC,KAI3C,KAAM,MAAV,IAEQ,KAAM,MAFd,EACQ,KAAM,MADd,MAIKZ,GAEC,KAAM,KAFPA,KACH,IAAA,IAAqB,KAAM,KAA3B,OAjBS,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,EADE,OAsBG,KAAM,MAAoB,KAAQa,IAAtC,IAAH,MAGXjd,IAAA,KAACuc,IAAA,MAGyB,MACV3B,IAAwB,KAAM,MAAX,KACA,MACJ,MACE,MANxB,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAQN3qD,IAAkB,MAEX,KAAM,MAAV,GACI,MAA8B,KAGzB,MADX,EAAA,IALiB,OATU,EAAA,IAAA,IAA/B,MA+CM,KAAM,MAAd,GAQE,EANE+vC,IAAA,KAACW,IAAA,KAAYC,IAAM,MAAO,IAAA,IAEC,MAAA,IAFD,IAArB,EAAA,IAAA,IAAL,MADF,EAnLgB,GACRnrC,GAAAA,IAAmB,MAAA,KACf9J,IAAO,KAAM,KAAjB,GACEA,IAAO,KAAe,KAAA,KADxB,EAGF,EAc0C,GAAM,MAAL,EA2KrD,KACgC,KAAnB,KAAW,MACA,KAAtB,IAAsD,MAAtD,IAGM,MAA2B,OAAC,KAAD,KAUL,MACK,MAAA,IAGjC,KACuB,MADvB,EAGF,EAjBoC,GACzB,MAAuC,MAAA,MAC9C,EAmEJ,EACM,MAAiC,MAC/B,KACA,KAAM,MACN,KAH+B,SAKvC,EA6EA,OAC0B,MACL+tD,GAAAA,IAAiC,MAC9C,KACA,KAAM,MACuB,MAAK,KAAL,KAHiB,OAApC,IAMH,KAAC,KAAD,OAMf,EALSwD,GAAAA,IAAiB,SAAM,MAAN,KAAtB,GACUA,IAAD,EAAA,KAAP,IAEF,EAWJ,EACM,MAAgC,WAAU,KAAV,QAGtC,EAHgD,GACG,MAAA,MACjD,EAGF,aAIa,MAAT,GACE,SAIE,MAAyB,MACvB,KAAkC,MAAA,IAAe,MAAA,IACrD,KAyBA,KA3B2B,OAkC/B,EAAE,IACAhyD,MAAY,KAEL,UAFK,gBAKhB,EArCQqlD,GAAAA,IAA0D,MAAC,KAAA,OAAA,IAAD,KAArB,MACrCA,IAAI,KAAgCA,IAAkB,MAAC,KAAA,OAAA,IAAD,KAArB,MAIXA,IAAgC,MACpDA,IAAI,KAAyB,MAAA,IADuB,KAKpDA,IAAI,KAAe,MAAgC,MAAnDA,IAAAA,GACAA,IAAI,KAAe,KAAyB,KAA5CA,IAEF,GACEA,IAAI,KAA6C,MAAhB,MACjCA,IAAI,KAAsC,KAAhB,MAI1BA,IAAI,MAA0B,OAAC,KAAD,KANhC,EAUF,EAJmC,GACkB,MAAA,MACjD,EAGJ,EACErlD,MAAY,SAAA,OAId,EA6BN,EACyB,MAAA,QAAhB,IAAP,EAaF,OAEQ,KAAe,MACd,KAAe,MAAnB,MADD,IAEqB,IACD,KAAmB,MAAK,KAAM,KAAX,OACzC,IAC4C,MAAS,KAAT,MAIjC,SAAT,GACqB,KAAA,KANY,GAAnC,QAS8C,MACxC,KAAM,MAAoB,KAC1B,KAFwC,MAG7C,KAC6C,MACxC,KAAM,MAAoB,KAC1B,KAFwC,MAInB,KAAmB,KAA5BiyD,IAAAA,IACC,KAAe,KACf,KAAe,MAGhCnd,GAAAA,IAAA,KAACW,IAAA,KAAaC,IAAM,MAAP,IAAA,IAA0BA,IAAM,MAAhC,IACQ,KAAC,KAAD,KADuC,IAAA,IAc1D,KAAC,KAEGA,IAAM,MADD,IAAA,IAELA,IAAM,MAFD,IAIcwc,IAAZC,IACeD,IAAZE,IAFV,EAAA,IAAA,IAHK,IADJ,EAAA,MAAL,MAd0D,IAwB1D,KAAC,KAEG1c,IAAM,MADD,IAAA,IAELA,IAAM,MAFD,IAIWwc,IAATG,IACYH,IAATI,IAFV,EAAA,IAAA,IAHK,IADJ,EAAA,IAAL,MAxB0D,IAAvD,EAAA,IAAA,IAAL,MADF,EAEwB,GAClBxd,GAAAA,IAAA,KAACW,IAAA,KAGGC,IAAM,MADD,IAAA,IAELA,IAAM,MAFD,IAIG,KAAUwc,GAAAA,IAAXzuB,IACI,KAADA,IAFV,EAAA,IAAA,IAHK,IAFJ,EAAA,WACE,MADP,OADwB,EAqChC,GAOUisB,GAAAA,MAAwB,KAAM,QAAX,KAApB,GACI,KADJ,EAEI,KAFX,EAKF,GAOUA,GAAAA,MAAwB,KAAM,QAAX,KAApB,GAAqD,KAArD,EAAiE,KAAxE,EAGF,OAEQ,KADK,KAAc,MAAc,MAAuB,MAEX,KAA/B,MAAe,MAAQ,KACrBK,IAAAA,cAKtB,MAAA,EAME1B,IAAgCA,IAClC,GAEM,KAAM,MAAoB,OAAsB,QAAZsB,IAF1C,IAAA,IAIM,KAAe,MAAuB,MAJ5C,IASO,IAGwB,MAHxB,EAF+B,KAAe,MAAtB,MAChB,EAAA,KAAD,KARd,EAcF,EAuHA,EAC4B,KAAM,MAApB,KAAM,KAC4B,KAAjC,KAAe,MAAU,KAChB,KAAmB,MAAK,KAAM,KAAX,KAEXG,GAAAA,IACxB,KAAM,QADgD,KAGhCzB,OAAAA,QAG5B,IAEyC,MAAY,KAAZ,MAAmB,KAAxDe,IAESmD,IAATC,SAAyBC,IAAAA,GAAiBF,IAAjBE,GAAzBD,GAJJ,GAQA,OAAwBT,OAAxB,IAEgC,MAAW,KAAX,MAAkB,KAC7C3C,IADD,OAGAoD,GACAE,IADAF,GAECC,IAAAA,GAAgBC,IAAhBD,GAFDD,GAWJ,GAEO,MAFP,GAEkC,KAAM,MAFxC,GAGO,MAHP,KAKuB,MAGjB,MAAoC,MAAC,EAAA,KAAD,KACf,MAAA,IACzB,EAEI,MAAqC,MAAA,IAE7C,EAsNA,OAAA,OAAA,IAGE,IACI,MAA2B,KAAC,KAAD,OAWjC,EAXkC,GACzB,MAA2B,MAC9BvW,GAAAA,IACA0W,IAAI,KAAe,KACf,KAAe,MACf,MACA,MACC,MACL3C,OAP8B,MASlC,EAp2CF,aAKsC,MAAM,KAAN,KAEpCjlD,GAAAA,IAAAA,KACqB,OAAnBilD,IAAAA,GACqB,KAA4B,QAAnBA,IAA5BA,IADFA,GAEqB,KAAnBA,IACoD,SADhB,IAC8C,SAD9C,IAAA,QAAA,IAH/B,MAOc4C,IAAAA,MAAc,KAAA,UAAA,IAAA,IAErC,OACkB,IAAA,IAAuB,KAAAzpD,IAAA,OAAM0pD,IAAqB,IAA3B,KAAA,KACvC,GAAA,GAAA,IAAA,GAAA,IAAA,GACqB,MAAA,KACrB,EAAA,EAAA,GAAA,EAIS,MAAT,IAA6C,MAA7C,IACwBrE,GAAAA,IAAoC,MAAA,QACvC,MAAA,KAFrB,EAQ6B7lD,MAAS,MAAN,KAAA,OAAA,IAAA,IAChC6lD,GAAAA,IAA0C,SAIrB,WAJqB,IAQ5C,EAGF,KACsC,MAAM,KAAN,OAChBvtD,MAAU,KAACA,MAAQ,KAAS,UAAP,OAAF,MAAT,KAK1BA,MAAQ,KAEQ6xD,GAAAA,IAAiC,QAAN,KAAzCC,IAFM,SAAR9xD,IAHG,EAAA,IAAA,IAAP,EAUF,cAM4B,QAALg7C,MAAAA,GAEF+W,IAAnB,IAC0B,KAACC,IAAD,QAAxB,GADmD,GAArD,MAEuB,MAAC,EAAA,IAAA,IAAD,KACnB,EAGN,EA8HA,MAGyC,MAAS,KAAT,KACZ,MAAoB,MAAA,IAA/C,IAIyBzE,GAAAA,IAAqC,MACnD,MADmD,MAOf,MAAA,MAFxC,EAAA,KAAA,KAAP,EARE,EA2EJ,MAIsC,MAAM,KAAN,OACvBvtD,MAAQ,QAAC8wD,IAAoB,KAArB,MAEO7B,GAAAA,IACrB,QADiD,KAK/CwB,IAAAA,KAASK,IAAAA,IAA0C,OAA9C,OADP,EAAA,IAAA,IAAP,E,Q,K,I,K,K,I,K,I,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OChuBJ,IAAA,KAAA,KAAA,OAGA,IAAA,KAAA,QAE4C,IAAA,KAAA,IAAA,QAAA,OAEpB,IAAA,QACH,IAAA,KAsGa,KAAd,KAyDjB,QAsBW,MAAkB,EAxLY,IAAA,KAAA,OAAA,cAAAvtD,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAAA,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAyGxB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IA4EjBzE,IAAA,KAAA,MAAA,IArED,KAqEC,IAAA,IAAA,IAnEA,MAAA,IAED,KAFC,IAmEA,IA1CA,MAAA,IAED,KAFC,IA0CA,IAAA,MAnBA,EAzDiB,QAAAC,GAAAA,IAAA,KAAAqqD,GAAAA,IAAA,MAAA,KAAAhzD,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,QAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAAA,MAKG,MAAQpD,IAsDhB,KAAH,MAQTA,IAEe,KAAH,MAOZA,IAAA,EAhBCA,GAAAA,MAA0B,MAE1BA,IAAA,KAAU,MAAVA,GAAwBA,IAAA,KAAoB,MAAA,IAI5CA,IAAgB,MAAA,MAClB,EAQEA,GAAAA,OAAe,QACjB,EArEA,EACmC,KAAM,MAAb,QAC5B,EAEA,EAIU,KAAM,SAAyB,MAAvC,IAGM,KAAM,MAAoB,MADzB,IAED,MAFC,GAKHipD,GAAAA,IAAAA,KAAqD,MAC/C,MACA,KAAM,MAFyC,MAUtB,KAAM,MAAb,MAfrB,EAD4B,KAAM,MAAb,MAD5B,EAmBF,EAEA,EAYyD,KAArC,MAAY,MAAO,KAAUhjB,GAAAA,IAAA,KAAAwb,MAAA,MAE3C7W,IAAA,KAACse,IAAA,KAAwCtmD,IAAA,EAAA,MAE9B,MACM,MAFN,EAAA,IAAA,KAAA,EAD8B,OAAzC,MADF,E,qB,K,M,I,K,M,K,I,Q,O,M,SCzJN,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAxI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KA8CSmU,KAAsC,EACzD,QADyD,KAAjB,KAE1D,MAEagnC,SAAsB,KAErC,MAAA,EApD8B,IAAA,KAAA,OAAA,cAAAr1C,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,qB,K,M,I,K,M,K,I,Q,O,M,SCF/B,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KA0CSmU,KAAsC,EACzD,QADyD,KAAjB,KAE1D,MAEagnC,KAAyD,MAAA,KAEpD,QAFoD,SAAnC,MAGpC,MAAA,EAjD6B,IAAA,KAAA,OAAA,cAAAr1C,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Q,K,I,K,K,I,O,M,Q,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,QCI/B,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QAA+B,IAAA,KAE3BG,KAAQ,SAAZ,OACS,IAAA,KAIPA,KAAQ,SAARA,IAUQyuD,KAD+B,IAAA,IAE/BC,KAF+B,IAK/BD,KAD6B,IAAA,IAE7BC,KAF6B,IALjC,EAAA,KAAA,KARJ1uD,EAGQ2uD,KAD+B,IAAA,IAE/BC,KAF+B,IAIDH,KAAD,IAAA,IAA4B/F,KAA5B,IALjC,EAAA,KAAA,QADJ1oD,gB,S,gI,SADoC,MAAA,IAA+B,MAAA,IA6mB1B,IAyClBG,IAAK,KAAd,KAkmCb,KAlmCa,IAC6B0uD,IAAAA,KAA7B,MAomCDvuD,IAAAA,KAAiB,KAaF,MAAA,KAbG,EACjB,UADiB,KAOf,UAPe,KAAA,KAAD,KAApB,QAuBO,MACSH,IAAgB,MAAA,KAGd0uD,IAAAA,KAAH,MAEI,SAEjB,MAOgB,EAvyDC,IAAA,KAAA,OAAA,cAAAjvD,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAAA,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAsxDtBirC,GAAAA,IAAA,KAAC4e,IAAU5mD,MAAA,KAAA,MAAU,KAAA,KAAA,EAAV,OAAX,MAAP,EA1nCc,EAAA,KAAA,IAAA0R,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAUbzE,IAAA,KAAA,MAAA,IAkCD,KAlCC,IAAA,IAAA,IAmEA,MAAA,IAED,KAFC,IAnEA,IAiFA,MAAA,IAED,KAFC,IAjFA,IAoGA,MAAA,IAqOD,KArOC,IApGA,IA2UA,MAAA,IAqDD,KArDC,IA3UA,IAmYA,MAAA,IAED,KAFC,IAnYA,IAoZA,MAAA,IAED,KAFC,IApZA,IA+ZA,MAAA,IAED,KAFC,IA/ZA,IAybA,MAAA,IA0dD,KA1dC,IAzbA,IAAA,MAwlCA,EA/lCD,QAA0BC,GAAAA,IAAA,KAAA6qD,GAAAA,IAAA,MACxBpmD,IAAA,QAAA,MAAA,MAS4B,QAExB7O,MAAG,KAAA,OAAA,IAAA,IADQ,MAE0BA,MAAG,KAAA,OAAA,IAAA,IAA/B,MAEC,MACO,QACZ,MACiB,MACF,MAOW,MACP,MACF,MAEnB,MAEoB,MACA,MACD,MACA,MAEb,EAAA,KAAV,MAwEuB4sD,IAAAA,KAAiB,EAC1B,KAD0B,KAE9B,KAF8B,KAAD,KAA/B,MAoCmC,KAA9B,MAKiB,KAAlB,MAIiB,KAAlB,MAIwC,KAAzC,MAIqD,KAAlD,MA0BN,KAXJ,MAmDsD,KAAnD,MAgByB,KAAf,MAqBT,KAJ+B,MAiD/B,KATS,MAsDT,KALoB,MAoGhB,KAAH,MAoBG,KAAH,MASY,KAAH,MAMR,MAED,MACkBA,KAAiB,EAC7B,KAD6B,KAEjC,KAFiC,KAAD,KAA/B,MAoC8C,KAA/B,MAO+B,KAA/B,MAO8B,KAA/B,MAO+B,KAA/B,MAUyB,KAA7B,MAQ2B,KAA7B,MAa2B,KAA7B,MAgB2B,KAA7B,MAqBU,KAAlB,MAaqC,KAA5B,MAgBgB,KAAf,MAK6B,KAA5B,MA6C6B,KAAlB,MAOe,KAAlB,MAiC8B,KAA/B,MA8BsC,KAA/B,MAqDG,KAAlB,MA0BmB,KAAlB,MAIuB,KAAlB,MAWe,KAA5B,MA8B+B,KAA5B,MAgB2B,KAA5B,MAgB2B,KAA5B,MAn5BkBrL,IAAAA,KAAsB,MACpD,KAAU,QADgD,IAC1D,KAD0D,EAAA,OAAA,KAAA,UAAA,IAAA,IAAnC,MAGzB91C,IAAA,MAAmC,MAACA,IAAA,KAAU,QAAX,IAAC,KAAD,EAAA,OAAA,KAAoCA,IAAA,EAwGhDA,GAAAA,IAAA,KAAU,MAAhB,EACJ,GACXA,GAAAA,IAAmB,MAWnB,MAC2BA,IAAA,MAAH,MACE,MAAH,MACE,MAAH,MACE,MAAH,MACM,MAAH,MACP,MAAH,MACM,MAAH,MACa,MAAH,MACG,MAAH,MAEvB,MAD6C,MAVjD,EAaF,EAWA4kD,GAAAA,IAAA,KAAA5kD,GAAAA,MAAA,KAAA,EAIO3E,GAAAA,IAAAA,KAAe2E,GAAAA,IAAA,QAAD,KAArB,EAIO3E,GAAAA,IAAAA,KAAe2E,GAAAA,IAAA,QAAD,KAArB,EAIOA,GAAAA,IAAA,MAAP,EAIOA,GAAAA,IAAA,MAAP,EAyBU,WAaN,OAAJ,UAQO,GACM,KACA,KACO,MAHb,IAPLlK,MAAY,SAAA,cAYVkK,GAAAA,IAAA,QAAJ,IAGAq1C,GAAAA,IAAAA,KAAiB,MAACr1C,IAAA,MAAqBqT,KAAQF,KAAAA,EAAQs2C,gBAAtC,IACnB,EAHI,EAa0D,MAI1C31C,GAAkB,MAChC9T,GAAAA,IAAA,QAAJ,IAGAq1C,GAAAA,IAAAA,KAAoB,MAACr1C,IAAA,QAJJ,IAIG,QACtB,IAHI,EAWEA,GAAAA,IAAA,QAAJ,IAGAq1C,GAAAA,IAAAA,KAA8B,MAACr1C,IAAA,MAAD,OAChC,IAHI,EAmBQ,MAKVA,GAAAA,IAA+B0pD,KAAH,MAC5B1pD,OAAqC,GAAD,GAAH,MAE7B,QAAJ,OAII,OAAJ,IAS0B,MACtBA,IAAA,MACA,MAEA,MAJsB,OAT1B,EACEsJ,GAAAA,IAAAA,KAAuB,MAErBjO,IAAAA,KAAcupD,IAAA,KAAA5kD,MAAA,KAAA,KAEd,MACA,YALqB,IADzB,EAgBF,IAnBI,EAoCQ,MAUVa,GAAAA,IAAAA,KAAUnG,IAAAA,KAAQ,WAARA,QAAD,UACL,IAAJ,GAGW,OAAJ,MACL5E,MAAY,SAAA,KADP,EAFLkK,GAAAA,IAAqB,MAAP,MACd,KAOEA,GAAAA,IAAA,QAAJ,IAGAq1C,IAAAA,KAAmB,MAACr1C,IAAA,QAA2BypD,IAA5B,OACrB,EAHI,EAwBQ,UACYj7C,GAAAA,IAAAA,KAAc,SAAA,KAAU,KAEP,KAoBnCxO,GAAAA,IAAA,QAAJ,gBASgC,4BAJ9BgV,MAAW,OAAD,MAMd,EA9BQhV,GAAAA,IAAA,QAAJ,IACoBA,IAAA,MAAqB,MAAxB,GAAA,IAGf2pD,GAAAA,IAAMC,IAAND,IAAwBE,IAAxBF,IAAiC3pD,IAAA,MAAjC2pD,IAME,WAAJ,MACkB5yD,MAAQ,OAAA,MAE1BiJ,IAAa,MAAC,UAAA,MAAD,OAEe,QACK,QACnC,EAQI8pD,GAAAA,MAA8B,IAChC,EAiFF9pD,GAAAA,MAA0C,MAC1C,KAAU,MAAVA,GAAuBA,IAAA,KAAmB,SAAA,KAA1CA,EACF,EAEgB,GACVA,GAAAA,IAAA,KAAU,QAAd,IACEA,IAAa,KAAiB,KAAY,KAAO,KAAnC,EAAA,KAAD,KAEXA,IAAA,KAAU,KAAd,GACEA,IAAA,KAAmB,KAAA,KADrB,EAGF,EAEyB,GACE,KAAY,KAAzB,KAAQ,KACpBA,GAAAA,IAAA,KAAU,MAAVA,GACEA,IAAA,KAA8B,MAAA,MADhCA,EAEF,EAMyBA,GAAAA,IAAA,KAAU,MAAhB,EAEfA,GAAAA,OAAkB,QACpB,EAgC4D,GAG5DA,GAAAA,IAAyB,MAAJ,MACrB,KAAU,MAAVA,GAAiCA,IAAA,KAA6B,MAAA,KAA9DA,EACF,EAKEA,GAAAA,MAAqB,MACrB,KAAU,MAAVA,GAAiCA,IAAA,KAA6B,SAAA,KAA9DA,EACF,EAE6D,GAG3DA,GAAAA,IAAyB,MAAJ,MACrB,KAAU,MAAVA,GAAgCA,IAAA,KAA4B,MAAA,KAA5DA,EACF,EAKEA,GAAAA,MAAqB,MACrB,KAAU,MAAVA,GAAgCA,IAAA,KAA4B,SAAA,KAA5DA,EACF,EAMEA,GAAAA,IAAoC5L,GAAAA,IAAM,MAAgB,KAAA,IAAzB,MACjC,KAAU,MAAV4L,GAAoCA,IAAA,KAAgC,SAAA,KAApEA,EACF,EAME+pD,GAAAA,IAAAA,KAAyB,MAAA,IACzB/pD,GAAAA,IAAkC5L,IAAM,MAAgB,KAAA,IAAzB,MAC/B,KAAU,MAAV4L,GAAkCA,IAAA,KAA8B,SAAA,KAAhEA,EACF,EAUE+pD,GAAAA,IAAAA,KAA2B,MAAA,IAGzBrvD,IAAAA,KAAQ,SADV,IAEEsF,GAAAA,IAAA,KAAU,UAFZ,IAIEgqD,IAAAA,OAAe,IAGjBhqD,GAAAA,IAAA,KAAU,MAAVA,GAAgCA,IAAA,KAA4B,SAAA,KAA5DA,EACF,EAKiD,GAC3B,KAAY,KAO7BA,GAAAA,IAAiB,MAAA,IADpB,GAAA,GAEyB,OAFzB,IAE6C,KAF7C,IAIE+pD,GAAAA,IAAAA,KAAyB,MAAA,IAE3B/pD,IAAA,KAAU,MAAVA,GAA8BA,IAAA,KAA0B,MAAA,KAAxDA,EACF,EAQc5L,GAAAA,IAAM,MAAgB,KAAA,IAE1B4L,GAAAA,IAAA,MAANS,IAEiCwpD,IAAjCC,IAAAA,GACAlqD,IAAA,MAAkC,MAAlCA,IACF,EAOAA,GAAAA,MAA0C,MAC1C,KAAU,MAAVA,GAA+BA,IAAA,KAA2B,SAAA,KAC1DA,IAAuD,MAAA,IAApB,QACrC,EAYqC,EAAO,EAKO,GACjDA,GAAAA,IAAoB,KAAY,MAAQ,OAArBxG,IAAH,MAChB,KAAU,MAAVwG,GAAiCA,IAAA,KAA6B,MAAA,KAElD,MAAR,OAAJ,OAYkCmqD,GAAAA,IAAAA,KAAoC,MAAA,MACtE,IAEEnqD,IAAA,KAAU,QAFZ,IAGEA,IAAA,KAAU,UAHZ,IAIEA,IAA2B,MAAA,IAJ7B,GAKG,MALH,IAMGA,IAAA,MANH,GAOGA,IAAA,MAPH,GASEmqD,IAAAA,KAA4B,MAAA,KAT9B,EAWF,IAjBI,EAmCMnqD,GAAAA,IAAA,MAAD,GAAP,EAQIA,GAAAA,IAAA,KAAU,QAAd,IAGOA,IAAA,MAAP,IAFE,EAkCEA,GAAAA,IAAA,KAAU,QAAd,IAI8BmqD,GAAAA,IAAAA,KAAoC,MAAA,IAEhEnqD,IAAA,KAAU,UADZ,IAEEA,IAA2B,MAAA,IAF7B,MAGG,MAHH,MAOA,EAFE,IATA,EAyBgE,GAK9DA,GAAAA,IAAiB,MAAA,IAArB,MAKIA,IAAA,KAAU,QAAd,OAQoCA,IAAA,KAAU,MAE5C,GAAA,OAA8BoqD,IAEpB,MAAR,OAAJ,IAWIpqD,IAA4B,MAAA,IAAhC,GAIA,GAEEA,IAA2B,MAAA,IAF7B,GAGG,QAHH,IAKGmqD,GAAAA,IAAAA,KAA0B,MAAE,MAAF,KAL7B,GAOE,IAGF,IAbE,IALA,IAlBA,IALA,EAgD4BA,GAAAA,IAAAA,KAAoC,MAAA,MAQhEE,IAAAA,GACAF,IAAAA,KAA0B,MAAA,KAM1BnqD,GAAAA,IAAA,MAAAA,IAAAA,GAAiCA,IAAiC,MAAA,IAE7DsqD,MAAP,EASOtqD,GAAAA,IAAA,QAAAA,IAAAA,GAAiCA,IAAA,MAAqB,OAArBA,IAAxC,EAMOtF,GAAAA,IAAAA,KAAQ,SAARA,IAAAA,GAA6BA,IAAAA,KAAQ,SAARA,IAApC,EAQyC,GACpB,KACrBsF,GAAAA,IAA8B,MAAQ,OAAnBub,IAAH,MAEoB,KAAU,MAE5C,GAAA,OAA8B6uC,IAKED,GAAAA,IAAAA,KAAoC,MAAA,MACtE,IAEG,MAFH,IAGEnqD,IAA4B,MAAA,IAH9B,GAIEA,IAA2B,MAAA,IAJ7B,GAAA,GAOEmqD,IAAAA,KAA4B,MAAA,KAG9BnqD,IAAA,KAAU,MAAVA,GAAyBA,IAAA,KAAqB,MAAA,KAA9CA,EACF,EAQEA,GAAAA,MAAgB,MAChB,KAAU,MAAVA,GAA4BA,IAAA,KAAwB,SAAA,KAApDA,EACF,EAcEA,GAAAA,MAAgB,MAChB,KAAU,MAAVA,GAA2BA,IAAA,KAAuB,SAAA,KAAlDA,EACF,EAcEA,GAAAA,IAAA,KAAU,MAAVA,GAA0BA,IAAA,KAAsB,SAAA,KAAhDA,EACF,EA/2BA,kBACiB,KAAM,MAAjB,OAAJ,MACElK,MAAY,KAEJ,KAAM,QAAV,OAGM,KAAM,MAAV,MAAA,IAJJ,QAAA,QACkE,QAAA,IADlE,IADU,KAUUy0D,GAAAA,IAAAA,KAAgB,MAAA,IAAnB,QACO,MAESA,KAAoB,KAEnD,UAFmD,MAAvB,MAIGA,KAAoB,KAEnD,UAFmD,MAAvB,MAIEA,KAAoB,KAElD,UAFkD,MAAvB,MAIGA,KAAoB,KAElD,UAFkD,MAAvB,MAKC,MAAA,MACpC,EAEA,KACuC,QAATjH,GACf,MAAa,KAEK,KAAM,QAAV,GACnB,KAAM,MAAa,KAE3B,IACM,MAA+B,MAACkH,KAAD,KAGH,MAAA,MACpC,EAEA,EACU,QAAR,IACM,MAAqC,KAAA,IAEnC,MAAR,IACM,MAAqC,KAAA,IAEnC,MAAR,IACM,MAAoC,KAAA,IAElC,MAAR,IACM,MAAoC,KAAA,IAGlC,MAAR,GACM,MAAsC,MAAA,IAD5C,EAGF,EAqOA,EACE10D,MAAY,SAAA,OACd,EAqDA,MAC0B,OACjB87B,GAAc,KAArB,EAGF,EACU,MAAR,GACM,MAAsC,MAAA,IAGtC,KAAM,MADZ,GAEM,KAAM,MAAoB,OAFhC,IAKIkkB,GAAAA,IAAAA,KAAwC,MAClC,MAEmC,MAAR,EAAA,IAAhB,EAAA,KAAd,EAAA,IAAD,IAAA,QAHsC,OADP,MAJrC,EAWF,EAEA,QAKQ,MADN,GAG+B,KAAA,KAH/B,EAC4B,KAAA,MAD5B,EAKF,EAEA,QACoC,KAAM,MACxC,KACE,EAEiBj7C,GAAAA,IAAK,MAAiB,MAAK,KAAM,KAAX,KACT,MAAA,MAAhC,OAKqB,KAAY,KAAO,KACpC,MAAoB,KAAA,MAEwB,KAAA,QACA4vD,IAAD,MAC/C,IAC6B,MAAsB,KAC3B,MAAA,MAD2B,QAGjDC,GACgB,MADhBA,GAE+B,MAAA,KAF/BA,EAIJ,IAhBI,EA0eJ,eAEQ,KAAM,MAAV,IAEIC,GAAAA,IAFJ,EACIC,GAAAA,IAC6BvgB,GAAAA,IAAA,QAAA,QAHD,IAAoC,IAMhE,KAAM,MAAV,IAAA,GAAkCmB,IAAM,MADZ,IAAA,IAExB,KAAM,MAFkB,IAkBxB,KAAM,QAAV,IAGoB,MADhB,EAAA,OAI4B,KAAM,MACrB,KAAM,KAEzB,qBAAsD,KAAtD,iCACqB3wC,IAAK,MAAiB,MAAK,KAAM,KAAX,KAAzB,IAES,KAAC,KAAD,KA6BzB+vC,IAAA,KAACigB,IAAA,KAAiB,MACL,KAAM,MAAV,IAA8CC,IAAAA,MAA9C,EAAiCC,IAAAA,MADf,EAAA,IAAA,IAA3B,QAOA/0D,MAAa,KAACywD,IAAD,KAAbzwD,GAAsCywD,IAAmB,KAAnBA,IAGtC7b,IAAA,KAAmChoC,IAAA,EAAA,MAExB,MAKPlI,IAAAA,KAAQ,SAARA,MAAAA,GAEQ,KAAM,MARU,EAAA,IAAA,IAAA,KAAA,KAAA,IAAA,EADO,OAAnC,MAiBI,KAAM,MAAV,IAEQ,KAAM,MAFd,EACQ,KAAM,MAIV,KAAM,MAAV,IAES,KAAM,MAAX,GAFJ,EACQ,KAAM,MAIV,KAAM,MAAV,IAEI8wC,IAAM,MAFV,EACIA,IAAM,MAED5oC,IACF,KADE,EAAA,MAIF5H,IAAAA,KAAkB,MAAgB,KAAM,KAAtB,MAIX,MACa,MACF,MACH,MACC,MACC,MACW,MACZ,MACF,MACW,MACD,MAEzB,MACU,MACC,MACC,MACC,MACL,SACOgwD,GAEb,KAAM,MAER,KAAM,MAAV,GAAwC,KAAM,QAA9C,KAIe,KAAM,MAER,KAAM,MAENtwD,IAAAA,KAAe,MAGtB,KAAM,MAAV,IAAA,GACI,KAAM,MAAV,IADA,GAEI,KAAM,MAAV,IAGI,KAAM,MAAV,IAAA,GACI,KAAM,MAAV,IADA,GAEI,KAAM,MAAV,IAV2B,EAAA,KAAA,KAAD,KArCjB,EAAA,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAiCA,IAjCA,KAmCF,IAnCE,KAAA,KAAA,EADJ,OAoDoB,KAAM,MACrC,IAC2BuwD,IAAAA,KAAuB,KAA1B,MAGG,KAAM,MAEjC,GACMvwD,IAAAA,KAAQ,SAAZ,OAQWA,IAAAA,KAAQ,KAAZ,IAoBPkwC,IAAA,KAA4BhoC,IAAA,EAAA,MAAqB,MAAX,EAAA,IAAA,IAAA,EAAV,OAA5B,MADF,EAb2BsoD,IAAAA,KAAiBl3C,IAAAA,KAAkB,KAAN,KAAb,KAA3B,MAAO,MACZnZ,IAAkB,MAEfG,IAAAA,KAAkB,MAAA,MAA1B,EAAA,IACA4vC,IAAA,KAA4BhoC,IAAA,EAAA,MAEnB5H,KAAkB,MAAA,MAChB,MAFA,EAAA,IAAA,IAAA,IAAA,EADiB,OAA5B,MAHuB,OAAzB,EAZE4vC,IAAA,KAA4BhoC,IAAA,EAAA,MAAqB,MAAe,IAAA,IAAA,IAA1B,EAAA,IAAA,IAAA,EAAV,OAA5B,MADF,EAnIwB,iBACHgvB,GAAQ60B,GAAAA,IAA2B,KAAA,KACxD,IAsBE,EArBiB,KACCA,GAAAA,OAAoBgE,IAAD,IAEnCvqD,IAAI,KAAM,MAAVA,GAAoCirD,GAAAA,IAAAA,KAApCjrD,QAEA0qC,GAAAA,IAAA,KAE8BhuC,QAAlB,IAESsD,IAAI,MAAoB,KACzCA,IAAoB,MAAYkrD,IAAZ,MADqB,KAItBlrD,IAAI,MACfA,IAAI,KAAM,MACJA,IAAI,KAAM,MACRA,IAAI,KAAM,MAXR,EAAA,KAGf,KAHe,IAAA,KAOV,KAPU,IAAA,KAAA,KAAA,KAAA,KAAA,IACftD,MADP,OADF,EAIgBsD,GAAAA,IAAwB,MAACtD,GAAAA,OAAD,MAA5B,EAIWsD,GAAAA,IAA0B,MAACuQ,GAAAA,IAAc7T,OAAf,OAA9B,E,U,M,QClpD7B,IAAA,KAAA,KAAA,OAEyB,IAAA,KAAV,IAkBS,EAKJ,KALI,KA8BV,KA9BU,KAsCX,KAtCW,KA8Cb,KA9Ca,QAmDV,MAAmB,EA9Cb,GAKL,QAAX,IACEiE,GAAAA,IACEwqD,IAAAA,SADO,MAKPA,GAAAA,IAAAA,KAAJ,GAGoB,MAAR,GACoB,MAAR,GAFD,EACZ,GADY,KAEA,GAFA,KAIrBA,IAAAA,KAAsC,MAAA,KAE1C,EAOEA,GAAAA,IAAAA,KAAAA,GAAyBA,IAAAA,KAAgC,SAAA,KAAzDA,EACF,EAOEA,GAAAA,IAAAA,KAAAA,GAAyBA,IAAAA,KAAiC,MAAA,IAA1DA,EACF,EAOEA,GAAAA,IAAAA,KAAAA,GAAyBA,IAAAA,KAA+B,MAAA,IAAxDA,EACF,E,e,K,I,M,K,I,Q,O,WClEF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAjxD,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAYnC,SAAA,KAAyB,MAAA,EAZU,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,K,M,K,I,Q,S,K,QC0DzE,EA1Dc,yHAOb,OAEU,EAEA,IAEW/F,MAAW,KAAA,KAA9B,GAAA,GAAA,IAAA,GAAA,OAAA,GACE,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,UAqCuB,IAAR,IACX,QAPmB,IAAR,IASjB,KAAA,EAAA,GAAA,QAGK,EAAA,KAAA,KAAP,E,OCvD4B,SAAA,KAAV,I,QAMN,MAAmB,EAH/B21D,GAAAA,IAA4B,MAACA,IAAoC,MAAA,IAArC,OAC9B,E,U,M,Q,I,K,K,O,I,K,K,OCNA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAyFc,KAgGX,IAG2B,KAAA,OAAA,IAAA,OAAhB,MAA8B,EAnG9B,EAAA,KAAA,IAiBXzrD,GAAAA,IAAA,KAAA,MAAA,IA0BD,KA1BC,IAAA,IAAA,IAgCA,MAAA,IAOD,KAPC,IAhCA,IAyCA,MAAA,IAKD,KALC,IAzCA,IAgDA,MAAA,IAKD,KALC,IAhDA,IAuDA,MAAA,IAKD,KALC,IAvDA,IA8DA,MAAA,IAMD,KANC,IA9DA,MAAA,MA+EA,EAtFD,IAAcC,GAAAA,IAAA,KAAA4rD,GAAAA,MAAA,MANRpkB,IAAAA,KAGFzrC,IAAAA,KAAQ,WAARA,IAA+B4wD,IAAAA,KAA/B5wD,IAHoB,KAAA,UAAA,IAAA,IADhB,MAQU,SAAoB,KAApB,MAGA,SAAoB,KAApB,MAGlB,EALIsF,GAAAA,OAAsB,QACxB,EAEEA,GAAAA,MAAsB,QACxB,EA2BF,EAKa,MAAqB,WAAA,MAAhC,EAQF,EACM,MAA4B,SAAA,OAClC,EAMEgqD,GAAAA,IAAAA,OAAe,IACjB,EAKA,EACe,MAAL,GAAD,GAAP,EAMF,EACa,UAAX,IAAO,MAAP,EAOF,OACkC,KAAA,OAChC,MAAA,IACEuB,GAAAA,IAAAA,KAA6B,MAIlB5O,IAAAA,GAAkB4O,IAAAA,KAAe,MAAM,IAAvC5O,MAFD,EAAA,IAAA,IAFoB,EAAA,IAAA,KAAD,KAD/B,EASF,E,W,I,K,OC/LW,MAAA,QASb,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OAEyB,IAAA,KAAV,IASb3J,KAAgD,MAAA,IADb,kBAuFb,iBAKP,OACP,QAAA,IAEE,UAFF,IAME,UANF,KAUE,UAVF,IAPM,EAAA,KAAA,KAAA,OAqDPx+C,MAAa,MAAC,UAAD,KAQRA,MAAa,MAAC,UAAD,KAUS,KAAc,QAAd,MAGP,KAAc,MAAd,MAGA,KAAc,MAAd,MA3CL,EAAA,KAAA,IAAA,KAAA,KAiCX,KAjCW,KAAA,KAAA,KAAA,KAAA,K,KAAA,QAiDV,MAAmB,EArKJg3D,GAAAA,IAAH,MAC1B,EAUA,UAKM9wD,GAAAA,IAAAA,KAAQ,MAAZ,MAIK8wD,IAAL,GACE,EAS0B,OAQAx2C,MAEnB,SAAP,OAAA,oBAAA,IAFoC,MAAb,IAOoB5gB,MAAH,IAAG,MAC7C,IAAmB,MAAnB,GAaIkV,IAAJ,IAAIA,IAAS,MAAb,GACEA,IAAsC,SAEpCmiD,IAAuB,KAAvBA,GACAC,IACE,KAJkC,OAO1C,EApBIt3D,IAAA,IAAA,MAAM,IAAqD,MAGzDs3D,IACE,KAJuD,OAM3D,EApCA,EAcIC,GAAAA,IAAJ,KAGyB,MACzB12C,MAAa22C,MAAD,KACZC,MAAAA,IAAAA,IAAiB,IACnB,IALI,EAmBE,EAAa,EAWQ,EAAa,EAElC,EAAa,EAKrB,MAOY,EAAA,IAAA,KACA,EAAA,IACA,EAAA,IAAA,KAJH,KAAA,IAAA,IAAA,KAAA,IAAP,EA2EW,EACT/1D,MAAa,SAAA,OACf,E,e,K,I,M,K,I,Q,O,WC7KF,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAsE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAOtC,SAAA,KAA0B,MAAA,EAPY,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,M,O,M,K,I,Q,O,SCC7E,IAAA,KAAA,KAUgBo1C,SAAsB,KAErC,MAAA,E,qB,K,I,M,K,I,Q,O,M,QCTD,IAAA,KAAyF,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAv1C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,UAStD,IAAA,KAAjB,EAAA,IAoBqB,IAAA,KAAjB,EAAA,IACY,IAAA,KAAjB,EAAA,IACuB,IAAA,KAAjB,EAAA,IAEc,IAAA,KAAjB,EAAA,IAGkB,IAAA,KAAjB,EAAA,IA9BF,UAAA,MAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAJsC,MAAA,KAEnC,EAFmC,KAGrC,EAHqC,KAAA,KAAH,IAqCpD,MAG2B,KAEzB,KAFyB,MAK4B,MAAA,EA/CgC,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EA4C/EqO,GAAAA,IAAN,E,U,M,QClDJ,IAAA,KAAA,KAAA,I,QAmBc,MAA2B,EAjBzC,OAGE,QAKO,IAMP,EALSlO,GAAAA,IAAAA,KAAe,MAAC,UAAD,KAAtB,EALOA,GAAAA,IAAAA,KAAe,MAAC,UAAD,KAAtB,E,e,K,I,M,K,I,Q,O,M,WCAJ,OAAA,KAAyF,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAN,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAEhC,MAAA,KAEnC,EAFmC,KAGrC,EAHqC,KAItC,EAJsC,KAAH,IAKpD,MAG2B,KAEzB,KAFyB,MAKkB,MAAA,EAf0C,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAY/EqO,GAAAA,IAAN,E,qB,K,M,I,K,M,K,I,Q,O,SCfJ,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAxO,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KA8BfmU,KAAsC,EACjC,QADiC,KAAjB,KAOnC,MAAA,EArC6B,IAAA,KAAA,OAAA,cAAArO,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,e,K,I,M,K,I,Q,O,M,M,WCJ/B,OAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAIoC,MAAA,KAInC,MAECA,MAAa,MAAC,EAAA,KAAD,KAAqB,MACpCA,MAAa,MAAC,IAAA,KAAD,KAAsB,MAAA,EAXnC,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,qB,K,I,O,I,K,M,K,I,Q,O,M,S,I,K,QCM/B,IAAA,KAEgD,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,UADhD,IAAA,QACA,IAAA,KAAA,KAGEkG,KAAQ,SAARA,eA+DgC,MAAA,IAGF,MAAA,IAGX,MAAA,IAGS,MAAA,IAGF,MAAA,IAGF,MAAA,IAhBA,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,QA+BD,IAAA,KADD,EAAA,QAIC,IAAA,KADA,EAAA,KAkBA,IAAA,KADQ,EAAA,KA9BV,UAAA,MAAA,MAAA,MA2CVkZ,MAAkC,UAAD,K,KA3CvB,MAvBjB,MAAA,KAEsB,EAFtB,KAAA,KAAA,KA3DJlZ,KAKgC,MAAA,IAGF,MAAA,IAGX,MAAA,IAGS,MAAA,IAGF,MAAA,IAbF,EAAA,KAAA,KAAA,KAAA,KAAA,QAmBD,IAAA,KADA,EAAA,QAmBoB,IAAA,KAAjB,EAAA,IACY,IAAA,KAAjB,EAAA,IAEK,IAAA,KADC,EAAA,IAIY,IAAA,KAAjB,EAAA,IAKmB,IAAA,KAAjB,EAAA,IAGkB,IAAA,KAAjB,EAAA,IAlCF,UAAA,MAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KApBnB,MAAA,KAEsB,EAFtB,KAAA,KAAA,gBAFgD,IAuI9C,MAGqB,SAEzB,KAFyB,MAKW,MAAA,EAjJQ,IAAA,KAAA,OAAA,cAAAJ,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA8ItC6M,GAAAA,IAAN,E,qB,K,M,I,K,M,K,I,Q,O,S,I,K,QCpJJ,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxO,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,2BAA/B,OAA+B,IAAA,KAAA,IA0BX,MAAC,KAAD,KAgQLwG,KAAiB,KAKxB,EAAA,IALyB,EACvB,UADuB,KAAA,KAAD,KAApB,IAUyC,MAAA,EApStB,IAAA,KAAA,OAAA,cAAAV,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EA0BV,OAOV,MALC,IAKD,MAJS,IAIT,MAHO,IAGP,MAFY,IAEZ,MAEuB+1C,GAAAA,IAAAA,SAAQ,KAAgBjG,IAAA,QAAA,QAAzC,IAAA,OAAa,IACEiG,KAAQ,KAAW,KAAA,MAAnC,IAAA,IAAY,IACcA,KAAQ,KAAW,KAAA,MAAxC,IAAA,IAAiB,IACAA,KAAQ,KAAe,KAAA,MAA1C,IAAA,IAAe,IAAA,IAE9BA,KAAQ,KAA6B,KAAA,MADf,IAAA,IAAsB,IAAA,IAEdA,KAAQ,KAAgB,KAAA,MAAzC,IAAA,IAAa,IAAA,IAgB1Bwb,IAAAA,KAdkB,QAcN,MAEChb,MAkBb,IAAA,IAAA,IAAA,IAAA,IAjBA,KADoB,MAAV,IAqBwCR,KAClD,KAD0D,KAc3D,KAAA,MAdwB,IAAuB,IAAA,IAgBLiC,OAAM,KAAT,IACzBA,KAAM,KAAT,IAEZE,KAIG,IAAA,IAJO,KAAD,MAoBqBsZ,MAkB5B,IAAA,IAjBA,KADuC,MAAd,IAqB3BtZ,KA8FG,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IA9FO,KAAD,MA4GU,MAAc,MAAM,KAAN,OAI/BuZ,GAAYC,MAAZD,IAEuCC,IAAb,EAAA,IAAD,IAAA,IAAZ,EAAA,IADT,EAAA,OADJD,gBASAphB,IAAA,KAACiL,IAAA,KAAQ,KAEQ,MAIR,KAAM,KADN,IAAA,IAELrK,IAAM,MAFD,IAGQ,EAAA,IAAD,IAAA,IAAZ,EAAA,IAHK,IAQN3wC,IAAkB,MACV2wC,IAAM,MADY,EAAA,IAAA,IAAR,MAbP,EAAA,KAAA,KAzBE,KAyBF,IAAA,IAAA,IAAA,KAAA,IAAd,MAHF,EAvNoB,OAClB,MAGqB,KAAH,MAKkB,MACpC0gB,GAAAA,MAAYvsD,QAAQwsD,IAAwB,OAAA,IAAxB,KAAwB,GAAzB,KAAR,KACb,EATI,EAGAC,GAAAA,SAAoB,KACtB,EAYEC,GAAAA,QAAAA,OACI1W,GAAAA,IAAAA,KAAkB,MAChB2W,IACc,KAEGC,IAAD,IAAA,OAAUA,IAAV,IAFD,MAAA,KAAA,IAGG,QAHH,IAAD,KAKA,KAEI,cAAA,IAFH,EACC,QADD,IAAA,IAAD,KAIbC,IAAD,KAXgB,OAFxB,EAsBoC,UAAA,MAAA,IAERF,GAAAA,IAA+B,KAAC,EAAA,IADvB,QACuB,IAAD,KAKrDpH,MAAJ,IAGA,EAFSvP,GAAAA,IAAAA,KAAY,KAAoBuP,IAApB,MAAnB,EAUA+G,GAAAA,MAAJ,IAAwBA,MAAxB,IACEQ,MAA0C,MAD5C,EAGF,EAiBE,WAAO,KAC4B/xD,GAAAA,IAAAA,KAAQ,SAARA,OAAAA,EAGjC,IAAoB+xD,GAAAA,IAAkC,KAAtD,GACEA,MAA0C,QAC1C,EAEEC,GAAAA,IAAM,OAAV,MACEz3C,MAAay3C,IAAM,OAAP,KADd,IAGAA,MAAiB13C,QAAW,KAAD,MAAb,MAKhB,EAJQ3f,GAAAA,IAAU42D,GAAAA,IAAd,IACEU,IAAct3D,MAAD,KADf,EAGF,EAKM,MAC0B,UAAA,IAAA,IACC,QAE/Bu3D,GAAAA,IAAJ,MACMC,MAAJ,OA8CiB,KAACN,IAAD,KACC,KAAA,KAGQO,IAAAA,KAA0BN,IAA3B,IACDD,IAAtB,IAIiB,KAACA,OAAAA,IAAD,KACC,KAAA,KALlB,KACiB,QAAiBQ,IAAjB,MACC,KAAkBR,IAAjBQ,IAA0BA,IAA3B,MAFlB,KApCIC,MAAJ,OAC0BT,IAAUC,IAAVD,IAAyBS,IAAzBT,IACxB,IACiB,KAAA,KACC,KAAA,KACD,QAACU,IAAD,KACC,KAAA,KAIbH,IAAAA,KAA0BN,IAA3B,IAA0CQ,IAA1C,IACF,IACiB,KAAiBD,IAAjB,MACC,KACdA,IADc,MAiCiBT,IAA+B,KAAC,EAAA,IAAA,IAAD,KAKtEpH,SAAJ,IAC0BvP,GAAAA,IAAAA,KAAY,KAAwBuP,IAAxB,MAKlC8G,MAAJ,GACwD,KACpDkB,IADoD,KADxD,QAMAC,IAAqB,KAGd,KAAP,EACMC,GAAAA,IAAJ,GACEC,IAAoC,MAACD,IAAD,KAElCV,GAAAA,IAAM,OAAV,MACEz3C,MAAay3C,IAAM,OAAP,KADd,EAGF,EAGgB,GAChBY,GAAAA,IAAgB,KAAY,KAAO,OAAzB,KACVC,IAAqB,KAAY,KAAO,KAAzB,KACfC,MAAW,KAEXzb,IAAc,KAAA,KACAl3C,GAAAA,IAAK,MAAc,MAAM,KAAN,KACxB,KAAM,KAAf,GACO,KAAe,KAAA,KAExB,E,O,M,K,I,Q,O,K,WC5PF,SAAA,KAAA,IAiCC,EAjBc,MAEG,KADT7E,MAAA,KAAA,UAAA,IAAA,MACS,IADT,IAAA,IAAA,GACS,QACT+1D,GAAAA,IAAAA,MAWJ,IAAA,KACG3rC,IADH,KAVD,KADgB,MAAlB,EACE,aACoBA,GAAAA,IAAlB,GAAA,GAAA,IAAA,GAAA,IAAA,GACE,OACM,GAAJ,OAGa,MAHb,KACK,KAKT,EAAA,EAAA,GAAA,EACF,E,UC9BS,MAAA,KAAA,OAAA,IAAA,KAAA,OAEqB,IAAA,KAAV,IAwBP,KAoCd,OAGW,MAAe,EAvCZ,EAAA,KAAA,IAOdvgB,GAAAA,IAAA,MAAA,IAOD,KAPC,IAAA,IAAA,IAeA,MAAA,IACD,KADC,IAfA,MAAA,MA6BA,EAhCD,GAAmDC,GAAAA,IAAA4kD,GAAAA,MAAA,SACtC,SACG,MAChB,EAOA,OAAsC,KAAAvoD,IAAA,IAAAA,IAAG,IAAA,KAAHA,EAAA,IAC5B,MAAR,GACM,MAAmB,MAAA,IACX,MAAZ,GACgB,MAAA,IADhB,EAGgB,MAEpB,EACA,KACU,MAAR,eAGsB6Y,MAOf,MAP0B,KAAD,MAAb,IAQA,EAAS,KAAT,KAAH,MAClB,IAXI,EAGAhV,GAAAA,IAAmBk7C,GAAAA,IAAuC,QAAC,KAAD,KAA1C,QAMlB,EAHIl7C,GAAAA,MAAgB,MACF,MAAA,MAChB,EAE0B,EAAMiV,MAAaw4C,GAAAA,MAAD,KAAlB,E,E,QCjDlB,QAAS,EAVvB,SACE,IAGA,IAGA,EAFE,EAHA,E,W,K,I,K,M,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OCJJ,IAAA,KAAA,KAAA,IAQ2B,KAuIxB,IAAA,MAAA,EA/I+B,OAAAj5D,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAQP,EAAA,KAAA,IAuBxB2C,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAIA,MAAA,IAED,KAFC,IAJA,IA2EA,MAAA,IAED,KAFC,IA3EA,IA+EA,MAAA,IAED,KAFC,IA/EA,IA4FA,MAAA,IAED,KAFC,IA5FA,MAAA,MAgHA,EAnID,KAA8BC,GAAAA,IAAA,KAAA+pD,GAAAA,MAAA,MAC5B7nD,IAAAA,OACE6sD,QADO,MAKK,MAEd,OAMYA,IAFR,UAAA,MADc,IAAA,IAAH,MAHf,EACkB,IAAH,MAUjB,EAEA,EACa,MAAX,EAGF,KACE7sD,GAAAA,IAAAA,KACO,OAAL6lD,IAAAA,GACO,KAAa,MAAlBA,IADFA,GAEO,WAALA,IAFFA,GAGO,KAAY,MAAjBA,IAHFA,GAIO,KAAc,QAALA,IAAdA,IAJFA,MADO,MAWA,KAAa,KAAtB,OAI4D,MAAM,KAAN,KAAarc,IAAA,QAAA,MAApD,OAAmB,IACkB,MAAM,KAAN,KAAY,KAAA,MAAlD,IAAkB,IAItC,IAA6D,MAA7D,GACE,EAKuC,IACA,IACVznC,IAAA,EAAA,MACrB,IAAA,KAAA,EADqB,OAKb,KAAsB,KAAxC,IACoB,MAAlB,GAOsC,KAAjB,MAPrB,EACoB,KACK,KACF,KAAb+qD,IAFW,EAAA,IAAA,MAAA,KAAD,KAUL,KAAqB,KAAtC,IACmB,MAAjB,GAOoC,KAAhB,MAPpB,EACoB,KACI,KAAbA,IACY,KAFF,EAAA,IAAA,MAAA,KAAD,KAUqB,IAAA,KACzB,IAAA,IADyB,OAKhBC,IACvB,MAAS,MAAO,KAAA,IAAA,IADOA,IACP,IAEA,KAAA3uD,IAAA,KAAA,KAAA,KAFA,MAKtB,EAxDI,EA0DJ,EACa,MAAX,EAGF,OAEQ,MAAoB,MAAxB,IAAA,GACI,MAAS,KAAiB,MAAS,KAAvC,IADA,IAAA,KAEI,MAAe,MACjB,KADiB,KAHrB,EAII,MACQ,KAAW4uD,GAAAA,IAAK,MAAS,IAAG,KAAlCC,IAAAA,GACM,KAAUD,IAAK,MAAS,IAAG,KAAjCC,IADAA,GAEM,MAAcD,IAAK,MAAS,IAAG,MAArCC,IAHQ,EAQhB,aAEoB,MAAS,KAAb,MAEd,IACoB/2D,MAAU,KAAEg3D,IAAD,IAAD,KACH,MAAS,IAEP,KAA3B,IAA4D,KAA5D,IAEiC,KAA1B,IAE0B,WAA1B,IACMC,OADN,EADKA,OADL,MANT,IAaAntD,GAAAA,IAAAA,SAAe,QAAN,MACX,EATa,IAAA,IAAA,IAAP,E,a,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,OCtIR,IAAA,KAAA,KAAA,IAEwC,KA0DrC,IAAA,MAAA,EA1DqC,EAAA,KAAA,IAEYnC,GAAAA,IAAA,KAAA,MAAA,IAElD,KAFkD,IAAA,IAAA,IAajD,MAAA,IAED,KAFC,IAbiD,IA2BjD,MAAA,IAED,KAFC,IA3BiD,IAmCjD,MAAA,IAED,KAFC,IAnCiD,IA0CjD,MAAA,IAED,KAFC,IA1CiD,IAoDjD,MAAA,IAED,KAFC,IApDiD,MAAA,MAwDjD,EA1DqC,EAAAC,GAAAA,IAAA,KAAA4lD,GAAAA,MAAA,QACYhwD,MAAG,KAAA,OAAA,IAAA,IAAnC,MAC2BA,MAAG,KAAA,OAAA,IAAA,IAA9B,MAAgC,EAElD,QACEsM,GAAAA,IAAAA,KACO,MAAuB,KAAA,KAA5B,SADO,MAKa,MAAuB,KAAA,OAA9B,MAA+CpC,MAAG,KAAA,OAAA,IAAA,IACpD,KAAA,KACT,MAAuB,KAAA,MAEvB,MAAuB,KAAA,MAC7B,EAEA,KACsB,MAAuB,KAAA,KAC3CoC,GAAAA,IAAAA,OAAUotD,UAAD,MACL,MAA0B,KAAA,KAER,MAAuB,KAAA,KAC7CptD,SAAS,MACO,KAAA,KAEH,OAAb,IACM,MAA0B,KAAA,KAElC,EAEA,OAC4B,MAA0B,MAAA,IAApD,GAAA,GAAA,IAAA,GAAA,IACE,GAAA,GAAA,IAAA,GAAA,IACI,KACJ,EAAA,EAAA,GAAA,EACF,EAAA,EAAA,GAAA,EACF,EAEA,OACsB,MAAuB,QAAA,OAA9B,IAA2C,IACxD,GAAA,GAAA,IAAA,GAAA,IACI,KACJ,EAAA,EAAA,GAAA,EACF,EAEA,OACsB,MAAuB,QAAA,OAA9B,IAA2C,IACxD,GAAA,GAAA,IAAA,GAAA,IACQ,KAAN,GAGF,EAFI,KAAA,EAEJ,EAAA,GAAA,IACA,EAGF,EACa,MAAmB,KAA9B,E,W,I,K,I,K,MC3DS,MAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,IAMH,KAAA,IAAA,KAAA,IAsB8B,IAAH,OAClB,MACJ,IAUK,KA6BjB,OA6KW,MAAkB,EAlPnB,OAAArM,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAMH,GAAA+D,GAAAA,IAAAouD,MAAA,QACO,MACH,MACO,MACD,MACH,MACH,MACE,MACC,MACC,MACJ,MAAY,EAwBN,EAAA,KAAA,IAqCjBruD,GAAAA,IAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAOA,MAAA,IAED,KAFC,IAPA,IAkDA,MAAA,IAED,KAFC,IAlDA,IAuJA,MAAA,IAED,KAFC,IAvJA,IA2JA,MAAA,IAED,KAFC,IA3JA,IAkKA,MAAA,IA/LD,KA+LC,IAAA,IAAA,IAlLA,MAAA,IAED,KAFC,IAkLA,IA9KA,MAAA,IAED,KAFC,IA8KA,MAlKA,OARA,EAED,GAEEC,GAAAA,IAAA2kD,GAAAA,MAAA,QAhCgB,QACV,MAEUyJ,IAAI,KAAA,OAAA,IAAA,IAAjB,MACgB,MACJ,SA4BM,MACJC,IAAAA,KAAAA,EAAoBp3D,MAAW,MAAA,IAAhC,IAAH,MACE,MAAA,IACjB,EAEA,GACU,MAAR,GAAyB,QAAzB,IAE2B3C,GAAAA,IAAM,MAAgB,KAAA,IAAzB,MAFxB,EAIF,EAEA,KACW,MAAT,KACE,EAEgB,QAClB,OAKQ,MAAM,MAAgBg6D,GAAAA,IAA9B,UAKyBh6D,IAAM,MAAgB,KAAA,IAAtBA,IACVwO,IAAA,EACN,MADM,MACA,EAAA,KAAA,EADA,OAAA,IAuBf6nC,IAAkB,KAAC,KAAD,KACH,MAAA,IACjB,EA7BmB,MAAA,MACf,IALA,EA+BsCzpC,GAAAA,SAAD,KAAZ,EAI7B,cAoBS,MADP,MAEoB,MAAM,KAAN,KAFpB,OAGqB,KAA2B,KAHhD,OAIM,QAJN,OAQgE,MAAA,KAAA,KAAA,MAI5D,MAAM,MAAa,GAAA,MACnB,MAAM,QAAmBjK,MAAU,KAAA,KAAd,IAAA,MACrB,MAAM,MAAoBA,MAAU,KAACA,MAAQ,MAAA,KAAT,KAAd,IAAA,MACNA,MAAU,KAACA,MAAQ,MAAA,WAARA,IAAD,KAGlB3C,GAAAA,IAAM,MAAgB,KAAA,IAC1B,MAAR,IACM,MAAM,MAA2B,MAAVqM,IAAJ,IAAA,MAEF,MACf,MAAR,IACM,MAAM,MAA8B,MAAVA,IAAJ,IAAA,MAEF,MAGK,KACO,MAAA,MAER,WAD9B,OAAA,GAE6B,eAF7B,GAIoC,MAAA,MAC7B,GAJuB,WAD9B,OAAA,GAE6B,eAF7B,KASA,KAAA,IACa1J,MAAQ,KAEjBA,MAAQ,KAAc,KAAVs3D,IAAJ,MAFS,MAMS,KACO,MAAA,MAER,WAD7B,OAAA,GAE2B,eAF3B,GAImC,MAAA,MAC7B,GAJuB,WAD7B,OAAA,GAE2B,eAF3B,KASA,GAA0C,MAAM,KAAN,QAAlBtc,MAAxB,IAC8B,KAAmB,KAA5Buc,IACLv3D,MAAQ,KAEpBA,MAAQ,KAAImuD,IAAAA,IAAJ,MAFY,MAKHnuD,MAAU,KAACw3D,IAAD,KACbC,IAClB,cASO,IAA0Bz3D,MAAQ,MAAA,QAAlC,OACkB,MAAA,IADlB,EARkB,MACnB,MAAM,MAAoB,IAAA,MAC1B,MAAM,MAAgB,GAAA,MACtB,MAAM,MAAa,IAAA,gBACvB,IAC4B,MACtB,MAAM,MAAmB,GAAA,MAKjC,EAzEE,EA4EJ,GACa,MAAX,EAGF,KACyB,MACNm3D,GAAAA,IAAI,KAAA,OAAA,IAAA,IAAX,MACgB,MACJ,QACxB,EA/LA,KAIMC,GAAAA,MAAJ,MACEr4D,MAAY,SAAA,KADd,IAGA20C,IAAe,KAAA,KACR,EACG,KADH,IAAP,EAEiBA,GAAAA,IAAiB,OAAC,KAAD,KAApB,MACZ,EAD6CtiC,GAAAA,OAAAA,IAAJ,EAMhC,MAAA,MACb,EAGiB,MAAA,MACjB,E,qB,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OCrEF,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA/N,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,2B,SAchB,MAH4B,KA6DxC,KA1D0B,MAAA,EAdE,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,KAAA,IAAAyH,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAWY,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IASxCzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAsBA,MAAA,IAED,KAFC,IAtBA,IAAA,MAoDA,EAvDD,EAA0BC,GAAAA,IAAA,KAAAmlD,GAAAA,MAAA,MACxB1gD,IAAA,QAAA,QAHiB,MAIS,MAAA,IAAG,EAG/B,YAIM,OAAJ,IAcEo8B,GAAAA,IAAA,KAAAprB,IAAA,KAAA0vC,GAAAA,IAAA,KAAA,SAAA,OAAA,KAAA,yBAbAtkB,GAAAA,IAAA,KAAAprB,IAAA,KAAA0vC,GAAAA,IAAA,KAAA,SAAA,OAAA,KAAe,KAAf,OAeJ,EAfmB,IACb5jD,GAAAA,MAAwB,MAGhBuuD,UAAY,MAIlBvuD,MAAwB,MAE1B,EALE,EACA,EACQ,EACRA,MAAwB,MAC1B,EAQN,IACY,IACe,KAAf,IAAe,KAAR,MAEjB1L,MAAqB,KAAgB,EAChC,KADgC,IAQhC,KARgC,QAAhB,OAYrBA,MAAqB,KAAgB,EAChC,KADgC,IAQhC,KARgC,QAAhB,SAYvB,EAtBMqM,GAAAA,IAAAA,KACG6tD,GAAAA,IAAI,MAAL,SADO,MAIF3c,IAAP,EAGK,MAAA,MACP,EAIElxC,GAAAA,IAAAA,KACG6tD,GAAAA,IAAI,MAAL,SADO,MAIF5zB,IAAP,EAGK,MAAA,MACP,E,Q,K,I,K,I,K,I,K,I,K,MCvEO,MAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAIY,IAAA,KAAV,IA8DQ,KAqPpB,OAsCW,MAAqB,EA7VtB,OAAAtmC,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAgG,GAAAA,IAAA9F,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA0Tb,SAQM4yD,GAAAA,MAAkB,OAAtB,GAGiBC,IAAiB,UAEvBC,MAAyCC,IAAzCD,EAAeC,IAAfD,GAAP,OACKE,IAAP,IALA,EASJ,EAKwBh4D,MAAQ,WAAA,MAA2BA,MAAQ,UAAA,MAA3CA,IACfA,MAAQ,KAAA,MAAf,EAGF,QAKS4yD,IAAAA,MAAYqF,IAAZrF,GAAwCqF,IAA/C,EAxRqB,EAAA,KAAA,IAWpBnvD,GAAAA,IAAA,MAAA,IAKD,KALC,IAAA,IAAA,IAUA,MAAA,IAKD,KALC,IAVA,IAsFA,MAAA,IAMD,KANC,IAtFA,IA6KA,MAAA,IAKD,KALC,IA7KA,IAoLA,MAAA,IAKD,KALC,IApLA,IA2LA,MAAA,IAED,KAFC,IA3LA,MAAA,MA0OA,EA9OD,OAC2B,KAAA1D,IAAA,IAAAA,IAAG,EAAA,KAAHA,EAAA,IAAwC2D,GAAAA,IAAA6kD,GAAAA,IAAA,QANrD,QACalmD,MAAG,KAAA,OAAA,IAAA,IAAvB,MAC2B,IAAlB,MAC6BlK,MAAG,KAAA,OAAA,IAAA,IAAlC,MAKA,MACd,EAKA,GAIM,MAAgB,OAAC0gB,MAAD,OACtB,EAKA,yBAmBsC,MAAM,KAAN,QAE9B,KAD4B,MAAkC,QAE/Cg6C,OACYJ,MAGjChuD,GAAAA,IACEquD,IAAAA,GACGC,IACEF,IADFE,IADHD,IADO,MAMe,IACxB,UAIsBE,MAAgCvH,IAAjB,EAAA,IAAA,OAAzB,KAAM,KAClB,WAOA,OACiC,YAC/B,GAGmB,KAAP5C,IACgB,KAAb0E,IACf,IAAA,aAcO,MAXH0F,IAMS,sBANE,aADb,GAUsB,KAAA,cAnBY,MAAtC,IAyBA,IA/BEv5D,MAAY,KAERgD,MAAc,MAAC,EAAA,KAAA,KAAD,SADhB,IADU,KAIL,IAAP,EATA,EA2CJ,mBA6BsC,MAAM,KAAN,KAE7B,KAAQ,MADf,GAC2C,MAD3C,QAAA,OAGkB,MAHlB,MAOqC,IACrC,GAC6C,wBAAA,IASvC,MAAiB,KAA2B,KADlD,cAEM,MAAuB,MAAC,KAAD,KAF7B,MAQwBw2D,IAAH,MACb,KAAQ,MAAhB,GAkBoB,MAEhBA,gBAFgB,gDAjBQt6C,MAWnB,KAAQ,MAXsB,KAAD,MAAb,IAenB,MAAY,KAACsjB,IAAD,KASpB,EA5BI,EAlBA,EAc6Cg3B,GAAAA,OAAe,OAArBp8C,IAAL,EAYhClT,GAAAA,IAAI,MAAe,KAACs4B,IAAD,KACnBt4B,IAAkB,MAChB+xC,IACAud,IACA/L,IACAgM,OAJgB,MAMpB,EAmBsB,OAAH,QACvB,EAKA,KACqB,QACrB,EAEA,uBAAA,OAAA,cAaE,IAEsD,KAAC,KAAD,KAGhC,QACAh7D,MACM,KAAC,KAAD,KADH,KAAA,OAAA,IAAA,OAOT,IAChB,GAAA,GAAyC0R,GAAzC,IAAA,GAAA,IAAyCA,IAAA,MAA1B,IAAU,OACL,KAAA,KAAlB,MACc,QAAA,KAEhB,EAAA,EAAA,GAAA,KACA,GAAA,GAAA,IAAA,GAAA,IAAyCA,IAAA,MAA1B,IAAU,OACL,KAAA,KAAlB,MACc,KAAArD,IAAA,KAAA,MAAa,EAAA,KAAA,EAAb,OAAA,KAEhB,EAAA,EAAA,GAAA,KACW,KAAX,OACqB,MAEF5M,MAAU,MAAiB,MAAA,IAAjB,QAEF,KAHF,EAAA,KAAA,KAAA,QAAD,KAM1B,EA7BIkK,GAAAA,IAAI,MAA0B,QAAA,KADyB,EAMpCqvD,GAAAA,IAA0Bxd,WAAX,OAChB,KAAT,IAAA,IAAA,IAAP,E,qB,K,I,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OC3RR,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA33C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,mC,S,SAA/B,OAA+B,IAAA,KAAA,IA8CuB,KAArB,KAqB9B,KArB6D,MAuLjDwG,KAAiB,KACzB,MAAA,KAGO,MAAA,KAGG,MAAA,KAPgB,EAAA,KAAA,KAAA,KAAD,KAApB,IAUT,EA/O4B,IAAA,KAAA,OAAA,cAAAV,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA8CE,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAoE9BzE,IAAA,KAAA,MAAA,IAjBD,KAiBC,IAAA,IAAA,IAbA,MAAA,IAED,KAFC,IAaA,IATA,MAAA,IAWD,KAXC,IASA,IAyCA,MAAA,IAED,KAFC,IAzCA,IAgHA,MAAA,IAzKD,KAyKC,IAAA,IAAA,IAhHA,OA/CA,EArB8B,QAAAC,GAAAA,IAAA,KAAA6wD,GAAAA,IAAA,MAAA,KAAAx5D,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,QAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAAA,IAOd,KAAU,MAFT,IAAA,KAAA,KADI,EAAA,KAAjB,MAKJpD,IAiBa,EACD,KADC,KAOC,KAPD,KAaC,KAbD,KAAH,MAuBVA,IAYW,KAAH,MAORA,IAAA,EAxCkCA,GAAAA,IAAA,KAAjB,MAAa,MAC3BA,IAAA,KAA6B,MAAC,IAAA,IAAA,IAAwB,IAAA,KAAzB,QAG/B,EAEiCA,GAAAA,IAAA,KAAjB,MAAa,MAC3BA,IAAA,KAA6B,MAAC,IAAA,IAAA,IAAwB,IAAA,KAAzB,QAG/B,EAKiCA,GAAAA,IAAA,KAAjB,MAAa,MAC3BA,IAAA,KAA6B,aAC1ByvD,OAAD,IAAA,OAD2B,QAI/B,EAcAzvD,GAAAA,IAAA,KAAU,MAAVA,GACEA,IAAA,KAAuB,MAErBA,IAAA,KAAU,MACVA,IAAA,KAAU,QAHW,OADzBA,EAMF,EAjBA,OAAA,IACe,KAAC,KAAD,OAGf,EAFkB4C,GAAAA,OAAW,QAAX,EAAA,MAA+BynB,GAAAA,IAA/B,MADQ,EAAA,KAAL,EAKrB,EACM,KAAgB,MAAK,KAAM,MAAX,OACtB,EAWA,cAME,GAAA,KACEv0B,MAAY,SAAA,KAMd,GAcA,GAQA+K,GAAAA,IAAAA,aAAS,MAIX,EARsB,MAHA,EAAA,KAAA,IAAA,OAAD,KAAjB,EAROhG,GAAAA,IAAmB,KAGR,MAH4B,EAAA,KAAA,IAAA,KAApB,MAA1B,EAqBJ,IAcU,KAZe,MACC,MACL,MACZ,MACS,MACD,MACH,MACN,MACC,KACS,MACI,MACR,MAEuB,SAAA,IAQhCksD,GAAAA,GAAkD,MAAA,MAAlDA,GACI,KAAM,QADVA,GAGO,MAGYlsD,GAAAA,IAAoB,MAAA,QAApBA,MAElBgsD,GACEjc,IAAA,KAAuBhoC,IAAS,KAAM,MAAf,EAAA,MAAvB,MADFikD,GAGcG,MAIdhD,GACCxY,IAAM,MAAP,IAAA,IAAA,OALcwb,EAEXxb,IADHwY,GAES,MAAP,IAAA,IAAA,IAFFA,EACS,MAAP,IAAA,IAAA,OADFA,GAmBFpZ,IAAA,KAba,GACZW,IAAA,KAGoC,IAAA,IAAA,IAHhC,EAAA,IAAA,IAAA,KAAA,IAAL,MADa,EAaS3oC,IACZ,KADY,EAAA,MAIe,IAAA,IAAA,IAHrB,EAAA,IAAA,IAAA,KAAA,IAAA,EADM,OAAtB,MAWAgoC,IAAA,KAACuc,IAAA,MAAgD,KAAM,MAApB,EAAA,KAAA,IAAnC,MADF,EA/JgBvkD,GAAAA,OACA,QADA,EAAA,SAEM,MADS,EAAA,KAAA,EADf,OADT,EAAA,KAAP,E,qB,K,I,K,I,K,M,I,K,M,K,I,Q,O,K,M,M,K,M,K,S,I,K,K,OCpEJ,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAA/B,OAA+B,IAAA,KAAA,IA2BV,MAAA,KADuC,IAChC,MA4E3B,EAvG8B,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAmCxB,GACG,KAKN6uC,GAAAA,IAAA,KAACmZ,IAAsB,MAAS,IAAA,IAAA,MAAhC,MADF,EAUK,KACG,KACH,KAAA,IAMWjT,GAAAA,IAAAA,MAUP,MADP,IAAA,IAEO,MAFP,IAGO,MAHP,IAIO,MAJP,IAKO,MALP,MARA,KADqB,MAkBrBlG,IAAA,KAACmZ,IAAsB,MAAS,EAAA,IAAA,IAAhC,MADF,EAdsB1uD,GAAAA,IAAK,MACN,MACe,MACJ,MACE,MANzB,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAP,EA0BG,KACE,MAAA,IACC,KAMY+1C,GAAAA,IAAAA,MAAW2Y,MAAD,KAAb,IACDjT,IAAAA,MAEd,IAAA,IAAA,IADA,KADqB,MAKrBlG,IAAA,KAACmZ,IAAsB,MAAS,EAAA,IAAA,IAAhC,MADF,EAHS2L,GAAAA,MAAAA,IAA0B9sD,GAAAA,IAAA,EAAO8sD,MAAP,MAAoBzB,IAAF,EAAA,KAAA,EAAlB,UAAjC,E,W,K,I,K,MCjGS,MAAA,OAAAz5D,MAAA,KAAA,IAAA,QAAA,O,KAAA,MAAA,M,KAAA,MAAA,SAAA,IAAA,KAAA,KAAA,IAuPZ,EA9OM,kBAWY,SAAA2H,IAAA,OAAAA,IAAA,IAEmB,MAAM,KAAN,KACrB,IACgC,aAA/C,OAC+B,IAEjB0rD,MAEZ,IAEuB8H,IAAAA,IAATC,IACiB,MACE,KAALrrD,IACI,KAAe,KAApBA,IAAD,IAIxB,IAAA,IAAA,IAAA,IAKO,IAGc,aACnB,EAHOsrD,IADF,EADGA,OAJV,YATF,IALiE,GAApB,KAA/C,OA4BA,EASK,MAaC,KACA,KADJp0B,MAGA1kC,MAAQ,KAEFA,MAAQ,KAAK,KAAW,KAAhB,SAAZ,IAAqCA,MAAQ,KAAK,KAAY,KAAjB,MAA7C,MAFM,MAHR0kC,IAAAA,IADF,EAiBK,gCA4B+B,MAAM,KAAN,KACpC,OAGsE,KAAA,KAAA,MAAA,WAArBq0B,OAAAA,EAK5B/4D,MAAQ,KAAA,MACVg5D,OACK1L,IAAD,OAMrBkE,UAAyBA,OAAAA,GAELxxD,MAAQ,eAEb,IAAfg5D,IAF4B,MAIVh5D,MAAQ,KAAIi5D,IAAJ,MAGJnI,IAAD,MAAsB,KAA3CoI,IACF,OASiDC,GAAAA,IAC/C,IAAA,IAAA,IAAA,IAAA,kBADyE,IAK1E7lB,IAAA,QAAA,MALiB,IAAO,OAAM,OAAc,QAM7B8lB,OACR5K,IAAgBxuD,MAAQ,KAAA,MACjBq5D,IAAuBvI,IAEpC9gB,IACIhwC,MAAQ,KAAewuD,IAAAA,IAAf,MAEE,EAAA,IAAA,IAMG8K,IAAa,YAG9B,IAAA,OAIoBC,IACkB,KAAb/K,IAAAA,GAAmC,KAAZA,IAE9CA,IAAAA,GAA0B,GAAA,GAAgB,GAAhB,GACQ,KAAZxe,IAAAA,GAAgC,KAAXA,IAE3CA,IAAAA,GAAwB,GAAA,GAAgB,GAAhB,GAC1B,GAAA,GAAA,SAOA,GAAA,IAAA,SAAA,MAIE,GACc,GAET,MAPP,SASA,MAAA,IAAA,YAAA,SAIE,GACc,GAEV,MAPN,KAUF,IAAA,IAAA,IAAA,IAAA,IAOoB,KAPpB,IAQmB,KARnB,IAWYlxC,MAENiD,MAAc,MAAC,EAAA,IAAA,IAAA,KAAA,KAAA,KAAA,KAAD,SADhB,IADa,KAAA,OAAA,IAAA,IAAf,EAYK,EAAA,IAAA,IAAP,EAxFW/B,MAAQ,KAAI8wD,IAAAA,IAAJ,MACTA,IAFD,EAAA,IAAA,IAAP,EA3BO,UAAP,EAuHG,KACD,OAAA,IAAJ,OAAgCjxB,IAAI,KAApC,IAGA,OAAgCA,IAAI,KAApC,MAGO79B,SAAM,KAAb,EAFa,KAAX,EAHW,KAAX,E,E,K,MCzPYkE,MAAM,MAANA,GACZ,K,SADS,I,QAgDC,QAAc,EA5C5B,MACI,IAGIszD,GAAAA,MAAS,KAAb,GAAwBA,IAAS,KAAjC,KAGA,IAFI,IAHA,EAOR,QACiB,KAAsB,KAAnC,IAG6B,KACpBC,KADT,IACSA,IAAiB,IAAe,IAAzB,MAAZ,KACI,EAF+B,GAAV,KAA7B,MAKA,IAPI,EAUR,OACI,IAAoCC,GAAAA,IAApC,mBAEe,IAAH,MAEE,IALlB,KAoBI,EAdA,OACkB,IACiB,KAA/B,IAC2B,IAAZ,IAD2B,GAAX,GAA/B,IAGIC,GAAAA,IAAJ,GAAkBC,IAAlB,IAAuCH,IAAiBI,IAAV,MAA9C,GAGaC,IAAc,KAAA,MAAjB,MACA,IACF,IACA,IACR,EANWC,IAAP,EApCR,GACW,OAAA,IAAA,GAA6Bz7D,IAApC,E,qB,K,M,I,K,M,K,I,Q,O,SCQR,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAA+E,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAEf6hD,KACb0a,KADoC,KAEtC,MAAA,EAJ8B,IAAA,KAAA,OAAA,cAAAz2D,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,K,K,I,KCgBjB,MAA4B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EA9BjH,SACE,GACqB,OAAA,QACH,KAKV,KAAR,KAGEwD,MAAe,QAAA,KAAY,WAAA,MAH7B,QACS,KAIX,EATI,KACM,KACN,EAQJ,KAAA,IACS,KAAP,EAAO,MACG,IACF,EAAA,MACKA,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,KAAA,OAAA,IAAA,KAAA,IAAA,KAAA,IACPif,GAAAA,IAAQ,KAACub,GAAAA,IAAM36B,IAAP,MAAX,MAOF,KACP,EANIozD,GAAAA,IAAmBC,GAAAA,IAAKpqD,IAASC,IAAQoqD,IAAOC,eAA9B,IACpB,EAEEH,GAAAA,IAAmBC,GAAAA,IAAKpqD,IAASC,IAAQoqD,IAAOC,eAA9B,IACpB,E,e,K,I,M,K,I,Q,O,WCfN,OAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA/2D,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAKV,MAAA,KAMC,MAAA,EAXS,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,qB,K,M,I,K,M,K,I,Q,O,SCE/B,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAEhB,EAAA,KAYd,MAAA,EAd8B,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,qB,K,I,O,I,K,M,K,I,Q,O,M,S,I,K,QCS/B,IAAA,KAE6C,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,UAD7C,IAAA,QACA,IAAA,KAAA,KAsBEkG,KAAQ,SAARA,eAsDsB,MAAA,IAGD,MAAA,IAGH,MAAA,IAGM,MAAA,IAGP,MAAA,IAGG,MAAA,IAhBI,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,QAuBD,IAAA,KADJ,EAAA,QAIO,IAAA,KADH,EAAA,OAOG,IAAA,KADP,EAAA,IAXE,UAAA,MAAA,MAAA,KAcVkZ,MAAkC,UAAD,K,KAdvB,MAvBjB,MAAA,KAEsB,EAFtB,KAAA,KAAA,KAlDJlZ,KAKsB,MAAA,IAGD,MAAA,IAGH,MAAA,IAGD,MAAA,IAGG,MAAA,IAbI,EAAA,KAAA,KAAA,KAAA,KAAA,QAsBE,IAAA,KADP,EAAA,IAYO,IAAA,KADJ,EAAA,IAII,IAAA,KADL,EAAA,IAlBE,UAAA,MAAA,MAAA,MApBnB,MAAA,KAEsB,EAFtB,KAAA,KAAA,gBAFgD,IAiG9C,MAGqB,SAEzB,KAFyB,MAKU,MAAA,EA9HM,IAAA,KAAA,OAAA,cAAAJ,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA2HnC6M,GAAAA,IAAN,E,qB,K,IC1ISpU,MAAA,KAAA,IAAA,QAAA,OAAA,MAAA,QAUb,IAAA,KAAsF,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA4F,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,UAkBhE,IAAA,KADP,EAAA,IAHI,UAAA,MAJsC,MAAA,KAEnC,EAFmC,KAGrC,EAHqC,KAAA,KAAH,IAYpD,MAG2B,KAEzB,KAFyB,MAKC,MAAA,EA9BwD,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EA2B5EqO,GAAAA,IAAN,E,aCrCS,MAAA,OAAApU,MAAA,KAAA,IAAA,QAAA,O,KAAA,SAAA,IAAA,KAAA,KAAA,OAKb,IAAA,KAAA,KAAA,IAgEC,EA1DM,OAGQ2V,GAAAA,IAAAA,KAA6B,MAAX,KAI6C,MAAA,MAAA,MAAA,MAAA,KAAA,KAExC,MACpC,QAC6C,MAD7C,EAGA,IAC4B,MAE5B,IAoCO,6BACM,EAAA,KAAA,IAAA,IAAA,IAAD,IAAA,gDApCS,IAAH,IACe,SAAA,OAEA,IACb,KAAC,KAAD,KAiBdinD,IAAJ,GAAA,IACEC,IAAe,KACJ9xB,IAGT+xB,IACAzH,IALc,EAAA,OAAA,IAAA,KAAA,IAAA,IAAD,KAQbwH,IAAU,OAAd,MACEv7D,MAAY,SAAA,KAGJu7D,IAMZ,EApCqB,OAC0B,SAAA,KAAKhnB,GAAAA,IAAA,UAAA,QAAtC,OAAA,IAAQknB,OACE,UAAA,QAApB,KACEz7D,MAAY,SAAA,KADd,IAKgBqV,MAAqB,KAAA,KAAK,OAAlB,MACjByB,MAAK,KAAV,KAGImB,IAAsBqjD,GAAAA,IADG,GAAA,IAE3BC,IAAe,KAAW9xB,IAAqB+xB,IAAOzH,IAAtC,EAAA,IAAA,IAAA,KAAA,IAAA,IAAD,KAGrB,E,K,M,K,I,Q,S,K,QCrCH,EAPsB,aAMF,IAAnB,E,qB,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,Q,I,K,K,OCNF,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAzvD,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,+C,SAA/B,OAA+B,IAAA,KAAA,IAUb,MAAC,KAAD,KA8BmD,MACnE,KADmE,KAAnB,IA6DhD6hD,KAAwBmT,KAAD,KAD4B,IAGpB,MAAA,EAvGF,IAAA,KAAA,OAAA,cAAAlvD,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAUZ,MAObrB,GAAAA,IAAAA,KAAQ,SADV,IAEO,QAFP,IAGO,KAHP,IAeIkwC,IAAA,KAAC4mB,IAA+C5uD,IAAA,YAAA,OAAA,MAErC,EAAA,IAAA,EAFqC,OAAhD,MADF,EAREgoC,IAAA,KAAC6mB,IAA4C7uD,IAAA,YAAA,OAAA,MAItB,MAFZ,EAAA,IAAA,KAAA,EAFkC,OAA7C,MADF,EAoBJ,KAAA,IAWIkuC,GAAAA,IAAAA,MAMG,IAAA,MANK,KAAD,MADgC,MAAgC,MAUhB4gB,IAAAA,KAAgB,KAGpCrnB,IAAA,QAAA,QAHH,OAAmB,IAOjC,MAAM,MAAeznC,IAAA,EAAA,MACP,EAAA,IAAA,EADO,OAArB,MAM6B8uD,KAAgB,KAGhC,KAAA,MAHH,IAAe,IAIjC5F,IAAAA,QAAY,MAItBlhB,IAAA,KAACka,IAAA,KAAU,EAAA,MASF9pD,IAAAA,KAAkB,MACA,KACI,KAFJ,MARE,EAAA,IAAA,KAAA,IAAA,EADlB,OAAX,MAFF,EA3B2BkwD,GAAAA,IAAAA,KAAiBl3C,IAAAA,KAAa+9B,GAAAA,IAAK,OAAN,KAAb,KAA3B,MAAO,MAEmB,EAAA,IACNnvC,IAAA,EAAA,MAAW,EAAA,IAAA,EAAX,OAFzB,EAAA,KAAA,KAAP,E,W,K,I,K,I,K,I,K,I,K,I,K,I,K,MClEK,MAAA,OAAApO,MAAA,KAAA,IAAA,QAAA,O,KAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAEb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,IA2LC,EApLc,OAAAA,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EASA,KAAA,IAGc41D,GAAAA,IAAAA,QAAyB,OAAf,MAAqCtnB,IAAA,QAAA,SAAnD,IAAA,IACHkI,IAAAA,OAAM,KAAT,IAMJzB,IAAAA,MAEX,IAAA,IADA,KADkB,MAAV,IAIV8gB,IAAyB,KAeP7F,IAAAA,MAkDhB,IAAA,IAAA,IAjDA,KAD2B,MAoDT8F,IAAAA,KAAY,KAExBC,IAAmB,KAApB,IAAA,IAAA,IAAP,EAhFoD,MAASC,IAAJ,EAQ7CzQ,GAAAA,IAAAA,KAAcvP,GAAAA,IAAD,KAAA,MAAQ,QAAR,IAAA,IAAvB,EAAqCigB,GAAAA,IAAW,SAAXA,IAAAA,IAAmB,KAAA,IAAzB,EAmB/B,KAAA,IAGEl4C,GAAAA,IAAkB,MAAA,KAGlBk4C,IAAsB,KAAH,MAwBJC,GAAAA,MAAc,KACd,IAEQlgB,IAAvB,QAAA,SAAA,GACoBA,IAAK,IACEwE,IAAAA,MAArB2b,IAAJ,GAAmD,KAAnD,GACoB,MAAA,MACP,KAAC,IAAA,IAAA,IAAD,KAFb,UAMK,KAAP,EAnCsB,EAGlB,GAAA,IAAA,OAFF,OAGS3yD,QAAAA,IAAAA,IAAQ,MAAf,OAHF,IAIE4yD,GAAAA,IAAiB5yD,IAAD,KAJlB,GAUYua,GAAAA,IAAI,KAAT,GAGLva,IAAuB,MAACua,IAAuB,MAAA,IAAxB,KAHlB,IAKKjkB,MAAK,KAAA,WAAA,IAAA,IAAf,EANAu8D,GAAAA,IAAc,IAYlB,EAaO,UACLJ,GAAAA,MAAmB,MAEiBK,GAAAA,IAApC,GAAA,GAA4ChoB,GAA5C,IAAA,GAAA,IAA4CA,IAAA,KAAA,MAAxB,IAAW,IACX,MAACpuC,IAAD,MACpB,EAAA,EAAA,GAAA,EACF,EASN,GAKE2G,GAAAA,IAAA,EACoB,KAAA,MADpB,MACsB,IAAA,KAAA,EADtB,OAAA,EAaF,KAAA,IACsB2vC,GAAAA,IAAAA,SAAM,KAAT,IACOA,IAAAA,OAAM,KAAT,IAErBE,IAAAA,KAAU,KAAD,KAOT6f,IAAAA,MAAgB,KAKb,IALY,MAOfA,IAAAA,MAiBG,IAAA,IAjBa,KAAD,MAkBjB,EA5BIxZ,GAAAA,IAAAA,KAAoB,MAAe,MAAA,MACrC,EAGEyZ,GAAAA,MAAuB,QAChB,KAAP,EACEA,GAAAA,MAAuB,QACzB,EAIAz4C,GAAAA,IAAa,MAAA,IACT04C,IAAW,OAAf,IACmBA,IAAW,KAEG,MAAA,IACd,MAAA,IACE,MALrB,EAOO,KAAP,EACMD,GAAAA,IAAe,KAAnB,GAIEC,IAAsB14C,IAAH,MAJrB,EAEEA,IAAa,MAAA,IAFf,EAMF,EAIJ,GACS,UAAA,QACEva,IAAQ,MAAf,UADK,IAGuB,MAAA,IAH9B,EAQF,KAEIkzD,GAAAA,IAAe,KAAfA,GASAA,QAAgBlzD,IAAQ,QAARA,IAA4B,MAAA,IAA5BA,GAAD,KATfkzD,GAUAA,QAAgBlzD,IAAQ,QAARA,IAA4B,MAAA,MAAA,IAA5B,QAAAmzD,IAAoD,MAAA,IAApDA,GAA4B,GAA5BnzD,GAAD,KAXjB,EAgBF,OAESA,IAAQ,QAAA,IAAR,OAAqC,IAArC,KAAqC,GAA7B,GAAR,IAAP,E,O,M,K,I,Q,O,K,WChMF,SAAA,KAAA,IAkCC,EAhBc,KAAA,IAGMgzC,GAAAA,IAAAA,OAAM,KAAT,IACTwZ,IAAAA,MAUL,IAAA,IATA,KADgB,MAAlB,EACE,GACM4G,GAAAA,IAAU,KAAd,GACEA,IAAkB,KAAA,MACA,MAFpB,EAIA,IACEA,IAAqBpnC,MAAM,KAAT,MADpB,EAGF,E,qB,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,K,OC7BJ,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAnxB,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,W,YAAA,IAAA,KAAA,IAKsB,MAAC,KAAD,KAIrC6hD,KAAuB,KAEtC,MAAA,EAX8B,IAAA,KAAA,OAAA,cAAA/7C,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAM7B6uC,GAAAA,IAAA,KAACgoB,IAAA,KAAWhwD,IAAA,YAAA,UAAA,MAAuC,KAAA,IAAA,EAAvC,OAAZ,MAD+D,E,qB,K,I,K,I,K,MCTpD,IAAA,KAAApO,MAAA,KAAA,IAAA,QAAA,OAAA,SAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OASb,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA4F,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,+B,S,YAAA,IAAA,KAAA,IAAA,QAAA,IA0JhB,MAFiB,KAiF7B,KA/E0B,MAAA,EA1JE,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAwJC,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAwF7BzE,IAAA,KAAA,MAAA,IAzED,KAyEC,IAAA,IAAA,IArEA,MAAA,IAOD,KAPC,IAqEA,IA3DA,MAAA,IAOD,KAPC,IA2DA,IAjDA,MAAA,IAKD,KALC,IAiDA,IAvCA,MAAA,IAED,KAFC,IAuCA,IAhCA,MAAA,IAED,KAFC,IAgCA,IAzBA,MAAA,IAED,KAFC,IAyBA,IAAA,MAPA,EAjF6B,SAAAC,GAAAA,IAAA,KAAAk0D,GAAAA,IAAA,MAAA,KAAA78D,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,QAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAAA,IAsFhB,KAAH,MAEVpD,IAAA,EADCA,GAAAA,OAAoB,QACtB,EAzEA,GACU,QAAR,IACM,MAAiC,SAAA,KADvC,EAGF,EAOA,GACsB,MAAJ,GAA4B,MAA2B,MAAA,IACvE8yD,GAAoC,MAAA,IAApCA,EACF,EAOA,GACsB,MAAJ,GAA4B,MAA2B,MAAA,IACvEA,GAAwC,MAAA,IAAxCA,EACF,EAKA,GACsB,MAAJ,GAA4B,MAA2B,MAAA,IACvE,KAGF,EAFqC,MAAA,IAAjC,EAIJ,GACsB,MAAJ,GAA4B,MAA2B,MAAA,IACvE,KAGF,EAFoC,MAAA,IAAhC,EAIJ,GACsB,MAAJ,GAA4B,MAA2B,MAAA,IACvE,GACwB,SAAA,KADxB,EAGF,EAEA,KAIU,KAFmD,MAC7C7sB,GAAAA,IAAA,KAAAC,MAAA,QAGZ6sB,IAAgCr4D,IAAAA,KAAQ,SAARA,IAEhCkwC,IAAA,KAACooB,IAAA,KAAsBpwD,IAAA,EAAA,MAGZ,MAFI,EAAA,KAAA,IAGC,KAHD,KAIJ,KAJI,KAAA,EADQ,OAAvB,MADF,EAKkB,GAAc,KAAT,EACV,MAAuB,IAAV,E,kB,K,I,K,I,K,I,K,M,I,Q,I,K,K,O,I,K,Q,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OC/O9B,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,uC,S,SAA/B,OAA+B,IAAA,KAAA,IAAA,QAAA,IAkHhB,MAFa,KAoUzB,QA2JW,MAOX,EAtlB4B,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA4d/B,KAeW,MAbkB,IAalB,MAXW,IAWX,MAVA,IAUA,MATI,IASJ,MARiB,IAQjB,MAPW,IAOX,MANmB,IAMnB,MALO,IAKP,MAAA,KAAA,KAAA,MAGP9E,GAAAA,IAAc,OAAA,KAAOwvC,IAAA,UAAA,QADU,OAAgC,IAAA,IAGTxvC,IAAc,KAAA,KAAOwvC,IAAA,KAAA,MAAlD,IAAyB,IAAA,IAEMxvC,IAAc,KACpD,MACG,MACP,KACK,MACG,MALiD,EAAA,KAAA,KAAA,IAAA,KAAA,KAAD,KAMtEwvC,IAAA,KAAA,MAN0B,IAAA,IAA0B,IAAA,IAOVxvC,IAAc,KACtC,MACG,MACP,KACK,MACG,MALmC,EAAA,KAAA,KAAA,IAAA,KAAA,KAAD,KAMxDwvC,IAAA,KAAA,MANmB,IAAA,IAAmB,IAAA,IAQxCxvC,IAAe,KAQZ,IAAA,IAAA,IAAA,IAAA,IARa,KAAD,MAeI,EACN,KADM,KAQJ,KARI,KAeJ,KAfI,KA+Ba,MAAC,EAAA,KAAA,IAAA,IAAA,KAAD,OAMPo4D,IAAAA,GACvBroB,IAAA,KAACqoB,IAAyBrwD,IAAA,EAAA,KAEpBswD,IAFoB,MAA1B,MAKgBC,IAAAA,IAAAA,GAChBvoB,IAAA,KAACuoB,IAAkBvwD,IAAA,EAAA,KAEbwwD,IAFa,MAAnB,MAKKC,MAAAA,GACLzoB,IAAA,KAACW,IAAA,KACEshB,OAAAA,MADE,IAAA,IAAA,IAGFA,MAHE,IAAA,EAAA,IAAL,MADF,EA/DEyG,GAAAA,IAAyBrF,IAASsF,MAAV,MACxBC,IAAoCC,IAAV,QAEnB,KAAP,EACED,GAAAA,IAA2BvF,QAAD,MAC1BqF,IAAwB,MAC1B,EAUEI,GAAAA,QAA8B,KAC9BH,IAAuB,KACnBtM,MAAJ,IACE0M,IAAmB1M,IAAD,MAEtB,EAEEyM,GAAAA,QAA8B,KAC9BH,IAAuB,KACnBtM,MAAJ,IACE0M,IAAmB1M,IAAD,MAEtB,EACa,UAIX,QAOO,OAA6BkM,GAAAA,MAA7B,OACLM,IAAiB7wD,GAAAA,IAAA,EAAKwwD,MAAL,MAAA,MAAA,KADZ,EANDH,GAAAA,MAAJ,IAEWhM,IAAJ,IAEL2M,IAAe3M,IAAWrkD,GAAAA,IAAA,EAAMswD,MAAN,MAAA,MAAZ,MAFT,EADLW,IAAwBjxD,GAAAA,IAAA,EAAKswD,MAAL,MAAA,MAAA,KAD1B,EASJ,EA7bwB,EAAA,KAAA,IAAA5+C,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IA2UzBzE,IAAA,KAAA,MAAA,IAxUD,KAwUC,IAAA,IAAA,IAjTA,MAAA,IAED,KAFC,IAiTA,IA7SA,MAAA,IAED,KAFC,IA6SA,IAzPA,MAAA,IAED,KAFC,IAyPA,IA7NA,MAAA,IAQD,KARC,IA6NA,IA/JA,MAAA,IAkID,KAlIC,IA+JA,IAAA,MAPA,EApUyB,QAAAC,GAAAA,IAAA,KAAAm1D,GAAAA,IAAA,MAAA,KAAA99D,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,QAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAAA,IAiHV,KAAH,MAGZpD,IA0DkB,KAAH,MAoBfA,IAEyB,KAAH,MAiBtBA,IAGC,KADS,MAoDRA,IAEe,KAAH,MAKdA,IAEqB,KAAH,MAKlBA,IAEwB,KAAH,MASrBA,IAEoB,KAAH,MAMjBA,IA0BoD,EAAlC,MAAoCA,IACC,EAAzC,MAA2CA,IAE5C,KAAH,MAEVA,IAAA,EA1Ne,GACDA,GAAAA,IAAkB,MAAA,QACvBgB,GAAY,KAAZA,KAAqBjI,QAAM,KAAnC,EA2DiB,GACjB8H,GAAAA,IAAAA,KAAkB,OAARkzD,UAAD,MACI/zD,GAAAA,IAAkB,MAAS,KAAT,KAC/B,GACE,EAEwC,KAAQ,MAEhDA,IAAA,KAAU,MAAVA,GAA2B8iD,IAAAA,MAE3BkR,IAE6C,MAAW,OAAN,OAAd,MAFpCA,EAC0C,MAAW,KAApB,MAGnCpxD,IAAA,EAAA,MAEa,KAEE,KAHF,EAAA,IAAA,IAAA,IAAA,EADb,OAAA,EAQwB,GACX,MACN,MAMwB5C,GAAAA,IAAA,KAAU,QACzC,OAGU,KAACA,IAAA,MAAqB4kD,GAAAA,IAAA,KAAA5kD,MAAA,KAAtB,MACG,OAACL,MAAD,KACW,KAACK,IAAA,MAAqB,KAAAA,IAAA,KAAtB,MAAoC,KAACL,MAAD,KAJnC,EAAA,KAAA,KAAD,KADxB,EAQF,EAGE,KAAA,IAEA,KAFsB,EAEtB,OAAM,MAAO,KACEK,GAAAA,IAAkB,MAAA,KAC/B,GACE,EAEoB,KACtB,OAUyB,KAAQ,MAAZgB,GAA2BhB,IAAA,KAAU,MAC7BA,IAA2B,MAGpDi0D,GAAAA,IAHoD,OAKtDpzD,GAAAA,IAAAA,SAAS,MAEP+pC,IAAA,KAACspB,WAGGC,IAAkBn0D,IAAA,KAAU,MAEjB,KAGI,MACG,MACNA,IAAkB,SAACyQ,IAAD,KAAlBzQ,GAAiC,EAAE,KAEvBA,IAAA,MACEA,IAAA,MAERA,IAAA,MACJA,IAAA,MAEH,KACK,MACG,MACTA,IAAA,KAAU,MAAX,GArBK,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAqBN,GArBM,KAAlB,MADF,EAhBsB,KACd,QAAR,IAIgCA,IAAA,KAAU,QACjCo0D,GAA0C,EAAA,IAAD,KAAhD,EAJ8Bp0D,IAAA,KAAU,QACjCq0D,GAA0C,EAAA,IAAD,KAAhD,EA0Ccr0D,GAAAA,IAAA,SAAoB,MACxC,SACa,KADb,EAGF,EAG0BA,GAAAA,IAAA,SAAwB,MAChD,SACiB,KADjB,EAGF,EAEyB,QAIvB,IAGSA,GAAAA,IAAA,MAAP,IAHF,EACEA,GAAAA,IAAA,MAAiC,IADnC,EAKF,EAEqB,QACnB,IAGSA,GAAAA,IAAA,MAAP,IAHF,EACEA,GAAAA,IAAA,MAA6B,IAD/B,EAKF,EA8BEA,GAAAA,OAAa,QACf,EAxUA,UACoB,MACQ,WAA1B,IACe,KAAmB,MAAK,KAAM,MAAS,IAAG,KAAvB,KAAvB,IAAJ,IADmC,GAAhB,SAA1B,IAGuB,MAAN6mC,KACT,QAAR,OAGU,SAAV,IAAgC,KAAM,SAAtC,GACoB,MAAiC,MACnC,MAAdp2B,IACI,MAAS,KAFoC,MAIhC,KAAT,IAEO7N,GAAAA,IAAA,IAAA,MACR,EAAA,KAAA,IAAA,EADQ,OAMf,MAAuB,MAAA,KAC7B,IAhBI,EAkBJ,EACa,MAAX,EAGF,sBAUU,KARgB,MACG,MACF,MACJ,MACA,MACA,MACQ,MACRqjC,GAAAA,IAAA,KAAAC,IAAA,MAGQ,KAAM,QAAV,MAAA,GAEO,KAAM,QAAV,GACvB,IADuB,KAKF,KAAM,MAAhC,GAAA,GAAA,IAAA,GAAA,IAAA,MAEE,OAC0B,WAAC2hB,IAAD,KAD1B,GAKS,OACQ,KAAmB,SAAQ,KAAR,KAA3B,IACX,EAAA,EAAA,GAAA,EACmC,SAAA,KAGjCjd,IAAA,KAACgZ,IAAA,KAAehhD,IAAA,EAAA,MAEI,SAGR,KAAM,MAMV,KAAM,QAAV,GACQ,MADR,QAIO,MAdW,EAAA,KAAA,KAAA,KAAA,IAKX,KALW,KAQN,KARM,KAAA,KAAA,IAAA,EADN,OAAhB,MADF,EAQM1C,GAAAA,IAAa,MAAK,WAAL,OADU,EAGL2nD,GAAAA,IAAN,EAWpB,eAKE,KACE,QAEYp3C,IACc,OAA5B,IAC0B,IACG,KACS,MAAA,QACpC,IAAA,IAKO,IAIMo3C,IAAJ,IAb2B,GAAV,KAA5B,MAgBA,EALwB,MAAA,MAApB,EAHA,EAiBN,YAe8D,KAA9C,MAAc,MAAc,MAAU,MACxB,OAA5B,OAC0B,IACG,KACR,KAAPR,GAAetuD,MAAM,KACxB,IACoB,KAAZ0sD,IAAjB,aAEO,OAQ8B,KAA9B,OAUI,MAAP4B,MAAAA,GAAwCvE,GAAAA,IAAAA,MAAxCuE,IAIEzqD,IAA6B,MAAR,MAArBA,IAEgC03D,IAAd,MACKx4D,IAAD,IACWw4D,IAAd,MACKx4D,IAAD,IARpB,EAAA,IAAA,IAAA,IAAA,KAAA,KAAA,KAAA,KAAP,MAROc,IAGqBd,IAAD,IALpB,EAAA,IAAA,MAAA,MAAA,KAAA,KAAP,MANOc,IAGqBd,IAAD,IALpB,EAAA,IAAA,MAAA,MAAA,KAAA,KAAP,EAFyB,KAAZ2pD,IAAJ,IANyB,GAAV,KAA5B,OAsCF,EAkIA,QAKSzkD,GAA0B,MAAA,KACjC,KACE,EAGI,KAAQ,MAAZA,GAA2C,KAAM,MACX,KAAM,YACXizD,IAE7B,KAAe,KAAmB,MAAK,KAAQ,KAAb,KAAvB,IAAfjzD,IACF,GAAA,GAGA,GAAA,GAAA,IACE,IAEF,EALE,E,qB,K,M,I,K,M,K,I,Q,O,SClbN,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAA5G,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAEf6hD,KACbke,KADoC,KAEtC,MAAA,EAJ8B,IAAA,KAAA,OAAA,cAAAj6D,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,qB,K,M,I,K,M,K,I,Q,O,SCF/B,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAEf6hD,KAAwB+M,KAAD,KAAM,MAAA,EAFd,IAAA,KAAA,OAAA,cAAA9oD,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,kB,K,I,K,I,K,MCJlB,IAAA,QAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,QAAA,IAAA,KAAA,KAAA,OAAA,IAAA,KAAA,KAAA,OAMb,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,uC,S,YAAA,IAAA,KAAA,IAAA,QAAA,IA0BI,KAAd,KA8DlB,QAGW,MAAmB,EA3FF,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA0BV,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAoBlBzE,IAAA,KAAA,MAAA,IAnBD,KAmBC,IAAA,IAAA,IAbA,MAAA,IAeD,KAfC,IAaA,IAAA,MA0CA,EA9DkB,SAAAC,GAAAA,IAAA,KAAA61D,GAAAA,IAAA,MAAA,KAAAx+D,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,QAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAAA,MASX,MAAuCpD,IAEjC,KAAH,MASVA,IAAA,EADCA,GAAAA,OAAa,QACf,EAnBA,GAEsB,MACpB,GACwB,SAAA,KADxB,EAGF,EAeA,KAQU,KANE,KACH,KACK,MACF,MACiB,MACjBimC,GAAAA,IAAA,KAAAC,IAAA,MAGalyB,IAAAA,KAAY,KAEjC42B,IAAA,KAACW,IAAA,KAIU,MACT,KAACkpB,IAAA,KAAK7xD,IAAA,EAAA,MAIF5H,IAAAA,KAAU,MADL,IAAA,QAUIuxC,IAAc,KAAdA,EACCA,IAAc,KATxB,EAAA,IAAA,IAFK,IAAA,IAFE,EAAA,KAAA,IAAA,IAAA,EADL,OAAN,MADsB,IAAA,IAAA,IAJnB,IAAA,KAAA,KAAA,IAAA,IAAA,IAAL,MADF,E,kB,K,I,K,M,I,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OCrEJ,IAAA,KAAA,QAIA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAnyC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,+B,SAA/B,OAA+B,IAAA,KAAA,IAuEO,KAAd,KAmBrB,KAGYwG,KAAiB,KACnB,MAAA,IADoB,EAAA,IAAD,KAApB,OAME,MAAsB,EAnGL,IAAA,KAAA,OAAA,cAAAV,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,KAAA,IAAAyH,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAuEP,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAAAzE,IAAA,KAAA,MAAA,IACtB,KADsB,IAAA,IAAA,IAAA,MAmBrB,EAnBqB,MAAAC,GAAAA,IAAA,KAAA+1D,GAAAA,IAAA,MAAAtxD,IAAA,KAAA,EAAA,MAAA,EACtB,EACM1I,GAAAA,IAAAA,KAAQ,SAAZ,MAcE5E,MAAY,SAAA,OACZ,EAdI+E,IAAK,MAAe,MAAK,KAAM,KAAX,OAAxB,IAKE+vC,IAAA,KAAC+pB,IAAA,KACa,KAAM,KAAX,IAAA,IAAmBnpB,IAAM,KAAzB,IACO,KAAM,MACC,KAAM,KACtB,KAAM,KAJwB,EAAA,IAAA,KAAA,IAAA,MAArC,MADF,IAHE,E,W,M,O,M,K,I,Q,O,SC7ER,IAAA,KAAA,KAOgBmE,KAAsD,UAGjD,QAHiD,SAAhC,MAIpC,MAAA,E,qB,K,I,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OCPF,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QAEA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAv1C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,mD,S,SAA/B,OAA+B,IAAA,KAAA,IAAA,QAAA,IAoCS,KAAd,KA2LvB,KAGgC,MAAA,EAlOJ,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAoCL,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAWvBzE,IAAA,KAAA,KAiCA,IAjCA,MAAA,IAAA,IAAA,IAAA,IAiCA,MAAA,IAkDD,KAlDC,IAjCA,IA8FA,MAAA,IAED,KAFC,IA9FA,IAoGA,MAAA,IAED,KAFC,IApGA,IAAA,MAgLA,EApLD,IAA0BC,GAAAA,IAAA,KAAAi2D,GAAAA,MAAA,MACxBxxD,IAAA,QAAA,MAAA,MAPI,MACQ,MAC6B,IAA7B,QAEK,MAyCC,KAAH,MAKR,KAeR,IAfQ,MAiBeyxD,IAAA,KAAG,KAAH,KAAA,MA3DT,EAAA,IAAH,MACKh6D,IAAe,MAAA,IAAlB,MAAqB,EAqCjCmF,GAAAA,OAAmB,MACU,MAAA,MAC/B,EAES,EAAA60D,GAAAA,IAAA,OAAG,KAAH,KAAA,IAeR,KAAA,EAfW,EAAA,KAeZ,EAfY,aACW70D,GAAAA,IAAA,QAAAA,IACF,KAAY,KAApB,MACN,MAAL,GAEEA,IAA2B,MAAW,KAAd,MAG1B,GACQA,IAA6B,MAAA,IAAnC,IAAA,GAAA,GAGEA,IAAA,KAAU,KAAd,GACEA,IAAA,KAAmB,KAAA,KADrB,EAGF,GANI,MAMH,EAAA80D,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAE0B,EAAA,KAwB3B,EAxB2B,iBACrB90D,GAAAA,IAAA,QAAJ,OAK2CA,IAAA,MAA5B,KAAQ,KAAgB,MACU,MAAA,KAArC,IAAA,GAAA,MAERA,IAAA,KAAU,KAAd,IAIA,GAAA,GACEurD,GAAAA,IAAAA,KAA6B,SAEjB/tB,OAEEA,OACJ+tB,IAAAA,KAAe,MAAM,IAArBA,MAFA,EAAA,IAAA,IAHoB,EAAA,IAAA,KAAD,KAS/BvrD,IAAa,KAAC,EAAA,IAAD,OACf,KAdI,GAHU,GALVA,IAAa,KAAC,IAAA,IAAD,OACb,MA5DH,EAAA60D,GAAAA,IAAA,OAED,KAFC,KAAA,IAAA,KAiCA,EAAA,EAAAE,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EA/BD,EAAA,KA+BA,EA/BA,iBAGoB,MAClB,GAAA,GACE,GAMAr6D,GAAAA,IAAAA,KAAQ,SADV,IAEe,MAFf,IAGSs6D,IAAAA,KAA6C,MAAA,IADzB,IAAA,GAAA,MAF7B,MASe,MAAgB,KAAM,UAAd,OAArBC,IAEM,KAAM,UAAd,MASOl+D,MAAQ,KAAM,KAAU,KAAfwN,IAAAA,IAAD,MAAf,KARSxN,MAAQ,KACT,KAAM,KAAe,KAAzB,IAAmC,KAAnC,IAAA,IADa,MAAf,GAPA,GAH2B,MAqE/B,EACM2D,GAAAA,IAAAA,KAAQ,SAAZ,IAMI6vD,IAAAA,KAAoB,KAAwB,UAAxB,MADA,IAAA,IAEpBA,KAAoB,KAAwB,UAAxB,MAFA,IAAH,MALrB,EAEIA,IAAAA,KAAoB,KAAgC,UAAhC,MADA,IAAA,IAAH,MADrB,EAUF,EAEA,EACM,MAAuB,OAAC,KAAD,OAG7B,EAH8B,GACP,KAAA,MACrB,EAGF,QAWU,KATE,MACA,KACa,MAAA,QACd2K,OAAO,MAGT,KACG,KACAjvB,GAAAA,IAAA,KAAAC,IAAA,QAEWivB,IAAuB,KAAM,KAClD,IAAA,WAAA,WAAA,IAoDMvqB,IAAA,KAACW,IAAA,KAAI3oC,IACM,MACK,MAFX,EAAA,IAAA,IAAA,IAAA,MAIM,EAAA,IAAA,EAJN,OAAL,MADF,EAVEgoC,IAAA,KAACW,IAAA,KAAI3oC,IACM,MACF5H,IAAAA,KAAkB,MAAQ,EAAA,IAAR,MACX,MAHX,EAAA,IAAA,IAAA,IAAA,MAIM,EAAA,IAAA,EAJN,OAAL,MADF,EAfE4vC,IAAA,KAACW,IAAA,KAAI3oC,IACM,MAEK,MAHX,EAAA,IAAA,IAAA,IAAA,MAKH,KAAC,KACQ5H,IAAAA,KAAkB,MAAwB,EAAA,IAAxB,MADtB,EAAA,IAAA,IAAL,MADS,EAAA,IAAA,EAJN,OAAL,MADF,EArBQ,UAAR,IAA+B,KAAM,OAArC,IAMgB,MAAJ,IADI,EAAA,IAAA,OAMd4vC,IAAA,KAACW,IAAA,KAAI3oC,IACM,MACF5H,IAAAA,KAAkB,MAAA,MACX,MAHX,EAAA,IAAA,IAAA,IAAA,MAIM,EAAA,IAAA,EAJN,OAAL,MADF,E,gB,K,I,K,M,M,Q,I,K,Q,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OC1LR,IAAA,KAAA,QACA,IAAA,KAAA,OAEA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OAAiE,IAAA,KAAA,OAEvC,IAAA,KAAV,OACI,IAAA,KAAV,OACkB,IAAA,QACD,IAAA,QACK,IAAA,KAAX,SACK,IAAA,QACF,IAAA,QACH,IAAA,KAyBI,IA0HA,KAAd,KA6GR,KA5GyE,UAAvD,MAKD,MA0GiB,KAAA,IAAE,MAA1Bo6D,MACmB,KACvB,MAAA,IAGE,EAAA,KAAA,OAIE,SAAA,OACH,SAAA,OATuB,EAAA,KAAA,IAAD,KAApB,IAgBRC,KAAc,QAAjB,OAAA,GAEa,MAAiB,EA/RkC,KAAA,IAAArzD,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA4JtD,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAiBRzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAcA,MAAA,IAED,KAFC,IAdA,IAoBA,MAAA,IAED,KAFC,IApBA,IA0BA,MAAA,IAED,KAFC,IA1BA,IAuFA,MAAA,IAGD,KAHC,IAvFA,IAAA,MA4FA,EAlGD,EAA0BC,GAAAA,IAAA,KAAA22D,GAAAA,MAAA,MACxBlyD,IAAA,QAAA,MAImBmyD,IAAqB,GAAA,GAAA,IAAxB,MAA2B,EAG7C,EAYA,EAEA,EACU,MAAR,GACM,MAA0B,KAAA,IADhC,EAGF,EAEA,EAIA,EAEA,wBACU,KAAM,QAAd,OAMQ,KAAM,MAAV,OAFoB,EAAA,IAKA,KAAM,MAAV,MAEQ,KAAM,MAClC,GAEU,KAAM,SAAd,OAAA,IAQI,KAAM,KAIV3qB,GAAAA,IAAA,KAAC4qB,IAAA,KAGkB,KAAM,MACE,KAAM,MACX,KAAM,MACd,KAAM,MAML,KAAM,MACO,KAAM,MAChB,MACThqB,IAAM,MAEkB,MACJ,KAAM,MACR,KAAM,MACnB,KAAM,MAClB,KAAC2b,IAAA,MACC,KAACqC,IAAU,MAAQ,MACjB,KAACpG,IACS5X,IAAM,KAAP,IAAA,IAAA,IADJ,EAAA,MAAA,KAAA,MAAL,MAD0B,IAAA,IAAA,IAA5B,MAD6B,EAAA,IAA/B,MArBe,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAOJ,KAPI,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,IAAjB,MADF,IAxBE,EAiCQnrC,GAAAA,IAAI,KAAM,MAAd,GACEA,IAAI,KAAgB,MAAA,IADtB,EAGF,EAwBN,EACE,E,K,M,K,I,Q,S,MC/QW,IAAA,KAEd,MAAA,E,e,K,I,M,K,I,Q,O,WCFD,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAjG,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAQnC,SAAA,KAAsB,MAAA,EARa,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,M,O,M,K,I,Q,O,SCM1E,IAAA,KAAA,KAqHgBo1C,SAAqD,UAA/B,MAGpC,MAAA,E,U,M,QChIF,IAAA,KAAA,KASM8lB,KAAJ,GAMO,YAJHA,KAA8B,KAAA,IADpB,MAAyB,MAAkB,MAEhD,EAAA,KAAA,KAAA,YANT,IAgDoB,MACkB,MAlCvB,EACD,KADC,IASL,KATK,KAiBL,KAjBK,KAyBQ,KAzBR,KAAA,KAAA,QAAH,MAmCZ,EA7BSC,GAAAA,IAAP,EAIKD,GAAAA,IAAAA,KAAL,KACE,EAGFA,IAAAA,KAA0B,SAAA,OAC5B,EAGOA,GAAAA,IAAAA,KAAL,KACE,EAGFA,IAAAA,KAA0B,SAAA,OAC5B,EAGOA,GAAAA,IAAAA,KAAL,KACE,EAGFA,IAAAA,KAAuC,SAAA,OACzC,E,e,K,I,M,K,I,Q,O,WClDF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAr7D,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAanC,SAAA,KAAqB,MAAA,EAbc,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,qB,K,I,K,M,I,K,M,K,I,Q,O,S,I,K,K,O,I,K,K,O,I,K,QCW1E,IAAA,QACA,IAAA,KAAA,QAEA,IAAA,KAAA,QACA,IAAA,KAAA,QAGA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,+B,S,SAA/B,OAA+B,IAAA,KAAA,IAAA,QAAA,IAoUG,MAAiB,M,KAAA,KAAjB,SACP,MAEI,MAAA,EAvUA,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA4K/B,WAgCW,MAAA,KAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MADKkqC,GAAAA,IAAA,KACLC,IADK,MAGEqM,IAAAA,OAAM,KAAT,IACbojB,IAAAA,SAAkC,KAAf,MAEUC,IAAAA,KAAuB,MAEtBC,MAAcC,IAAD,KAA2BzrB,IAAA,QAAA,QAAxD,OAAY,IAGlBuB,MAAYC,IAAkB,MAAlBA,GACTC,MAAeD,IAAkB,MAAlBA,GACdE,MAAgBF,IAAkB,KAAlBA,GAChBG,MAAgBH,IAAkB,MAAlBA,GAChBI,MAAgBJ,IAAkB,MAAlBA,GALF,EAAA,KAAA,KAAA,IAAA,KAAA,QASxBoE,IAAgBrtC,IAAA,EAAA,MAA0B,EAAA,IAAA,EAA1B,OAGN,MAAP,IAAiC,QAAT,IAAI,KAAJ,GACjB,MAAP,IAAiC,QAAT,IAAI,KAAJ,GACjB,MAAP,IAAiC,QAAT,IAAI,KAAJ,GAChB,MAAP,IAAkC,QAAT,IAAI,KAAJ,GAJJ,EAAA,IAAA,IAAA,IAAA,QAQzB8pC,IAA8BA,IAAiB,MAAjBA,GAELC,IAAkB,MACgB/pC,IAAA,EAAA,QAExDmzD,IAAoB,MAFoC,MAKhD,MADa,IACc,MADd,oEAFU,IACtBjkB,IADsB,KAAA,KAAA,KAAA,KAAA,IAOvBkkB,IAPuB,KAAA,KAAA,KAAA,EAFyB,OAc9CllB,IAAAA,MAoCXmlB,IADF,IAAA,IAEEF,IAFF,IAGEG,IAHF,IAIEC,IAJF,IAKEC,IALF,IAMEhjB,IANF,IAOEnD,IAPF,IAQEomB,IARF,IASE9iB,IATF,IAUEE,IAVF,IAWE9C,IAXF,IAYED,IAZF,IAaEO,IAbF,IAcEC,IAdF,IAeEF,IAfF,IAgBEslB,IAhBF,IAiBEC,IAjBF,IAlCA,KADoB,MAuDAllB,IAAAA,KAAe,KAGnCzG,IAAA,KAACW,IAAA,KAAI3oC,IAAA,EAAA,MAAA,MAGE4zD,IACE,UAAA,IAAoC,EAAA,KAAD,KAEzC,MAAA,IAA0C,EAAA,KAAD,KADvB,IAAA,IAAA,IAHF,EAAA,IAAA,IAAA,KAAA,IAAA,EAFd,OAAL,MADF,EAnGwCA,GAAAA,IAAO,KAAb,EA2ChC,EACEN,GAAAA,IACAjmB,IACAomB,IACiBrlB,IACjBilB,IACAE,IACAC,IACAhjB,IACcmjB,IACdhjB,IACAE,IACA9C,IACAD,IAUaqlB,QAAAA,IAAAA,IAAoB,MAvB5B,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAcI,KAdJ,KAAA,KAwBK,KAxBL,KAAP,EAcW,GACHA,GAAAA,MAAJ,IACEA,IAA8B,MAAA,KAEhCO,QAAU,KACNrlB,IAAJ,IACEA,IAAS,KAEb,EAEU,GACJ8kB,GAAAA,MAAJ,IACEA,IAA+B,MAAA,KAEjCO,QAAU,KACNplB,IAAJ,IACEA,IAAU,KAEd,EAqCN,GACgCZ,GAAAA,IAAAA,SAAQ,KAAOjG,IAAA,QAAA,QAA/B,OAAY,IAClBosB,MAAD,IAAA,IAAA,IAAP,E,qB,K,M,I,K,M,K,I,Q,O,K,SClVF,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,QACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAr8D,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAA/B,IAyFC,EAzF8B,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAqBhB,UAWmCm8D,IAAgB,EAAhBA,sBAApC,KAAA,IAAY,MAAA,IAAQ,MAAA,IAAY,MAAA,IAErC5lB,GAAAA,IAAAA,MAsDH6lB,IAAD,IAAA,IAAarrD,IAAb,IAAoBsrD,IAApB,IAAgCC,IAAhC,IAAA,IAtDY,KAAD,MAAd,EAAe,EAEXn8D,GAAAA,IAAAA,KAAQ,SADV,IAEEA,IAAAA,KAAQ,SAFV,IAGG4Q,GAAAA,MAHH,IAGoBqrD,IAHpB,IAG0CE,IAH1C,MAoDA,EA/CyBxsD,IAAAA,KAAaiB,MAAD,KACnCzK,IAAAA,KACE40C,IAAAA,GAA0B,OAAA,IAA1BA,IADO,MAQKkhB,IACEE,IAJU,MAAA,IAAA,MAGZF,IAHY,KAAA,KAStBC,IAAAA,IAEI,EAAA,KAFJA,EACI,EAAA,QAHD,EAAA,KAKI,KALJ,KAgBM,KAhBN,KA0BK,KA1BL,KAAP,EAKW,GACMJ,GAAAA,IAAO,OACpB,IACEnhB,GAAAA,IAAAA,KAAsB,MAEf,KAAY,QADb,OAEC,KAAY,QADe,OAFZ,OAKtBA,IAAAA,KAAmB,QAAA,MANrB,EAQF,EACW,GACImhB,GAAAA,IAAO,OACpB,IACEnhB,GAAAA,IAAAA,KAAsB,MAEf,KAAY,QADb,OAEC,KAAY,QADe,OAFZ,OADxB,EAOF,EAEemhB,GAAAA,IAAO,OACpB,IACEnhB,GAAAA,IAAAA,KAAmB,QAAA,MADrB,EAGF,E,qB,K,M,I,K,M,K,I,Q,O,SCzFR,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAj7C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAa3BkG,KAAQ,SAAZ,OAGoB,IAAA,KAAoC,KAHxD,EACa0oD,KAKW,MAAA,EAnBO,IAAA,KAAA,OAAA,cAAA9oD,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,M,O,M,K,I,Q,O,SCF/B,IAAA,KAAA,KAQgBo1C,SAAoD,UAA9B,MAGpC,MAAA,E,kB,K,I,K,M,I,Q,I,K,K,O,I,K,QCTF,IAAA,KAAA,QAIA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAv1C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,2B,YAAA,IAAA,KAAA,IAAA,QAAA,IAqPX,MAjEL,KAiEK,KAGhBkG,KAAQ,SAAZ,IAOWM,IAAAA,KAAiB,KAAC,EACjB,EADiB,KAAD,KAApB,IAPR,EACWA,IAAAA,KAAiB,KAChB,KAAA,IADiB,EAAA,KAAD,KAApB,IADR,GAYc,MAAiB,EApQA,IAAA,KAAA,OAAA,cAAAV,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAoLhB,sBAICf,GAAAA,IAAAA,KAAkB,MAACwwC,IAAM,MAAc,KAArB,MAUvB,KAPFsrB,OAOE,QANKC,OAML,MALKC,OAKL,QAJHC,OAIG,MAAA,MADMhxB,IAAA,KACNC,IADM,QAGYgxB,GACvB,KADuBA,MAaIC,GAC3B,KAD2BA,IAOxB,OAALplB,IAAAA,GAAgC,OAAL,IAAA,KAAA,IACF9B,GAElB,KAFkBA,EAAQrtC,IACtB,KADsB,EAAA,MACH,EAAA,IAAA,EADG,OAKjCgoC,IAAA,KAACwsB,IAAA,KAAqBx0D,IAAA,EAAA,MACN,EAAA,IAGL,GAHK,KAAA,IAAA,KAAA,KAOiB,KAPjB,KAAA,KASa,KATb,KAAA,QAAA,IAAA,KAAA,IAAA,IAAA,EADM,OAAtB,MADF,EAxBI,GAEMlI,GAAAA,IAAAA,KAAQ,WAAZ,IAIS,KAAY,QAAjBwb,IAAAA,GAA2C,KAAY,MAAvDA,GAEJmhD,GAAaH,GAAAA,IAAmB,KAAY,OAAlB,KAA1BG,EACF,EAKEF,GAAAA,OAAuB,KAAY,OAAlB,KACnB,EAkB+B,EAAA,EAEJ,EAAA,E,W,M,O,M,K,I,Q,O,SCxOjC,IAAA,KAAA,KA+BgBxnB,SAA8C,UAAxB,MAGpC,MAAA,E,sB,K,I,K,I,K,I,O,I,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,O,I,K,K,OC3CF,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAv1C,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,uC,aA+MF,KAAd,KAmKZ,KAlKgC,IAAf,MAIdkG,KAAQ,YAARA,IACI48D,IAAAA,KAA0C,KAAA,IAAE,MADvB,OAAA,GAFgB,UAAA,MAAD,KAAxB,MAaG,MAGF,MAUnB58D,IAAAA,KAAQ,OAARA,IACI48D,IAAAA,KAA0C,KAAA,IAAE,M,a,SAF9B,MA5BhBC,IA+LuB,KAAH,MAgFTA,OAAH,MAAa,EA9dI,IAAA,KAAA,OAAA,cAAAj9D,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,KAAA,IAAAyH,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAAA,OAAAnL,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA6F/B,GAI0B,MAQrB6G,GAAAA,MAAA,KAAA,QAPD,KADsB,MAAxB,EACE,QACE,GAAA,QAAA,SAAA,GACS,IAAP,IACkB,IAAN,IADZ,EAIF,EAUN,SACwB,QAAR,OACkB,MAAR,OAGf,OAALmvC,IAEkB,KADd,EAAA,IAAA,QAMC,QAALA,IAEkB,MADd,EAAA,IAAA,QAKY,MAEX,QAALA,IAEkB,MADd,EAAA,IAAA,KAAA,OAMgC,MAxBjC,EAAA,IAAA,KAAA,KAAA,KAAA,KAAP,EA0Fa,EAAA,KAAA,IAAAz9B,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAqKKzE,IAAA,KAAA,MAAA,IAElB,KAFkB,IAAA,IAAA,IAQjB,MAAA,IAED,KAFC,IARiB,IAcjB,MAAA,IAED,KAFC,IAdiB,IAqBjB,MAAA,IAgFD,KAhFC,IArBiB,IAuGjB,MAAA,IAlOD,KAkOC,IAAA,IAAA,IA1NA,MAAA,IAOD,KAPC,IA0NA,IA3MA,MAAA,IAMD,KANC,IA2MA,IA5LA,MAAA,IAOD,KAPC,IA4LA,IAhKA,MAAA,IAMD,KANC,IAgKA,IAnJA,MAAA,IAQD,KARC,IAmJA,IAtIA,MAAA,IAOD,KAPC,IAsIA,IAzHA,MAAA,IAQD,KARC,IAyHA,IAvGiB,OAFjB,EAnKY,MAAAC,GAAAA,IAAA,KAAA44D,GAAAA,IAAA,MAAA,KAAAvhE,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,IAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,QAqKF,MAAO,EAElB,EAKqBm0D,GAAAA,IAAwB,MAAK,KAAL,KAA3B,QAClB,EAKEA,GAAAA,IAAuB,QAAK,MAAL,OACzB,EAEA,EACqBA,GAAAA,IAA2B,MACxC,MACA,KAFwC,MAA9B,QAIlB,EAgFA,EACE,EAjOF,UACcnf,MACZmf,GAAAA,IAAS,MAAc,MAAa,MAChC78D,GAAAA,IAAAA,KAAQ,SAAZ,IAEWA,IAAAA,KAAQ,SAAZ,IACL48D,IAAAA,KAAuC,MAAA,KADlC,EADLE,IAAAA,KAAmC,MAAA,MADrC,EAKF,EAOA,MACa/N,KACX8N,GAAAA,IAAS,MAAc,MAAe,MAClC78D,GAAAA,IAAAA,KAAQ,SAAZ,IAEWA,IAAAA,KAAQ,SAAZ,IACL48D,IAAAA,KAAsC,MAAA,KADjC,EADLE,IAAAA,KAAkC,MAAA,MADpC,EAKF,EAMA,GACM98D,GAAAA,IAAAA,KAAQ,SAAZ,IAMA68D,GAAAA,IAAS,MAA8C,MACvDC,IAAAA,KAA4D,MAAA,OAC9D,IAPI1hE,MAAY,SAAA,OAGZ,EAWJ,MACM4E,GAAAA,IAAAA,KAAQ,SAAZ,OAIW+uD,KACX8N,GAAAA,IAAS,MAAc,KAAsB,MAEtBltD,IAAAA,OAAY,OACnC,IAMAxJ,IAAAA,KACE,OAAA,QADO,MAKTy2D,IAAAA,KAAsC,MAAA,MACxC,IAXIxhE,MAAY,SAAA,QAAA,IAAA,KAGZ,IAXAA,MAAY,SAAA,OACZ,EAwBJ,GACM4E,GAAAA,IAAAA,KAAQ,SAAZ,IAIA68D,GAAAA,IAAS,MAA0B,MACnCD,IAAAA,KAA4C,MAAA,OAC9C,IALIxhE,MAAY,SAAA,OACZ,EAaY2hE,GAAAA,SAAgB,KAC9BF,GAAAA,IAAS,MAAiB,KAAA,KACC,MAAA,IAC3B,EAScA,GAAAA,IAAS,MAAoB,QAAA,WAC3C,IACEA,IAAS,MAAmB,SAAA,MAE9BA,IAA2B,MAAA,MAC7B,EASmBE,GAAAA,SAAgB,KACnBF,GAAAA,IAAS,MAAoB,QAAA,WAC3C,IACEA,IAAS,MAAmB,IAE9BA,IAA2B,MAAA,IAC3B,EA6ByB,EAEzBjd,MAAeid,GAAAA,IAAS,QAAV,KACe3+B,QAAa,KAAD,KAAf,MAsE5B,EAtE4C,IACvB2+B,GAAAA,IAAS,MACNG,IACT,MACA,QAFwB,MAM/Bh9D,IAAAA,KAAQ,SAAZ,OA4BWA,IAAAA,KAAQ,SAAZ,OAGL48D,IAAAA,KAAsC,MAAY,MAAS,KAArB,KACfjtD,IAAAA,KAAwB,KAAgB,KAA5B,OACnC,IAKExJ,IAAAA,KACE,OAAA,QADO,MAITy2D,IAAAA,KAAsC,MAEzB,KAAgB,MAFS,MATxC,IACExhE,MAAY,KAC2C,KAAgB,SAD3D,QAAA,IAAA,KAad,GAAyB,MAAO,KAAsB,MAAO,KAA7D,IACEwhE,IAAAA,KAAuC,MAAY,MAAO,KAAnB,KAGzC,GAEU,MAA4B,MAFtC,IAGa,MAHb,MAKEA,IAAAA,KAA4C,MAAY,MAAZ,KAL9C,KAlDA,GAEU,MAAS,KAAsB,MAAS,KAFlD,IAIEE,IAAAA,KAAkC,MACrB,MAAS,KACT,MAAS,MAApBG,KAFgC,MAKpC,GAAyB,MAAO,KAAsB,MAAO,KAA7D,IACEH,IAAAA,KAAmC,MACtB,MAAO,KACP,MAAO,MAAlBG,GACe,MAAO,KAHW,MAQrC,GAEU,MACK,MAHf,IAKEH,IAAAA,KAA4D,MAC/C,MAD+C,KAoChED,IAAwB,MAC1B,E,e,K,I,M,K,I,Q,O,WC3dJ,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAn9D,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAmBxB,UAAA,KAAnC,IACL,IAEkB,EACjB,KADiB,IAWrB,KAXqB,KAef,KAfe,KAwBrB,KAxBqB,KA4BpB,KA5BoB,KAiCM,MAAA,EAvDwC,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EA2BrEmM,GAAAA,MAAJ,IACcd,IAAyB,KAAA,IAA5B,IAEJc,IAAP,EAIAd,GAAAA,IAAqB,YAAA,QACvB,EAGEA,GAAAA,IAA2B,SAAA,OAC7B,EAQEA,GAAAA,IAAqB,SAAA,OACvB,EAGEA,GAAAA,IAAsB,SAAA,OACxB,E,e,K,I,M,K,I,Q,O,WCpDF,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxL,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OA2BxB,UAAA,KAAnC,IACL,IAEkB,EACjB,KADiB,IAYpB,KAZoB,KAgBK,KAhBL,KAoBlB,KApBkB,IAwBd,KAxBc,KAkCrB,KAlCqB,KAyCpB,KAzCoB,KA8CM,MAAA,EA5EwC,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAmCrEmM,GAAAA,MAAJ,IACcd,IAAyB,KAAA,IAA5B,IAEJc,IAAP,EAKAd,GAAAA,IAAsB,SAAA,OACxB,EAGEA,GAAAA,IAA+C,SAAA,OACjD,EAGEA,GAAAA,IAAwB,QAAA,OAC1B,EAGEA,GAAAA,IAA4B,SAAA,OAC9B,EASEA,GAAAA,IAAqB,YAAA,QACvB,EAMEA,GAAAA,IAAsB,YAAA,QACxB,E,W,K,I,K,K,I,K,M,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,O,I,K,K,OCtEF,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAGA,IAAA,KAAA,KAAA,OAGA,IAAA,KAAA,KAAA,OAA+B,IAAA,KAAA,IAAA,QAAA,IAgEV,KAAH,IACE,KAAH,IAiDG,MAAC,KAAD,KAmHiB,MAAA,EArON,IAAA,KAAA,OAAA,cAAAtL,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAAA,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAgEV,EAAH,EACE,EAAH,EAiDI,aAWV,KAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MAAA,KADKkqC,GAAAA,IAAA,KACLC,IADK,QAEa0xB,IAAU,MAAVA,EACDA,IAAU,MAAVA,YAEF/8D,IAAY,KAAA,KAAf,IAITixD,IAAAA,KAAa+L,OAAD,MAEkB,KAAC,EAAA,IAAD,KAAextB,IAAA,QAAA,QAA5C,IAAA,OAAW,IAEH,KAMA,MAiBjBh1C,IAAD,IAAA,IAAQ0T,IAAR,IAjBmB,KAAD,MAmBjBrO,IAAAA,KAAQ,SAAZ,OAoCWM,IAAAA,KAAkB,MAEvBA,KAAkB,QAEhB88D,IAEI,EAAA,OAAA,QAJY,MADlB,UADuB,MAclBziE,IAjBa,EAAA,IAAA,KAAA,IAAA,KAAA,OAiBbA,IAjBa,IAqBpBu1C,IAAA,KAACmtB,IAAA,KAAqBn1D,IAAA,EAAA,MAAA,MAGI,SAAP,OAAA,YAEco1D,IACJC,IAJV,EAAA,KAAA,KAAA,KAAA,KAAA,IAAA,EAFG,OAAtB,MADF,EApDsC,KAEpChoB,MAA8BpE,IAAkB,KAAlBA,GAA9BoE,EAGcpE,IAAkB,KAAlBA,GAAd4E,IAA0C7tC,IAAA,EAAA,MAChB,EAAA,IAAA,EADgB,UAOtCvN,MAAAA,OAKYA,MARI,EAAA,IAEXo7C,IAFW,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAYpB7F,IAAA,KAACstB,IAAA,KAA4Bt1D,IAAA,EAAA,MAAA,MAGH,MAAP,OAAA,YAEco1D,IACJC,IAJV,EAAA,KAAA,KAAA,KAAA,KAAA,IAAA,EAFU,OAA7B,MADF,EA9CmB,GACnBE,GAAAA,MAAAA,IAAAA,MAAQ,KACRjB,IAAAA,IAAAA,IAAqB,KAAY,OAApB,KACbkB,IAAuB,KAAY,KAAzB,EAAA,MAAD,KACX,EAEsB,EAIJ/iE,GAAAA,MAAAA,IAEd0T,IAAM,OAANA,IAAAA,GAAwBA,IAAM,KAANA,IAC1B,GAEE8uD,IAAe,OAAf,IAAA,MAFF,IAIMn9D,GAAAA,IAAAA,KAAQ,SAAZ,IAGE29D,IAAAA,KAAuB,MAACR,IAAe,KAAhB,MAHzB,EACES,IAAAA,KAAoC,MAACT,IAAe,KAAhB,MAK1C,E,qB,K,M,I,K,M,K,I,Q,O,M,SCrKF,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAz9D,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAkCSmU,KAAsC,EACzD,QADyD,KAAjB,KAE1D,MAEagnC,KAAqD,EAAA,SAA/B,MAEpC,MAAA,EAxC6B,IAAA,KAAA,OAAA,cAAAr1C,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,qB,K,M,I,K,M,K,I,Q,O,M,SCF/B,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAgCSmU,KAAsC,EACzD,QADyD,KAAjB,KAE1D,MAEagnC,KAA8C,MAAA,KAEzC,QAFyC,SAAxB,MAGpC,MAAA,EAvC6B,IAAA,KAAA,OAAA,cAAAr1C,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,sB,K,I,K,M,I,Q,I,K,K,O,I,K,Q,I,K,QCF/B,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QAKA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,UAAA,IAAA,KAEkB,MAAA,KAAA,KAW7CkG,KAAQ,SAAZ,IAIWA,KAAQ,qBAAZ,OAEI,IAAA,KAA0C,KAE1C,IAAA,KAA0C,QAE1C,IAAA,KAA0C,KAE1C,IAAA,KAA0C,SAR9C,KAHqB,IAAA,KAAqC,KAEtD,IAAA,KAAqC,aAk8CtCA,KAAQ,SAARA,OAAAA,oDAl9CqB,gDA+5BM,a,aA/5BN,YAk8CK,kB,SAUD,UAAA,MAAH,IAYgB,UAAH,IAkCD,UAAH,IA6BrB,MAAC,KAAD,QAiEX,IAAA,KAAsC,MADnB,MAKHyvD,KAAc,MAEdA,KAAc,MACrBA,KAAc,MACfA,KAAc,MALJ,EAAA,KAAA,KAAA,KAAA,KAAH,MAiBTnvD,KAAiB,KACd,EAAA,IADe,EAAA,KAAD,KAApB,IASgC,UAAH,OAQ3B,MAA8C,EA7nD7B,IAAA,KAAA,OAAA,cAAAV,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAghC/B,iCACmBw2C,GAAAA,IAAM,KAahB,QAALR,IAGkB,MAAU,KACZ,MAAU,MAAjB,IAA8B,MAAU,KAF7C,EAAA,IAAA,QAKkDzB,MAAQ,KAAWjG,IAAA,QAAA,MAAhD,OAAyB,IAEkB,KAAlB,KAAyB,KAAA,MAAxD,IAAmB,IAIpC,EAAA,KAAA,KAH+D,KAG7B,KAAA,MAHP,IAAwB,IAKH,MAE1B,MAE1B,MAKI7hC,IAAJ,GAIS,MAALupC,IAEIwmB,IAFJxmB,EACIymB,IALR,EACiBhwD,IASH,KAAZ,OAAA,IAEgB,MAAZ,MAAA,IACK,MAHT,EACS,KADT,oCAhDJ,SAAA,SAAA,SAAA,SA+CY,IAUV8pD,IA+BG,IAAA,IAAA,IAGI,KAHJ,IAII,MAJJ,IAKDmG,IALC,IAMDC,IANC,IAODC,IAPC,IAAA,IAAA,IA/Ba,KAAD,MAyDZ,IAAA,IAda,KAAD,MAiDOxX,IAAAA,KAAiB,EACpB,KADoB,KAExB,KAFwB,KAAD,KAoCpB,KAmBI,KAoBK,KAeV,KAOD,KAOE,KAMK,QAAR,OAGN,MAAT,IASW,MADJ,MAQL,OAAA,KAPA,OAAA,EAPA,GAAuB,SAAvB,IAIwB,MAiBF,MAALpP,IACI,MAALA,IAEHl3C,IAAa,MAenB,MADP,IAAA,IAEO,MAFP,IAGO,MAHP,IAIO,MAJP,IAbA,KAD0B,MAwBL,MACnBH,IAAAA,KAAQ,MAAZ,KAM4C22C,IAAAA,KAAe,KAAf,GAA2B,EAA1D,MAAS,MAAkBpL,IAAA,KAAAC,IAAA,MAG3B,MAAP,IAA6B,OAAT,IAAI,MAAJ,GACV,MAAP,IAAgC,OAAT,IAAI,MAAJ,GACf,MAAP,IAAiC,OAAT,IAAI,KAAJ,GACjB,MAAP,IAAiC,OAAT,IAAI,MAAJ,GACjB,MAAP,IAAiC,OAAT,IAAI,MAAJ,GALN,EAAA,KAAA,KAAA,IAAA,KAAA,KAQxBxrC,IAAAA,KAAQ,SAAZ,OAyCWA,IAAAA,KAAQ,SAAZ,eACe,KAAN,IAAA,IACc,MAALq3C,MAAAA,EAErBA,IAAK,MADuB,MACEA,IAAK,MAALA,GACP,MAAR,OACG,KACDl3C,IAAK,MAAe,MAAA,KACvCgG,IAAAA,KACS,KAALkxC,IAAAA,MAAF,OADO,SAIT,IACanH,IAAA,KAACyF,IAAA,KAAI,EAAA,IAAL,MAYXzF,IAAA,KAACguB,IAAgBh2D,IAAA,EAAA,IAAA,MAAA,MAWW,MAEJi2D,IACF,MAAP,IAAqB,MAArB,IAaFH,IAELI,IACkB,MA3BP,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,KAAA,EAHF,OAAjB,MAzBG,KAvCE,MAAL/mB,IAEIgnB,IAFJhnB,EACIinB,IAIC,MAALjnB,IAES,KAFTA,EACI/2C,IAAAA,KAAkB,MAAEwwC,IAAM,MAAP,IAAA,IAA6B,KAA7B,IAAD,KAIhB,MAALuG,GAAoC,MAArC,GACO,MAALA,GAAuB,MAAzB,GAGAnH,IAAA,KAAiBhoC,IAAA,EAAA,IAAA,MAAA,MAQS,MAEFi2D,IAED,QAEPI,OAAAA,IACY,MAIWC,IAC1BR,IAELI,IAnBW,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,EAHF,OAAjB,MAqFFluB,IAAA,KAAC4B,IAAA,KAAY,MAAS,EAAA,IAAA,IAAtB,MADF,EAxTM2sB,GAAAA,IAAQ,OAAZ,IACEC,IAAgC,MAC9BD,IAAQ,KACRN,eAF8B,IADlC,EASF,EAGMM,GAAAA,IAAQ,OAAZ,IACEC,IAAgC,MAC9BD,IAAQ,KACRN,eAF8B,IADlC,EASF,EAIS1O,GAAAA,IAAAA,KAAoC,MAAA,IAAOgP,GAAAA,IAAQ,KAAnDhP,IAAP,EAIOgP,GAAAA,IAAQ,KAAf,EAzFc,QAC+C,EAEzDV,GAAAA,IAAmB1mB,IAAK,KAA5B,IAA6CA,IAAK,KAAZ,OAAtC,IACsBA,IAAK,KAAR,MACjBsnB,IAAuB,KAAN,KAIjBX,IADF,GAEEC,IAFF,GAGGA,IAAmB,KAAWD,IAAS,KAH1C,IAIIC,IAAmB,MAASD,IAAS,MAJzC,IAM2BA,IAAH,MACtBY,IAAmCT,IAAZ,EAAA,KAAA,KAAD,KAPxB,EAUIrkE,MAAW,KAAA,KAAc,OAA7B,IAII2kE,IAAQ,OAAZ,IACEC,IAAgC,MAC9BD,IAAQ,KACRN,IACAC,IACAJ,MADI,IACJ,KADI,GAAA,OAEJA,MADgB,IAChB,MADgB,OAAA,kBAJc,IAQpC,EAZI,EAwBY,EACQS,GAAAA,IAAQ,OAE9B,MAWF,MAVIhP,GAAAA,IAAAA,KAA4B,MAACoP,IAAD,KAErB,KAAP,EACEpP,GAAAA,IAAAA,KAA8B,MAACoP,GAAAA,IAAD,KAE1BpP,KAAoC,MAAA,IAAxC,IACEqP,IAAAA,KAAWD,MAAD,KAAoB,MAAA,IADhC,EAGF,EAsCqBxnB,GAAAA,IAAK,MAAX,EACJ,GACXonB,GAAAA,IAAgB,MAwBhB,GACcM,IAAH,MACOC,IAAH,MACMC,IAAH,MACGC,IAAH,MAJlB,EAMF,EAGgB,GACS,KAAY,KACrC7nB,GAAAA,IAAK,MAALA,GAAkBA,IAAc,MAAA,KAChCA,IAAK,MAALA,GAAsBA,IAAkB,MAAA,KAEpConB,IAAQ,OAAZ,IAMAE,MAAiB,KAKjBQ,IAA6B,KAAY,MAAlB,KACzB,IATI,EAWkB,GACK,KAAY,KACrC9nB,GAAAA,IAAK,MAALA,GAA+BA,IAA2B,MAAA,KAC1DA,IAAK,MAALA,GACEA,IAA+B,MAAA,KAE7BonB,IAAQ,OAAZ,IAMAE,MAAiB,KAKjBQ,IAA6B,KAAY,MAAlB,KACzB,IATI,EAWuB,GACzB9nB,GAAAA,IAAK,MAALA,GAA2BA,IAAuB,MAAA,KAE9ConB,IAAQ,OAAZ,IAMAG,IACkB,KAAY,MAC5BT,IAFqB,EAAA,KAAA,OAAD,KAIxB,IAPI,EAUF1O,GAAAA,IAAAA,KAAyB,MAACgP,GAAAA,IAAQ,KAAT,KACrBpnB,IAAK,MAAT,GACEA,IAAa,SAAA,KADf,EAGF,EAGEoY,GAAAA,IAAAA,KAAwB,MAACgP,GAAAA,IAAQ,KAAT,KACpBpnB,IAAK,MAAT,GACEA,IAAY,SAAA,KADd,EAGF,EAGEA,GAAAA,IAAK,MAALA,GAAkBA,IAAc,SAAA,KAAhCA,EACF,EA0CeA,GAAAA,IAAK,MACC,MAEfr3C,GAAAA,IAAAA,KAAQ,WAARA,IAAyBq3C,IAAK,MAAN,GAXrB,IACI,KADJ,IAAA,KAAA,KAAA,KAAP,EAEQA,GAAAA,IAAK,QAAT,IACMonB,IAAQ,OAAZ,IACEA,IAAQ,KAAc,MAAA,IADxB,EAIJ,EAzZ+B,EAAH,EAwnBb,SAkBnB,QAhBkBW,OAAO,QACGC,OAAO,MACZC,OACT,MACG,MACP,MACA,MACI,MACC,MACJ,MACG,MACA/zB,GAAAA,IAAA,KAAAwb,IAAA,MAMAztC,IAAAA,KAAsB,KAAV,SAEtBimD,IAAK,MAAT,IAEIroB,IAAyC,MAAN,IADd,MAKvBhH,IAAA,KAACsvB,IAAiBt3D,IAINu3D,IAAyB,GAEjCC,GAAeC,IAA2B,IAG1CC,GAAYC,IAA0B,IAGtC7/D,IAAAA,KAAQ,WAARA,IAEI8/D,IAAuC,OAFlB,OAAA,GAOzB9/D,IAAAA,KAAQ,YAARA,OAAAA,GAEgB+/D,IAAhBC,OAFAhgE,GAII+/D,IAAmC,IAvBzB,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MA0BH,KAAA,KAAA,IAAA,EA1BG,OAAlB,MADF,E,K,KCvkDY,MACR,KAAgB,QAEtBjmE,MAAqB,KAAO,KAAwB,IAAA,QAA/B,SAA8C,EAZnE,QACE,MAGgBqB,QAAM6M,QAAkC,IAAnC,KAAA,UAAA,IAAA,OACJ,MACjB,EAJE,E,qB,K,I,O,I,K,M,K,I,Q,O,M,M,S,I,K,QCYJ,IAAA,KAE8D,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAtI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,W,YAD9D,IAAA,KAAA,QACA,IAAA,KAAA,KAMwCmU,KAAsC,EACzD,QADyD,KAAjB,KAE1D,MAEmD,MAAA,KAEjDgL,KAFiD,MAGrC,EACVA,KAAsB,MADZ,MAC4B,EAAA,KAAA,EAD5B,OADU,EAAA,KAAA,EAF2B,OAAA,IAOpD,MAG2B,KAEzB,KAFyB,MAMqB,MAAA,EA1BY,IAAA,KAAA,OAAA,cAAArZ,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAsBpD6M,GAAAA,IAAN,E,kB,K,I,O,I,Q,I,K,Q,I,K,QCzBJ,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAxO,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,6B,YAAA,IAAA,KAEJ,KAAH,IAiHT,UAAH,IAyBiB,UAWf,EAAA,MACW,EAAA,UADX,OAAA,IAUI,EAAA,MACO,EAAA,UADP,OAAA,IAOI,EAAA,MACG,IAAA,KAAA,EADH,OAAA,IAQN,UAAH,IAwBI,MACU,MACE,MACG,MACJ,MACA,MACG,MAPd,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAUA,MACU,MACE,MACG,MACJ,MACA,MACG,MAPA,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAUd,MACU,MACE,MACG,MACJ,MACA,MACG,MAPC,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAUf,MACU,MACE,MACG,MACJ,MACA,MACG,MAPF,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAUZ,MACU,MACE,MACG,MACJ,MACA,MACG,MAPD,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAUb,MACU,MACE,MACG,MACJ,MACA,MACG,MAPG,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAUjB,MACU,MACE,MACG,MACJ,MACA,MACG,MAPI,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAUlB,MACU,MACE,MACG,MACJ,MACA,MACG,MAPtB,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAhEW,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAH,IA0JM,EACF,KADE,KAYC,KAZD,KAyBK,KAzBL,KAuCuB,KAvCvB,KAgDmB,KAhDnB,KAuDW,KAvDX,KAkEU,KAlEV,KA6GY,KA7GZ,KAuHc,KAvHd,KAiIS,KAjIT,KAwNC,KAxND,KAsOA,KAtOA,KAwTU,KAxTV,KAuUD,KAvUC,KAmWP,KAnWO,KA0WH,KA1WG,KA+XL,KA/XK,KAwaS,KAxaT,KA6aP,KA7aO,KAsbC,KAtbD,KA+bM,KA/bN,KAuda,KAvdb,KAshBJ,KAthBI,KA6hBN,KA7hBM,KA4iBQ,EA5iBR,KAyjBL,MAAA,MAD2B,KAC3B,QAD2B,MAEJ,MAGR,EAAA,KAKd,KALc,QAoBnB,MAAa,EAj7BI,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAEJ,GAYE,MACO,SACf4+D,GAAkB,OAAPA,IAAXA,GACOC,GAAgC,OAAdA,IAErC,GAAA,KACW,IADX,EAEHC,KACO,IADPA,GAFJ,EA+UOngE,GAAAA,IAAAA,KAAQ,MAAb,KACE,IAEJ,EAOsB,EAChB,MAAJ,KAA8Bua,MAAiB,QAAL,KACtC,MAAJ,KAA8BA,MAAiB,QAAL,KACtC,MAAJ,KAA6BA,MAAiB,QAAL,KAAzC,EACF,EAae,IAAA,OAAA,KADN,EAAA,KAAP,EAW0C,EAC9B,KAAM,MAAX,GAAP,EAQsC,EAC1B,KAAM,KAAX,GAAP,EAM8B,EAC9B,EAU6B,cACT,MAIX,MAAA,IAEL,MAAJ,KAA6BA,MAAiB,QAAL,KAAzC,EACyB,MAErB,KAAM,MAAwB6lD,GAAAA,IAAM,MAAT,MAC3B,KAAM,MAAsB,MACb,MAACC,IAAO,MAAR,MAEb,WAAJ,MACIhkE,MAAQ,KAAkC,MAAA,MAAlC,MADZ,EAGQ6V,MAAK,KAALA,MAAAA,EACV,IAMmB,MAAA,KANnB,EAC+BoI,MACvB,MAAkB,KAAA,MADe,MAAb,MAStB,SAAJ,IACIje,MAAQ,KAAkC,MAAA,OAAlC,MAEA6V,MAAK,KAALA,MACeoI,MACvB,MAAsB,KAAA,MAC1BgmD,IAFqC,MAAb,MAI5B,EAOiC,IACX,MACD,MAACD,GAAAA,IAAO,SAAR,QACrB,EAOmC,IACb,MACD,MAACA,GAAAA,IAAO,SAAR,QACrB,EAO8B,KAEnB,KAAM,MAAU,MAAzB,KACE,EAG6B,KAAM,MAAU,MACd,KAAM,MAAU,MACrB,MAAJ,GAEpB,UAFoB,EACY,MAAA,IAQC,KACD,KACE,KACC,KAEnB,QAAJ,GACY,MAAA,IADZ,YAIhB,GAC4B,KAAP1E,KAAJ,IACU,KAAPA,KAAJ,IACa,KAAPA,KAAJ,IACY,KAAPA,KAAJ,aAGL4E,GAAAA,IAAoB,OAAF,QAClBrkD,GAAc,MAAdA,GACAA,GAAc,MAEpB,MAAR,GACsD,MAG9C,MAAgB,MAChB,MAAgB,eAJ8B,OAMpD,IACmC,MAAA,IAKT,KAAlBskD,IAARnoB,IAAAA,GAC0B,KAAlBmoB,IAARpoB,IADAC,GAGoB,KACI,KADtBmoB,IAAAA,IADFnoB,IAFAA,GAOoB,KACI,KADtBmoB,IAAAA,IADFpoB,IAIF,GAYmC,MAAA,IACd,MAACioB,IAAO,MAAR,MAbrB,EACwB,KAAM,MAAU,MACnB,MAACA,IAAO,MAAR,MACE,KAAM,MAAU,MAEtBD,IAAM,MADrB,IAEgBA,IAAM,MAFtB,IAKmC,MAAA,IAMvC,EAYsB,EAChB,KAAM,MAAV,GAA0B,KAAc,SAAA,KAAxC,EACF,EAYqB,EACf,KAAM,MAAV,GAAyB,KAAa,SAAA,KAAtC,EACF,EAgF+B,EACL,KAAM,MAAU,QACxC,IAII,OAAJ,IAGqB,MAAK,MAAL,KAHrB,EACExxD,GAAAA,IAAAA,KAAiB,MAAkB,MAAlB,MADnB,EAKF,IARI,EAYgB,iBASlB,MAAA,GAAA,GAAA,GAAA,GAAA,KACE,EAEE,KAAM,MAAU,MAApB,GACE6xD,GAAAA,IAAAA,KAAgB,MAAK,KAAM,MAAU,MAArB,KACd,KAAM,MAAU,MAApB,GACEC,GAAAA,IAAAA,KAA0B,MAAK,KAAM,MAAU,MAArB,KACxB,KAAM,MAAgCD,GAAAA,IAAAA,KAAkB,MAAA,MAArB,MAInC,KAAM,MAAkCC,IAAAA,KAA4B,MAAA,MAA/B,QAI3C,EAIc,IACc,MACP,MAACL,GAAAA,IAAO,SAAR,QACrB,EAIkB,IACU,MACL,KAAM,MAAU,MAEtBD,GAAAA,IAAM,MADrB,IAEeA,IAAM,MAFrB,IAIqB,MAACC,IAAO,SAAR,MAJrB,EAMF,EAYgB,aACU,KAAM,MAAU,MACnB,KAAM,MAAU,MACnBnnB,GAAAA,IAAW,IAAXA,GAAyBA,IAAW,IAAU,IAChE,GAA+BmnB,IAAO,MAAtC,MACE,EAEF,KACYllE,UACR,QAAA,IAAA,IAKa,KAAM,MAAU,UAL7B,IAKE,GALF,QAAA,IAOQ,KAAM,MAAU,MARX,KAAA,UAAA,IAAA,IAAf,EAYgBilE,IAAM,MAAxB,IAaA,IACuC,qBAAA,IACjC,KAAM,MAAqB,MAFjC,EAIF,IAhBcjlE,UACR,QAAA,IAAA,IAKa,KAAM,MAAU,UAL7B,IAKE,GALF,QAAA,IAOQ,KAAM,MAAU,MARX,KAAA,UAAA,IAAA,IAAf,EAoB0B,EACxB,MAAJ,KAA8Bof,MAAiB,QAAL,KAA1C,EAC0B,QAC5B,EAEc,GAEA6lD,GAAAA,IAAM,MAAhBhgC,IAAAA,GACUggC,IAAM,MAAhBhgC,IAFF,EAScmgC,GAAAA,OAAoB,OAAF,QAClBrkD,GAAc,MAAdA,GACAA,GAAc,MAAdA,GACIA,GAAc,MAAdA,GACAA,GAAc,MACT,EAAA,KAAA,KAAA,KAAA,OAAH,MACtB,EAE2B,MAMVwpC,UACAib,MACRtkE,MAAS,MAACukE,IAAkBC,IAAlBD,IAAD,KAAhB,EAgBgC,cAMQ,MAAA,KACA,MAAA,KAG3BP,GAAAA,IAAO,MAAlBloB,IAAAA,GACWkoB,IAAO,MAAlBloB,IAEF,GACmC,MAAA,IAIpBioB,IAAM,MAAnBU,IAAAA,GACcV,IAAM,MAApBjnB,IAE0B4nB,IAAQ,IAAT,GAAA,GAAuBA,IAAQ,IAC1D,GAAA,GACoC,MAAA,IAGhCC,IAAY,IAAhB,GAAyCX,IAAO,MAAhD,IACM,MAAJ,GAA8D,MAAA,KAGhE,GAAA,GACsB,MAAA,KADtB,EAEO,GAAA,GACa,MAAA,KAGhBW,IAAY,IAAhB,MAAyCX,IAAO,MAAhD,OACoC,KAAM,MAAX,GAE3BY,IAAgB,IAAhBA,GAF0B,GAGzB,GAAA,GAA4D,MAAA,IAApC,GAAxB,GAGAA,IAAgB,IAAjB,GAAA,MACF,GAA6B,MAA7B,GACE,GAAA,GAEsB,MAAA,KACF,MAAA,KAEhBjhE,IAAAA,KAAQ,SAAZ,IAAsC,KAAM,MAA5C,GACEw5C,IAAAA,KAA2B,MAAA,IAEJ,MAAA,KAIzB,MAAJ,KAA8Bj/B,MAAiB,QAAL,KAA1C,EAC0B,QAC5B,EAIiB,KACU,MAAA,KACrB,MAAJ,GAAsE,MAAA,KAAtE,EACF,EAIe,SACL,MAAR,aAEQ,MADN,GAEkC,MAAA,IAFlC,GAQoC,MAAA,yBAJND,MAEO,MAAA,IAFI,KAAD,MAAb,MAO/B,EANQhV,GAAAA,IAAkC,MAACxG,IAAD,OACpC,EA6BW,GACV,KACE,QASP,E,Q,K,MCz7BS,MAAA,QACb,IAAA,KAAA,KAE0BoiE,KAAW,MAcnB,KAAwB,KAAH,MASG,KAAH,MAOvCA,KAAwB,MAAA,SAEV,MAAsB,EAvBpC,MACY,SACC,QACb,EAE0C,KAC9B,MACC,QACb,EAM0C,GACjCR,GAAAA,IAA4B,MAC1B,MACA,MAF0B,MAAnC,E,UC1BW,MAAA,QACb,IAAA,KAAA,KAAA,IAW0B,KAsDD,KAAH,IAaF,IAmCA,EAtBC,KAsBD,KAAA,KAzFM,KAyFN,KA5EQ,KA4ER,KA/DO,KA+DP,QAQN,MAAe,EA9GH,MAEf,MAAa,KAAtB,GAKkB,KAAA,UAAA,IAAA,IAAhB,EAJsB,MAAiB,KAAA,IAC7B,KAAA,MACV,EAQsB,SAEf,MAAa,KAAtB,GAKkB,KAAA,aAAA,IAAA,IAAhB,EAJsB,MAAiB,KAAA,IAC7B,KAAA,OACV,EAQwB,YAEjB,MAAa,KAAtB,GAKkB,KAAA,gBAAA,IAAA,IAAhB,EAJsB,MAAiB,KAAA,IAC7B,oBAAA,IACV,EAQuB,eAEhB,MAAa,KAAtB,GAKkB,KAAA,mBAAA,IAAA,IAAhB,EAJsB,MAAiB,KAAA,IAC7B,uBAAA,IACV,EAUqB,MAEvBv6D,GAAAA,IAAAA,KACEtB,UADO,MAIU,MAAA,IACV,MAAa,KAAe,MAArC,IACO,MAAkB,KAAA,KAE3B,EAgBqB,MAaK,IAAH,MACAs8D,GAAUC,GAAAA,IAAb,MACL,MAAb,MACmB,MAEAC,GAAAA,IAAH,MAChB,E,Q,OChHW,MAAA,QACb,IAAA,KAAA,KAE0BH,KAAW,MAe7B,KAAwB,KAAH,MAK7BA,KAAwB,MAAA,SAEV,MAAY,EAZ1B,MACW,SACD,QACV,EAEgC,KACrB,MACD,QACV,E,kB,K,I,K,I,K,M,I,Q,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OCjBA,IAAA,KAAA,QACA,IAAA,KAAA,QAGA,IAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxhE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,uC,S,SAA/B,OAA+B,IAAA,KAAA,IAAA,QAAA,IAuIO,KAAd,KA8NrB,KA9NqB,IAiOW,MAAC,KAAD,SAOd,SAEP,MAAa,EAjXI,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAuIP,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAQrBzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAkEA,MAAA,IAED,KAFC,IAlEA,IA8EA,MAAA,IAED,KAFC,IA9EA,IAwFA,MAAA,IAED,KAFC,IAxFA,IAwGA,MAAA,IAED,KAFC,IAxGA,IAiHA,MAAA,IAED,KAFC,IAjHA,IAsMA,MAAA,IAED,KAFC,IAtMA,IA0MA,MAAA,IAED,KAFC,IA1MA,IA8MA,MAAA,IAED,KAFC,IA9MA,IAAA,MAsNA,EA9NqB,MAAAC,GAAAA,IAAA,KAAAq9D,GAAAA,IAAA,MAAA,KAAAhmE,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,IAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,QAEZ,MAGUovC,IAAAA,KAA2C,MAAA,IAA/B,KAAA,OAAA,IAAA,IAE5B,KAAU,UAAVxyC,IAA8D,MAAA,IAHnD,EAAA,KAAA,KAAV,MAIJ,EAED,IAEqB,KAAM,MAAX,GAEN,KAAM,OAAV,IAEQ,KAAM,OADS,IACnB,KAFJ,EACQ,KAAM,KADd,IAGW,KAAM,MACC,KAAM,MACR,KAAM,MACL,KAAM,MAEJ,KAAM,MACD,KAAM,MAiBf,KAAM,MA7BlB,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,OAAA,KAAA,KAAA,KAaG,KAbH,KAqBI,KArBJ,KAAA,KA8BI,KA9BJ,IA4CM,KA5CN,KAsDO,KAtDP,KAAP,EAcQtF,GAAAA,IAAAA,KAAQ,MAAZ,GACEwF,GAAAA,IAAkB,MAAA,IAEhBA,GAAAA,IAAI,KAAM,QAAd,IACEA,IAAI,KAAa,SAAA,KADnB,EAGF,EAEMxF,GAAAA,IAAAA,KAAQ,MAAZ,GACEwF,GAAAA,IAAkB,MAAA,IAEhBA,GAAAA,IAAI,KAAM,QAAd,IACEA,IAAI,KAAc,SAAA,KADpB,EAGF,EAGMA,GAAAA,IAAI,QAAR,MACE+U,MAAa/U,IAAI,QAAL,KAETxF,GAAAA,IAAAA,KAAQ,MAAb,GACEwF,IAAkB,MAAA,MACE8U,MAEb,KAAM,QAAZ,OAAA,IAF8B,KAAD,MAAb,MAIf9U,IAAI,KAAM,KAAd,IACEA,IAAI,KAAc,QAAA,KADpB,EAGF,EANMA,GAAAA,IAAkB,MAAA,MACpB,EAOEA,GAAAA,IAAI,QAAR,MACE+U,MAAa/U,IAAI,QAAL,KACK,MAEnBA,IAAkB,MAAA,IACV,KAAM,MAAd,IACEA,IAAI,KAAgB,SAAA,KADtB,EAGF,EAEMA,GAAAA,IAAI,QAAR,IACEA,IAAkB,MAAA,IAEhBA,IAAI,KAAM,MAAd,IACEA,IAAI,KAAiB,SAAA,KADvB,EAGF,EAIJ,gBAEyB,KAAM,QAAZ,OAAR,EAAA,IAGC,KAAM,QAAV,IAEQ,KAAM,MAJR,EAAA,IAFL,EAAA,IAAA,KAAP,EAWF,EACW,MAAT,GAA8C,MAAA,IAA9C,KACE,EAEW,KAAsC,MAAA,IAArC,EAAA,KAAD,KACL,KAAM,QAAd,IACM,KAAqB,MAAA,IAD3B,EAGF,EAEA,EACU,QAAR,MACE+U,MAAiB,QAAL,KACK,MAEX,KAAM,QAAd,IAGyB,MAAA,IAAzB,GACe,KAAC,EAAA,KAAD,KACL,KAAM,MAAd,IACM,KAAqB,MAAA,IAD3B,EAIJ,IARI,EAUJ,EAEQ,KAAM,OAAV,IAAA,GACI,KAAM,MAAV,IADA,GAEI,KAAM,MAAV,IAFA,GAGI,KAAM,MAAV,IAJF,EAQF,YACgBpa,GAAAA,IAAK,MAAc,MAAK,KAAM,KAAX,KAK3B,KAAM,MAA8B,MAAA,IAD7B,MAAS,MAAqCorC,IAAA,KAAAC,IAAA,MAIrD,KAAM,OAAV,IAKQ,KAAM,KALd,EAA2BtjC,IAEd,KAAM,KAFQ,EAAA,MAGP,KAAM,KADY,EAAA,IAAA,EAFX,OAQlB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACvB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACvB,KAAM,MAAZ,IAAqC,KAAM,QAAd,IAAI,KAAJ,GACtB,KAAM,MAAZ,IAAsC,KAAM,QAAd,IAAI,KAAJ,GAJT,EAAA,IAAA,IAAA,IAAA,IAQrB,KAAM,UAAV,IAEQ,KAAM,MADJ,IACyB,KAAM,MAD/B,GAIN,KAAM,MADY,IACU,KAAM,MAEtCgoC,IAAA,KAACW,IAAA,KAAI3oC,IACa,KAAM,MAEC,KAAM,MACF,KAAM,MACV,KAAM,MAGH,KAAM,MACL,KAAM,MAE3B,KAAM,QAAV,IAEQ,KAAM,MAGV,KAAM,MADY,IACU,KAAM,MAIlC,KAAM,MADe,IACQ,KAAM,MAElC5H,IAAAA,KAAkB,MACnB,KAAM,KACN,KAAM,QADM,IAChB,MAFuB,MAIX,KAAM,KACP,KAAM,MACM,KAAM,MACZ,KAAM,MACH,KAAM,MACT,KAAM,MACL,KAAM,MACT,KAAM,MAEjB,KAAM,QAAV,IAAA,GAAsC,KAAM,KAAV,IAEtB,KAAM,MACR,KAAM,MACT,KAAM,MAvCZ,EACS,IADT,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,MAyCFH,IAAkB,MACVG,IAAAA,KAAkB,MAClB,KAAM,KACP,KAAM,QADO,IACjB,KAFuB,MADA,EAAA,IAAR,MADiB,IAAA,IAAA,IAAA,EAAA,IAAA,EAxCjC,OAAL,MADF,EAuDF,IACiB,QACjB,EAEA,EACM,KAAM,MAAuB,MAA+B,MAAA,IAA/B,OACnC,EAEA,IACiB,MACP,QAAR,MACEia,MAAiB,QAAL,KAEV,KAAM,MAAmB,MAAA,MAC/B,EAIA21B,GAAAA,IAAA,KAACoxB,IAAkBp5D,MAAA,KAAA,MAAU,KAAA,KAAA,EAAV,OAAnB,MADiD,E,kB,K,I,K,I,K,M,I,Q,I,K,K,O,I,K,K,O,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,K,OCnWnD,IAAA,KAAA,QACA,IAAA,KAAA,QAGA,IAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,uB,S,S,SAA/B,OAA+B,IAAA,KAAA,QAAA,IAAA,QAAA,IA6DL,QAAH,IA0BqB,KAAd,KA2E3B,SA6BiC,SAEtB,MAA4B,EAjMX,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAAA,KAAA,IAAAiG,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAqK/B,KAC+B,MACrBsmC,GAAAA,IAAA,KAAAwb,IAAA,QAGN1V,IAAqB,OAAT,IAAI,KAAJ,GAEM,MAAN,GAEL,KAALgG,IAA+B,KACnB,MACO,MACF,MACC,MAEE,MACK,MACd,MACC,MACI,MACJ,KACE,MACC,MAhBZ,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,OAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAP,EApF4B,EAAA,KAAA,IAAAz9B,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAG3BzE,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAgEA,MAAA,IAED,KAFC,IAhEA,IAoEA,MAAA,IAED,KAFC,IApEA,IAAA,MAwEA,EA3E2B,MAAAC,GAAAA,IAAA,KAAAs9D,GAAAA,IAAA,MAAA,KAAAjmE,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,IAAAoN,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MAERovC,IAAAA,KAAa0pB,IAAyB,KAAD,KAAzB,KAAA,OAAA,IAAA,IADjB,EAAA,KAAV,MAEJ,EAED,gBACkBrhE,GAAAA,IAAK,MAAc,MAAK,KAAM,KAAX,KACV,KAAM,KAAd,IAAA,IACI,KAAM,MAWf,KAAM,QAAZ,IAAiC,KAAM,OAAd,IAAI,MAAJ,GAEvB,KAAM,MADL,IAC6B,KAAM,OAAd,IAAI,MAAJ,GAEtB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,KAAJ,GAEvB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,MAAJ,GAEvB,KAAM,MADJ,IAC6B,KAAM,OAAd,IAAI,MAAJ,GATL,EAAA,KAAA,KAAA,IAAA,KAAA,KAepB,KAAM,MAA8B,MAAA,IAD7B,MAAS,MAAqCorC,IAAA,KAAAC,IAAA,MAGjBtjC,IAAA,EAAA,MAExB,KAAM,MAEhB,KAAM,QAAV,IAA2BA,IAAA,EAAA,MAGP,KAAM,KADE,EAAA,IAAA,EAFD,OAOvB,KAAM,QAAV,IAAA,GAAsC,KAAM,KAAV,IAG9B,KAAM,MADe,IACQ,KAAM,MAEnC,KAAM,QAAV,IAEQ,KAAM,MAFd,IAIA8pC,IAEIA,IAAgB,KAAM,MAAtBA,GACQ,KAAM,KAAZ,IAAuB,KAAM,MAtBF,EACvB,IADuB,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,EADK,OAyBvByvB,IAAnB,GAAA,GAAA,IAAA,GAAA,IAAA,GACU,KAAM,IAAd,UAC2B,KAAM,IAAb,IAEtB,EAAA,EAAA,GAAA,EAEOthE,IAAK,MAAa,KAAb,IAAA,IAAA,IAAmC,KAAA,KAAtB,MAAzB,EAGF,EACM,KAAM,MAAuB,MAACqhE,GAAAA,IAA6B,OAAL,KAAzB,KACnC,EAEA,EACM,KAAM,MAAmB,MAAA,MAC/B,E,Q,K,I,K,M,M,Q,I,K,K,O,I,K,K,OCnLF,IAAA,KAAA,KAAA,IAA+D,QAAA,OAEnC,IAAA,KAAV,OACO,IAAA,KAAV,IAOQ,EAkBK,KAlBL,KAmGU,KAnGV,KA4HD,KA5HC,QAoIT,MAAkB,EA9I+B,OAAA1nE,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA4BnC,QAexB8E,GAAAA,IACE,OAAA,IAAA,GAA+BiT,IAA/B,MADO,MAITjT,IAAU,OAAA,QAAD,MACCu7D,IAAAA,SAAD,MAOE,MAAA,MAAA,MADUn2B,IAAA,KACVC,IADU,QAIjBlwC,MAAa,KAAA,QAAjB,GAEW,SAAJ,IACsB,IAAA,OAGFqU,IAAY,KACY,KACnDxJ,IACEw7D,IAAAA,GAA8B,OAAA,IAA9BA,IADO,MAITx7D,IACEy7D,IAAAA,GACE,OAAA,IADFA,IADO,MAKTF,IAAAA,KAAgD,MAAAx5D,IAAA,EAAA,MAEzB,EAAA,KAAA,KAAA,KAAA,EAFyB,OAAA,MASlD,EAyB+B,SAK7B/B,GAAAA,IACE,OAAA,IAAA,KAA+BiT,IAA/B,MADO,MAITjT,IACE,OAAA,QADO,MAKP,GAAA,QADO,MAICu7D,IAAAA,SAAD,MACTA,KAAqD,MAAAx5D,IAAA,EAAA,MAC3ByH,IAAoB,MAAR,KAAzB,EAAA,KAAA,EADwC,OAAA,OAKvD,EAGExJ,GAAAA,IAAUu7D,IAAAA,WAAD,MACEA,KAAqB,MAA5B,OAAJ,IACEA,IAAAA,KAAwC,MAAA,IAE5C,E,e,K,I,M,K,I,Q,O,WC5IF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAhiE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAyCnC,SAAA,KAA4B,MAAA,EAzCO,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Y,I,QCF1E,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QAGA,IAAA,QACA,IAAA,KAAA,QAIA,IAAA,KAAA,KAGyBiE,KAAY,KAAA,OAAA,IAAA,IAQjC+9D,KAAJ,aAEQp2B,KAGFzrC,KAAQ,WAARA,IAA+B6hE,KAA/B7hE,QAHoB,KAAA,UAAA,IAAA,IAKM,SAE5B,KAF4B,MAPhC,IAsBiB,EAWD,KAXC,KAqCE,KArCF,QAAH,MAwCZ,EArDE,GACqC,MACnCmG,GAAAA,IAAAA,SACE27D,IAAAA,OACEA,IADFA,KAEEA,IAFFA,MADO,MAMTz0D,IAAiB,MAAW,EAAA,SAAX,MACnB,EAeY,EAWVw0D,GAAAA,IAAAA,OAAAA,IAEIA,IAAAA,KAA+B,MAAA,IAA/BA,KAAAA,GACN17D,IAAAA,SACE47D,IAAAA,OACEA,IADFA,GAEEA,IAFFA,MADO,MAMT,EAOO10D,GAAAA,IAAwB,YAAA,MAA/B,E,K,M,K,I,Q,S,QCjFyC,MAAA,E,e,K,I,M,K,I,Q,O,WCE7C,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA3N,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAsBnC,SAAA,KAAoB,MAAA,EAtBe,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,U,M,Q,I,K,K,O,I,K,K,OCF1E,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAEA,IAAA,KAAA,KAAA,IAuBc,KAuFX,IAG2B,KAAA,OAAA,IAAA,OAAhB,MAA8B,EA1F9B,EAAA,KAAA,IA8CXmE,GAAAA,IAAA,KAAA,MAAA,IAQD,KARC,IAAA,IAAA,MAAA,MAyCA,EAjFD,QAAcC,GAAAA,IAAA,KAAA+9D,GAAAA,IAAA,MALF,MAMNC,IAAAA,KAAJ,SAGkB,MAGVx2B,IAAAA,KAGFzrC,IAAAA,KAAQ,WAARA,IAA+BiiE,IAAAA,KAA/BjiE,YAHoB,KAAA,UAAA,IAAA,IADyC,IAMpD,MAEOiiE,IAAAA,KAA2B,KAAA,IAAE,MAAhC,QAED,IAMhBC,IAAmB,SAAsB,KAAtB,MASnBD,KAAiC,MAO9BE,IAAAA,KAP+B,KAAD,MA9BnC,IACkB,kBAsCpB,EAjBkB,KAAA,IACZ78D,OAAgC,MAAf,QACnB,EAMkC,GAE3B88D,GAAAA,IAAL,GAAqB98D,IAAI,MAA8B,MAAvD,IACEA,IAAgC,MAAf,MAEjB48D,IAAY,UAAA,MAHd,EAKF,EAUJ,UAIsB,QACpB,OAGA,IAAA,QAAA,QAAA,QAAA,MAwBU/mE,UAAM,IAAD,KAAA,OAAA,IAAA,IAAf,MAVwC,IACV,SAAwB,KAAxB,MAA1B,EAL0B,KAAA,MAA1B,EAP2C,IACjB,SAAsB,KAAtB,MAA1B,IANQA,MAAK,KAAA,WAAA,IAAA,IAAf,EAOIknE,GAAAA,OAA0B,QAAb,KACf,EASkD,GAC5C51D,GAAAA,QAAJ,IAAA,GACE61D,MAAkB,IAEhB71D,QAAJ,IAAA,GACE61D,MAAkB,IADpB,EAGF,E,ECxGS,QASH,QAAY,EATT,MAA0C,KAAzBhnE,MAAA,KAAA,UAAA,IAAA,MAAyB,IAAzB,IAAA,IAAA,GAAyB,IACjD,QAAR,IAA6B,IAAeH,MAAnB+H,IAAzB,GAIE9H,MAAO,KAAY,KAACA,MAAD,MAJrB,EACkB,IAChBA,MAAa,KAAiB,SAAhB,IAA+C,UAA/C,IAAA,IAAD,KAIjB,E,e,K,I,M,K,I,Q,O,WCZA,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAsE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAgB1B,UAAA,KAAkB,MAAA,EAhBQ,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,U,M,QCF1E,IAAA,KAAA,KAAA,IAKiB,EASN,KATM,KAqBN,KArBM,QAAH,MAwBZ,EAdS0iE,GAAAA,IAAAA,KAAyB,MAAA,IAAhC,EAYAA,GAAAA,IAAAA,KAAyB,SAAA,OAC3B,E,e,K,I,M,K,I,Q,O,WC1BF,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA7iE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAQ7B,UAAA,KAAmB,MAAA,EARU,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Q,M,QCF7E,IAAA,KAAA,KAEiBmU,QAAH,MAAoB,E,U,M,QCAlC,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,KAMI,EACS,KADT,KAEI,KAFJ,KAGW,KAHX,QAmDU,MAAe,EAlDhB,EAA6C,EAClD,EAAyB,EAClB,EAAU,E,e,K,I,M,K,I,Q,O,WCXzB,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAtU,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAoB7B,UAAA,KAAqB,MAAA,EApBQ,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Q,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OCA7E,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAYsB4rC,KAAT,KAsGV,KAG0B,KAAA,OAAA,IAAA,OAAf,MAA4B,EArHN,KAAA,IAAAnkC,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAYvB,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAGVzE,IAAA,KAAA,MAAA,IAQD,KARC,IAAA,IAAA,IAcA,MAAA,IAOD,KAPC,IAdA,IA4BA,MAAA,IAOD,KAPC,IA5BA,IA0CA,MAAA,IAOD,KAPC,IA1CA,IAuDA,MAAA,IAQD,KARC,IAvDA,IAqEA,MAAA,IASD,KATC,IArEA,IA2FA,MAAA,IAED,KAFC,IA3FA,IAAA,MAmGA,EArGD,IAAcC,GAAAA,IAAA,KAAAu+D,GAAAA,IAAA,MAAA95D,IAAA,KACN1I,IAAAA,KAAQ,WAARA,IAAwB8+D,IAAAA,KAAW2D,IAAAA,KAAD,KAD5B,MAAA,EAUd,EAKyB,WAAA,MAAvB,EAQF,KACmB,MAAA,KACbziE,GAAAA,IAAAA,KAAQ,SAAZ,IAGS8+D,IAAAA,KAAW2D,IAAAA,OAAD,KAA8B,MAAA,KAA/C,EAFO3D,IAAAA,KAAW4D,IAAAA,OAAD,KAA6B,MAAA,KAA9C,EAWJ,KACmB,MAAA,KACb1iE,GAAAA,IAAAA,KAAQ,SAAZ,IAGS8+D,IAAAA,KAAW2D,IAAAA,OAAD,KAAiC,MAAA,KAAlD,EAFO3D,IAAAA,KAAW4D,IAAAA,OAAD,KAAgC,MAAA,KAAjD,EAYE1iE,GAAAA,IAAAA,KAAQ,SAAZ,IAGS8+D,IAAAA,KAAW2D,IAAAA,OAAD,KAAmC,MAAA,IAApD,EAFO3D,IAAAA,KAAW4D,IAAAA,OAAD,KAAkC,MAAA,IAAnD,EAaK1iE,GAAAA,IAAAA,KAAQ,SAARA,IAIH8+D,IAAAA,KAAW2D,IAAAA,OAAD,KAAoC,MAAA,IAJ3CziE,EACHwgD,IAAAA,KAAuC,MAAA,IAAO,OAAC,KAAD,KADlD,EAEMse,GAAAA,IAAAA,KAAW4D,IAAAA,OAAD,KAAmC,MAAA,IADA,EAqB/C1iE,GAAAA,IAAAA,KAAQ,SAAZ,MAGaqD,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAFOy7D,IAAAA,KAAW4D,IAAAA,OAAD,KAAgC,YAAA,MAAjD,EAEmB,EAAgCvnE,MAAK,KAAA,WAAA,IAAA,SAAV,KAAX,EAIvC,GACEgL,GAAAA,IAAAA,SAEE,MADA,OAAA,IADO,MAITA,SAAS,MACX,E,e,K,I,M,K,I,Q,O,WCxHF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAzG,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAiBnC,SAAA,KAAuB,MAAA,EAjBY,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,e,K,I,M,K,I,Q,O,WCA1E,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAcnC,SAAA,KAAwB,MAAA,EAdW,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,U,M,QCC1E,IAAA,KAAA,QACA,IAAA,KAAA,KAmNW,EACA,KADA,KAKE,KALF,KASI,KATJ,KAaG,KAbH,KAiBM,KAjBN,KAqBK,KArBL,KAyBD,KAzBC,KA6BK,KA7BL,QAmCG,MAAqB,EAlCxB,EAEP,EAES,EAET,EAEW,EACT,EAGQ,EAEV,EAEa,EAEb,EAEY,EAEZ,EAEM,EAEN,EAEY,EAEZ,E,Q,K,MCjP8B,MAAA,KAAV,OACQ,IAAA,KAGd,MADyB,IAGzB,MADyB,IAGzB,MAD0B,IAG1B,MAD0B,IAEH,MAAnB,IACmB,MAAnB,IA0MiB,EAgEd,KAhEc,KAsGZ,KAtGY,KA4K/B,KA5K+B,IAAH,OAiWtB,MAAgB,EApB9B,MAMsB,MAApB,GACE2gD,GAAAA,IAAyC,MAAiB,MAAjB,OAClB,MAEzB,WACU,MADV,EAGF,EA1RyB,KACH,MACA,MACH,MACA,MACA,MACA,MACA,MACA,MACiB,MAEE,QACpC,EA0ByB,MAIwB,MAAf,MACXmiB,GAAAA,IAEP,QAF4C,MAAxC,MAIGC,IAEP,MAF4C,MAAxC,MAIa,MACjBC,IAAsC,MAIL,MACjCC,IAAsC,MAIL,MACpB,MAAOnqD,IAAnBoqD,IACY,MAAOtqD,IAAnBsqD,IAID,MAAmC,MAA/CxmD,IACsC,MAArBymD,IAAD,IAAH,MACyB,MAArBC,IAAD,IAAH,MAEA,MACA,MACkC,MAAf,MACpC,EAkCM,KAAA,IAIqB,IAAA,KAAH,MAKX5mE,MAAW,MAAA,IAFa,UAAA,MAAH,IAcZ,EACO,KADP,KAMM,KANN,KAWc,KAXd,KAwBa,KAxBb,KAyCF,KAzCE,KA2DD,KA3DC,KAoEA,KApEA,KA8EF,KA9EE,KAsFH,KAtFG,KAwGJ,KAxGI,KAmHE,KAnHF,KA6HW,KA7HX,KAmIb,EAAA,KAEe,KAFf,KAAP,EAjIW47C,GAAAA,IAAM,UAANA,IAEHA,IAAmC,MAAQ8qB,OAAR,MAFvC,EAKO9qB,GAAAA,IAAM,UAANA,IAEHA,IAAkC,MAAQ8qB,OAAR,MAFtC,EAI8B,GAGrB,KAAY,MAAQ,QAA7B,IACEG,GAAAA,IAAoC,MAACH,GAAAA,IAAD,KAEtCA,GAAAA,IACO,KAAa,MADY,MAEzB9qB,IAAM,UAANA,IACHA,IAA0C,MAAQ8qB,IAAR,MAD9C,EAK6B,KACH,KAKxBA,GAAAA,IAAY,MACA,MAFd,IAMAG,GAAAA,IAAsC,MAACH,IAAD,MAC/B9qB,IAAM,QAANA,GACHA,IAAyC,MAAQ8qB,IAAR,MAD7C,EAHE,EAQY,GACTI,GAAAA,IAAgB,MAArB,GACEA,IACE3iB,GAAAA,IAA0C,MAAA,IADrB,MAGzBuiB,IAAkBK,GAAAA,IAAsB,OAAN,KAAnB,MACGC,IAAsB,KAAN,KAAnB,QACA,MACA,MACXprB,IAAM,MAAV,GACEA,IAA0B,MAAQ8qB,IAAR,MAGrB9qB,IAAM,UAANA,IAEHA,IAAmC,MAAQ8qB,IAAR,MAFvC,EAMAO,GAAAA,IACEH,GAAAA,IACAlrB,IAAM,MAEN8qB,WAJoB,IAMxB,EAGEO,GAAAA,IACEH,GAAAA,IACAlrB,IAAM,MAEN8qB,cAJoB,IAMtBG,IAAoC,MAAA,KACtC,EAEgB,GACY,KAC1BH,GAAAA,IAA+C,MAAf,MAC5B9qB,IAAM,MAAV,GACEA,IAA0B,MAAQ8qB,IAAR,MAD5B,EAGF,EAEe,GACa,KAIxBA,GAAAA,IAAY,MACA,MAFd,IAQAG,GAAAA,IAAsC,MAACH,IAAD,MAClC9qB,IAAM,MAAV,GACEA,IAAyB,MAAQ8qB,IAAR,MAD3B,EAGF,IARI,EAUU,GACc,KAC1BA,GAAAA,IAA+C,MAAf,MAChCO,GAAAA,IACEH,IACAlrB,IAAM,gBAFc,IAMxB,EAGEqrB,GAAAA,IACEH,GAAAA,IACAlrB,IAAM,MAEN8qB,cAJoB,IAMtBG,IAAoC,MAAA,KACtC,EAGSjrB,GAAAA,IAAM,UAANA,IAEHA,IAAuC,MAAQ8qB,OAAR,MAF3C,EAQOI,GAAAA,IAAgB,MAAvB,E,ECniBiB,EAiBJ,KAjBI,KA0EgB,KA1EhB,KAsFgB,KAtFhB,KAkGiB,KAlGjB,KA8GiB,KA9GjB,KA0HL,KA1HK,KAmIL,KAnIK,WAAA,KAAH,OA+IR,QAAoB,EA9Hb,qBAMa,MAKhB,QAAZ5mD,IACgB,MAAuB,MAAb,IAG5B,OAgB+B,iBAA7B,OAC8B,aAC5B,aAAA,IAGY,eAHZ,GAIY,eAJZ,IAOE,GAAA,GAEO,GAAA,GACa,MADb,EAEA,GAAA,GACa,MADb,EAGa,MAHb,EAHa,MAQf,IACA,MAnB8B,GAAV,oBAA7B,SAdc,UADd,GAEc,UAFd,IAKIgnD,GAAAA,GAEIA,GAAAA,GACY,MADZA,EAEA,GAAA,GACY,MADZ,EAEY,MAFZ,GAJJA,EACgB,MAFb,OAkCFlM,IAA4BmM,GAAAA,IAAgB,MAA5CnM,EAAY5yB,IAAnB,EAOO++B,GAAAA,IAAkC,mBAAA,IAAzC,EAYOA,GAAAA,IAAkC,mBAAA,IAAzC,EAYOA,GAAAA,IAAkC,mBAAA,IAAzC,EAYOA,GAAAA,IAAkC,mBAAA,IAAzC,EASOA,GAAAA,IAAkC,kBAAA,IAAzC,EASOA,GAAAA,IAAkC,kBAAA,IAAzC,E,Q,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OC9HJ,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAEwB,IAAA,OAWU1pE,MAAa,MAAC,UAAD,KAAhB,IAMXA,MAAa,MAAC,UAAD,KAAhB,IAoDO,KA6MrB,IAG0E,KAAA,OAAA,IAAA,OAE/D,MAA8B,EAzRV,OAAAA,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAuEV,EAAA,KAAA,IAkDQ2C,GAAAA,IAAA,KAAA,MAAA,IAU9B,KAV8B,IAAA,IAAA,IA2B7B,MAAA,IAQD,KARC,IA3B6B,IAiD7B,OAgCA,IAhCA,MAAA,IAAA,IAjD6B,IAiF7B,KAiDA,IAjDA,MAAA,IAAA,IAjF6B,IAkI7B,MAAA,IASD,KATC,IAlI6B,IAAA,MA2J7B,EA7MqB,EAAAC,GAAAA,IAAA,KAAAw/D,GAAAA,MAAA,MA6CjBC,IA5CM,MAiDNC,IAJE,MAIuB,EAU9B,EACEvoE,MAAY,SAAA,KAUZ+K,GAAAA,IAAAA,KACEy9D,IAAAA,WADO,MAKFA,KAAwC,SAAA,KAA/C,EAiBAz9D,GAAAA,IAAAA,KACEy9D,IAAAA,WADO,MAKFA,KAAwC,SAAA,KAA/C,EACD,EAAAzJ,GAAAA,IAAA,OAgBD,KAhBC,KAAA,IAAA,KAgCA,EAAA,EAAA0J,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAhBD,EAAA,KAgBA,EAhBA,WAIEzoE,MAAY,SAAA,KAUuB,YAAA,MAArB,IAAA,GAAA,GACU,MAAQ,MAAzB0oE,IAAP,GADc,MAEf,EAAA3J,GAAAA,IAAA,OAQD,KARC,KAAA,IAAA,KAiDA,EAAA,EAAA4J,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAzCD,EAAA,KAyCA,EAzCA,kBAWE59D,GAAAA,IAAAA,KACEy9D,IAAAA,WADO,MAKT,GAEUA,IAAAA,KAA6D,MAAA,KAD5C,IAAA,GAAA,GAKzB,GAA6BI,IAAAA,KAA7B,GAkBKJ,IAAAA,KAA0C,MAAA,KAAjD,aAjBevgE,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,GANuB,MAMJ,KAAA,OAAA,IACJ6E,GAAAA,IAAA,EACR+7D,GAAAA,MADQ,MAGbD,IAAAA,KAAoC,MAMlC,KACA,KAPkC,OAUtC,EAJU53D,GAAAA,MAAWjR,MAAK,KAAA,WAAA,IAAA,MAAV,KAAZ,EAEEgR,GAAAA,IAAQy3D,GAAAA,IAAAA,KAA0C,MAACM,GAAAA,IAAD,OAA3C,KADT,EA0BR/9D,GAAAA,IAAAA,KACEy9D,IAAAA,WADO,MAKFA,KAAmD,SAAA,KAA1D,E,e,K,I,M,K,I,Q,O,WCxRJ,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAlkE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OA+DnC,SAAA,KAA4B,MAAA,EA/DO,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,U,M,Q,I,K,Q,I,K,QCA1E,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,KA2BM4rC,KAGFzrC,KAAQ,WAARA,IAA+BmkE,KAA/BnkE,wCAHoB,KAAA,UAAA,IAAA,IADK,MAOFnG,MAAG,KAAA,OAAA,IAAA,IAAV,QAEI,QACE,QACU,QACN,IA8CL,KAmUtB,IAvTiC,UAAhB,SAmcN,MAAuB,EA/cZ,EAAA,KAAA,IA2WtBmK,GAAAA,IAAA,KAAA,MAAA,IAQD,KARC,IAAA,IAAA,IA0BA,MAAA,IAKD,KALC,IA1BA,IAkCA,MAAA,IAOD,KAPC,IAlCA,IA2CA,MAAA,IAOD,KAPC,IA3CA,IAoDA,MAAA,IAOD,KAPC,IApDA,IA6DA,MAAA,IAOD,KAPC,IA7DA,IAsEA,MAAA,IAOD,KAPC,IAtEA,IA+EA,MAAA,IAOD,KAPC,IA/EA,IAwFA,MAAA,IAOD,KAPC,IAxFA,IAiGA,MAAA,IArbD,KAqbC,IAAA,IAAA,IA/aA,MAAA,IAOD,KAPC,IA+aA,IAlaA,MAAA,IAOD,KAPC,IAkaA,IArZA,MAAA,IAOD,KAPC,IAqZA,IAxYA,MAAA,IAOD,KAPC,IAwYA,IAzXA,MAAA,IAOD,KAPC,IAyXA,IA5WA,MAAA,IAOD,KAPC,IA4WA,IA/VA,MAAA,IAOD,KAPC,IA+VA,IAlVA,MAAA,IAOD,KAPC,IAkVA,IArUA,MAAA,IAOD,KAPC,IAqUA,IAxTA,MAAA,IAQD,KARC,IAwTA,IAtQA,MAAA,IAQD,KARC,IAsQA,IA7OA,MAAA,IAUD,KAVC,IA6OA,IArMA,MAAA,IAOD,KAPC,IAqMA,IAxLA,MAAA,IAQD,KARC,IAwLA,IAzKA,MAAA,IAQD,KARC,IAyKA,IAvJA,MAAA,IAKD,KALC,IAuJA,MAjGA,OAxCA,EAQD,SAAiCC,GAAAA,IAAA,KAAAmgE,GAAAA,IAAA,MAClB,EAAH,QACoC,MAClB,MAAd,MACN,MAAR,GACoC,MAAd,MAGP,MAAf,GAkBgC,MAAd,MACS,MAAd,MACc,MAAd,MACa,MAAd,MACkB,MAAd,0BAnBdtqE,MAAW,KAAA,KAAqB,KAAC,KAAD,KAqBpC,EArBqC,GACduqE,GAAAA,IAAW,QAC5B,IAQE/+D,IAAI,MAAgB,IARtB,EACEA,IAAsB,MAAX,MACXA,IAAsB,MAAX,MACXA,IAA2B,MAAX,MAChBA,IAAyB,MAAX,MACdA,IAAiC,MAAX,MACtBA,IAAyB,MAAX,MANhB,EAUF,EAiBJ,EAES,MADP,GAEO,MAFP,GAGM,MAHN,KAO8C,MAE9Ca,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAA2D,MACrD,SADqD,MAI7D,IAZI,EAiBJ,EAEa,MAAX,EAQF,EACa,MAAX,EAQF,EACa,MAAX,EAQF,EACa,MAAX,EAQF,EACa,MAAX,EAQF,EACa,MAAX,EAQF,EACa,MAAX,EAQF,EACa,MAAX,EAnbAh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAAyD,SAAA,KAC3D,EAQEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAA0D,SAAA,KAC5D,EAQEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAA4D,MAAA,IAC9D,EAQEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAAgE,MAAA,IAClE,EAUEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAA0D,SAAA,KAC5D,EAQEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAA6D,SAAA,KAC/D,EAQEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAA8D,SAAA,KAChE,EAQEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAA8D,SAAA,KAChE,EAQEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAAyD,SAAA,KAC3D,EAQEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAA+D,SAAA,KACjE,EAQA,UAIEh+D,GAAAA,IAAAA,SACEsG,OAAAA,OACEA,IADFA,OAEEA,IAFFA,OAGEA,IAHFA,IADO,MAQT,UAOO,QAOA,QAOA,gBACM63D,IAAmC,KAC5CC,IACA,KAF4C,MADzC,MANMD,IAAmC,KAC5CE,IACA,KAF4C,MADzC,MANMF,IAAmC,KAC5CG,IACA,KAF4C,MADzC,MANMH,IAAmC,KAC5CI,IACA,KAF4C,MA4BhDC,IAAkB,KAAA,MACpB,EA1BQC,GAAAA,IAAYR,GAAAA,IAAmB,KAAA,UAAA,IAAA,MAAxB,KACT,EAMEQ,GAAAA,IAAYR,GAAAA,IAAmB,KAAA,UAAA,IAAA,MAAxB,KACT,EAMEQ,GAAAA,OAAwB,QAAjB,KACT,EAMEA,GAAAA,SAAO,KACT,EAYN,GAIEz+D,GAAAA,IAAAA,SACEsG,IAAAA,OACEA,IADFA,OAEEA,IAFFA,OAGEA,IAHFA,MADO,MAOQk4D,IAAkB,KAAA,KACnC,GACE,EAEa,KAAA,IACfA,IAAqB,KAAA,KACvB,EAUA,GAW6B,UAK3B,GAEwB,MAAZ,GACY,MAAZ,GACY,MAAZ,GAHa,EACd,GADc,KAEd,GAFc,KAGd,GAHc,QAMzBx+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAIFA,KAAmD,MAAA,KAA1D,EAWAh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAITA,KAAmD,MAAA,IACrD,EAQA,GACEh+D,GAAAA,IAAAA,OAAU,OAAA,QAAD,MACTA,KACEg+D,IAAAA,SADO,MAITA,KAAiD,MAAA,KACnD,EASEh+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAIFA,KAAuD,MAAA,IAAO,OACnE,KADmE,KAArE,EACE,MACSU,GAAoBT,GAAAA,IAAmB,KAAA,UAAA,IAAA,IAA9C,EAWJj+D,GAAAA,IAAAA,KACEg+D,IAAAA,WADO,MAKTA,KAAuD,SAAA,KACzD,E,e,K,I,M,K,I,Q,O,WC1ZF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAzkE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAgEnC,SAAA,KAEtC,MAAA,EAlEyE,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Q,K,I,K,M,M,Q,I,K,K,O,I,K,K,O,I,K,K,OCF1E,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,OAE4B,IAAA,QACJ,IAAA,QACC,IAAA,KAAV,IAsBJ,KAwHR,QAKkB,UAMG,SAGV,MAAS,EAhK6B,OAAA/F,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EA0BzC,EAAA,KAAA,IAAA2C,GAAAA,IAAA,KAAA,MAAA,IAqCT,KArCS,IAAA,IAAA,QAAA,OAwHR,EAxHQC,GAAAA,IAAA,KAAA6gE,GAAAA,QAAA,MAAA,EAqCT,OAEkB,MAAArjE,IAAA,IAAAA,IAAG,EAAHA,EAAA,IAEhB0E,GAAAA,IACE,OAAA,IAAA,KAA+B4+D,IAA/B,IADO,MAIT5+D,IACgB,KAAd,OAAA,IAAA,GAAiD,KAAd,GAAA,IAAnC,IADO,MAITA,IACE,GAAA,IAAA,KAA+BiT,IAA/B,IADO,MAMPjT,IACE6+D,IAAAA,SADO,MAKA,OAAPD,IAAAA,GAAuC,KAAd,GAAA,IAAzBA,IADO,MAMO,KAEE,KAAd,KAAA,IAA6C,KAH9B,EAAA,IAAA,IAMZC,IAAAA,KAAuB,MAAoB,MAApB,MAAsC,OAClE,KADkE,KAApE,EACQ98D,GAAAA,IAAA,IAAA,UAAA,MAAA,E,e,K,I,M,K,I,Q,O,WChGd,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAUnC,SAAA,KAAqB,MAAA,EAVc,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,a,M,O,M,K,I,Q,O,K,SCA1E,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,IAWC,EALag4C,GAAAA,IAAAA,SAAM,KACX,KAAP,IACoBoD,IAAAA,KAAQ,MAAM,KAAA,aAAA,IAAA,IAArB,MAEH,KAAV,E,aCbW,MAAA,OAAAnhD,MAAA,KAAA,IAAA,QAAA,O,KAAA,SAIb,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,IAUC,EARc,EACNmrE,GAAAA,IAAAA,QACL,KAIA,KALyB,MAA3B,EACE,EACiCC,GAAAA,IAAAA,KAA4B,SAAA,KAA/B,IACrB,KAAP,EAAaC,GAAAA,IAA6B,KAAA,IAAnC,EAEHD,GAAAA,IAAAA,KAAyB,MAAA,IAA/B,E,KCpBsB,SAAA,QAAV,MACf,E,E,K,UCKyB,SAAA,OAAmGprE,MAAM,UAAb,GAAb,IAA8BA,MAAM,MAArC,IAA8C,KAAa,KAAc,MAAoB,MACnE,MAAVod,IAAiC,MAAjCA,gB,YAAD,MAA0D,EAD7I,MAAuBK,IAAAA,KAAQ,IAAA,MAAO,IAAM,IAAN,IAAP,GAARA,GAA2BA,IAAAA,GAAOnG,IAAPmG,GAAlC,EAAgK,QAAA,IAAA,MAAuB,IAAF,IAAOxG,GAAAA,IAAQ,EAAA,IAAA,KAAN,EAAA,KAAD,OAAoC,IAAG,MAAL,OAAc,IAAF,IAAM0G,IAA0D,IAAA,IAAA,IAAA,IAAxD,KAAD,MAAkEJ,IAAwE,IAAA,IAAtE,KAAD,MAA4EvG,IAAC,KAAI,EAAxIoH,GAAAA,IAAQR,IAAD,MAAiBtG,IAAD,MAAGF,GAAAA,MAAC,KAADA,GAAMC,IAAQ+G,IAAN,EAAA,KAAD,KAAU,EAAwBhH,GAAAA,IAAEgH,GAAAA,MAAD,KAADhH,GAAMC,IAAQ+G,IAAN,EAAA,KAAD,KAAkBX,MAAE,KAAD,KAAR,EAAoBrG,GAAAA,IAAEgH,GAAAA,MAAD,KAADhH,GAAMC,IAAQ+G,IAAN,EAAA,KAAD,KAAU,EAC5a,UAAqB,MAAgB,KAAkB,IAAUo6B,GAAAA,IAAC,MAAF,GAAN,EAAc,IAAS,E,a,M,O,M,K,I,Q,O,K,S,I,K,K,OCAjF,IAAA,KAAA,KAAA,OAKA,IAAA,KAAA,IA+BC,EA7Bc,EAGuBsD,GAAAA,IAAAA,OAAS,KAAD,KAAgCjG,IAAA,QAAA,QAA3D,IAAA,OAAe,IAAA,IAChCoI,IAAAA,KAuBG,IAAA,IAvBO,KAAD,MAwBT,EAzBmDjkC,GAAAA,IAAAA,KAAc,SAAA,KAApB,EACnC,EAAA,KAeaA,GAAAA,IAAAA,KAA2B,UAAA,MAA9B,IAIIA,IAAAA,KAAc,SAAA,KAAvB,EAAA,OAAD,KACL,KAAP,EAnBA,GACQ,MAKJG,GAAAA,IAAU,KAAiB,KAD7B,IAEEA,IAAU,KAAkB,KAF9B,IAGEA,IAAU,KAAiB,KAH7B,IAIEA,IAAU,MAAqB,MAJjC,IAMEmxD,MAAa,KANf,EAQF,EAOEt5B,GAAAA,IAAmB,KAAA,MACrB,E,KC/B6C,SAAA,KAwBV,UAAD,QAiBxB,MAAe,E,Q,K,M,M,QC1C7B,IAAA,KAAA,KAAA,OAEwB,IAAA,OAQD,IACR,UACgB,IA4Cb,EAMP,KANO,KAoCR,KApCQ,QA6CJ,MAAa,EAtE3B,cAMOu5B,GAAAA,IAAL,GAA0BC,IAA1B,IAGAC,IAAAA,KAAuB,MAACC,IAAD,KACC,KAAxB,MACE,KAIY,MACV,oBAGJlrD,MAES,MADP,KADQ,MAIZ,IAhBI,EAaMmrD,GAAAA,IAAiBliC,GAAAA,IAAIuf,IAAS3mD,IAAQupE,OAAAA,QAAtB,IAAtB,EAWO,YACwB,GAAAjkE,IAAA,IAAAA,IAAG+jE,GAAAA,IAAH/jE,EAAA,IAChB,QAAAA,IAAA,MAAAA,IAAA,IAGT,OAAJ,MAEWnG,MAAa,KAAA,KAAjB,GAGKH,MAAK,KAAA,WAAA,IAAA,IAAf,EAFAoqE,GAAAA,IAAAA,KAAgC,MAAUppE,KAAV,MAD3B,EADLopE,GAAAA,IAAAA,KAAuB,MAAA,KAkB7B,EAUIA,GAAAA,IAAAA,KAAsB,MAAA,MAE1B,E,e,K,I,M,K,I,Q,O,WCjGF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA7lE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAW1B,UAAA,KAAmB,MAAA,EAXO,IAAA,KAAA,OAAA,cAAA8F,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Q,K,I,K,MCF7D,MAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAAA,IAAA,KAAA,OAIS,IAAA,QACD,IAAA,KAkCY,KAAtB,KAWN,QASS,MAKX,EAhEU,KAAA,IAAAyH,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAC,GAAAA,IAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAuCF,EAAA,KAAA,IAAAuD,GAAAA,SAAA,MAAAC,IAAA,KAAA,IAAAtD,IAAA,MAAA,IAaP,KAbO,IAAA,IAAA,IAeN,MAAA,IAdD,KAcC,IAAA,IAAA,IAZA,MAAA,IAED,KAFC,IAYA,IARA,MAAA,IAED,KAFC,IAQA,IAfM,OAWN,EAXM,OAAAC,GAAAA,IAAAugE,GAAAA,IAAA,MAAAzhC,IAAA,KAAA,EAAA,MAAA,EAaP,EACE,EAbF,EAEA,EAEA,EAEA,EAEA,EAEA,E,a,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,O,I,K,K,OC5DJ,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,IAEyB,KAoEpB,IAAA,MAAA,EApEoB,EAAA,KAAA,IAepBlgC,GAAAA,IAAA,KAAA,MAAA,IACD,KADC,IAAA,IAAA,IAcA,MAAA,IACD,KADC,IAdA,IA4BA,MAAA,IACD,KADC,IA5BA,IAkDA,MAAA,IACD,KADC,IAlDA,MAAA,MAqDA,EAhED,SAA0BC,GAAAA,IAAA,KAAAH,GAAAA,IAAA,QAHZ,MAQM,MAAhB,SAAyChD,IAAAA,MAAa,UAAtD,KAC+B,KAAH,MACO,KAAH,MAEd,MACO2qC,IAAAA,MAAkB,KAAA,UAAA,IAAA,IAAzB,MACtB,EALmC,EAAA,KAAQnwC,MAAA,KAAA,UAAA,IAAA,MAAR,IAAQ,IAAA,IAAA,GAAR,IAAawF,GAAAA,IAAAA,MAAa,MAA0B,MAAmB,KAAC+qC,GAAAA,IAAY,MAAb,IAAA,IAAkC,KAAA,KAAlC,MAA/D,EACJ,EAAA,KAAQvwC,MAAA,KAAA,UAAA,IAAA,MAAR,IAAQ,IAAA,IAAA,GAAR,IAAawF,GAAAA,IAAAA,MAAa,MAA0B,MAAuB,KAAC+qC,GAAAA,IAAY,MAAb,IAAA,IAAkC,KAAA,KAAlC,MAAnE,EAK/C,IACa,MAAT,GAA4B7rC,GAAAA,IAAAA,KAAQ,SAApC,IAAyD,MAAc,MAAvE,GACQ,MAA6B,MAAA,IADrC,UAGI,MAAe,GAAA,MACmB,MAA0B,WAAA,MAC9C,EAAAsB,GAAAA,IAAA,SAAA,OAC2C,SACjD,KADiD,OAD3C,IAMlB,EAHQgE,GAAAA,IAAuB,MAACwmC,IAAD,OAC3B,EAIR,KAEqC,MAAc,MAEnC,MAFiB,GAIO,MAAA,KAAW,KAJlB,EAEW,MAAA,KAGpC,MAAiC,MAAA,KACjC,MAAe,IAAA,MACnB3lC,GAAAA,IAAAA,KAAc,QAAJ,UAAD,MACA,MAAT,GAA4BnG,IAAAA,KAAQ,SAApC,IAAyD,MAAc,MAAvE,GACQ,MAA4B,MAAA,IAExC,EACA,KACkD,MAC9C,KACI,MAEA,IAAJ,GAIqC,UAA5B,IAAJ,GACG,MAAiC,MAAA,KADpC,EAF+B,KAAA,IAKhC,MAAe,GAAA,MAGnB,OAEsB,KAAH,MACV,MAAT,GAA4BA,GAAAA,IAAAA,KAAQ,SAApC,IAAyD,MAAc,MAAvE,GACQ,MAA4B,MAAA,IADpC,EAGJ,EAJ0B,EAAQ,EAKlC,OAA2B,KAAF1E,QAAA4nC,IAAAA,IAAA,KAAA,UAAA,IAAA,OAAE,IAAF,IAAAC,IAAA,IAAA,GAAE,MACnB,MAAc,MAAK,KAAA,OAAA,IAAU,KAAA,KAAV,MAC3B,E,S,M,K,I,Q,O,WCvEJ,OAAA,KAC0BriC,MAAa,SAGT,UAAT,IAAG,QAAW,IAAX,MAAW,GAGR,EAC3B,GA8CI1F,MAAY,SAAA,8BA5CQwqE,OAAAA,gBAAH,IACjB9rE,MAAW,KAAC+rE,IAAW,MAAZ,KAAyC,KAAC,KAAD,KA6CzCtlE,IAAkB,MAAA,EA7CwB,KAEjDA,GAAAA,IAAiCslE,IAAW,MAAqB,IAAhCA,GAAgD,EAAhDA,IAAH,IAE9BA,IAAW,MAAoB,IAAoB,KAAC,KAAD,KAyB/C/kE,IAAAA,MAAa,MACbP,IAAkB,IADtB,GAQiD,KAAH,MAC1CA,IAAkB,IAA+B,KAAH,MATlD,EACiD,KAAH,MAC1CA,IAAkB,IAA+B,KAAH,MAFlD,EAWJ,EApCwD,KAAA,IAChDA,GAAAA,IAAmBulE,GAAAA,IAAD,IAAuB,KAAS,KAAH,MAanD,EAbsD,UAAa,KAALxqE,MAAA,KAAA,UAAA,IAAA,MAAK,IAAL,IAAA,IAAA,GAAK,IAEvDsqE,GAAAA,MAAJ,IAAIA,IAAe,MAAnB,MAKgCG,GAAAA,IAAU,KAAA,MACf,KAA3B,IAGOC,IAA4B,MAACF,GAAAA,IAAD,OAAnC,EAFWziE,MAAc,MAAKlI,MAAuB2qE,GAAAA,QAAlB,IAAgCC,IAAU,SAA1C,IAAA,QAAA,IAAA,OAA6EE,OAAoE,SAAjJ,IAAA,QAAA,IAAA,IAAA,KAAA,OAAA,IAAA,IAAV,KAArB,EANOL,IAA0B,MAACE,GAAAA,IAAYC,GAAAA,IAAU,KAAvB,OAAjC,EAsBqC,EAAA,KAAQzqE,MAAA,KAAA,UAAA,IAAA,MAAR,IAAQ,IAAA,IAAA,GAAR,IAAawF,GAAAA,IAAAA,MAAa,MAA0B,MAAmB,KAACglE,GAAAA,IAAD,IAAA,IAAW,KAAA,KAAX,MAA/D,EACJ,EAAA,KAAQxqE,MAAA,KAAA,UAAA,IAAA,MAAR,IAAQ,IAAA,IAAA,GAAR,IAAawF,GAAAA,IAAAA,MAAa,MAA0B,MAAuB,KAACglE,GAAAA,IAAD,IAAA,IAAW,KAAA,KAAX,MAAnE,EAMZ,EAAQ,EACJ,EAAQ,E,W,K,I,K,I,K,I,K,I,K,M,M,O,M,K,I,Q,O,K,S,I,K,K,OCjDrE,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,IAIkCjsE,MAAG,KAAA,OAAA,IAAA,IAAV,IAqD1B,EAzDoE,OAAAC,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAUrE,GACkC6kE,GAAAA,IAAyB,KAAA,KACvD,GAC4BhxB,IAAAA,QAAsB,KAC9CgxB,IAAyB,KAAA,MACzB,EAEJ,EAKG,OAC8BplE,GAAAA,IAAAA,MAAa,MAAqB,UACzCqlE,IAAoB,IAApBA,IAOD,IACIC,IAA4B,OAC/BC,IAAiB,MAApB,IAAoC,IAApC,IAAA,IAEQlmE,IAAAA,KAAgB,MAAC,KAAD,SAKb,QAAA,IAAA,MAClC,EANgD,GACxBmmE,GAAAA,IAAYC,GAAAA,MAAR,MACHC,IAAI,MAClBrmE,IAAAA,KAAmB,KAACsmE,IAAoBv+D,IAAA,EAAA,MAAkB,EAAA,QAAA,IAAA,EAAlB,OAArB,MAA1B,EAKR,IACgBA,GAAAA,IAAA,KAAA,SACZ,GAAA,GAAA,IAAA,GAAA,IAAA,GACI,IACJ,EAAA,EAAA,GAAA,EACA,EAEJ,QAAA,IAC2B,MAAC,KAKrB,EALoB,MAAvB,EAAwB,MACRmvC,GAAAA,IAARiT,IAAJ,GACiBjT,IAAK,IAAR,IAEd,E,W,M,K,I,Q,S,QCxDR,IAAA,QACA,IAAA,KAMQqvB,KAAmB,KASfA,KAAmB,MAK3BC,MAMAC,MAMAC,MAKAC,MApCa,EAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAsCM,MAAA,E,K,M,K,I,Q,S,M,M,M,QCvCa,MACM,MACN,MACA,MAAA,E,O,M,K,I,Q,O,M,K,E,I,K,Q,YCApC,SAAA,KAAA,IAA6D,E,G,I,M,E,W,K,I,K,M,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,KCOxD,KAN2B3rE,MAM3B,KANkB,KAMlB,KANgC,MAAA,E,K,I,G,M,I,I,K,E,M,G,I,K,G,I,K,I,G,K,E,G,M,E,I,K,K,O,M,K,E,O,I,K,M,E,E,K,O,O,M,K,G,M,K,K,G,K,O,I,M,K,K,K,M,K,M,M,K,O,K,E,E,I,I,I,I,E,E,EAAd,EAAA,KAAA,IAAAye,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAMlBzE,IAAA,KAAA,KAAA,EAHD,EAA2BC,GAAAA,IAAA,KAAAtC,GAAAA,MAAA,MACvB+G,IAAA,QAAA,SACS,MAAQ,E,W,K,I,K,M,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,O,I,K,K,OCVzB,IAAA,KAAA,KAAA,OACA,IAAA,KAMyC/G,MAAT,KAG3B,KAH8C,MAAA,EANT,KAAA,IAAA2F,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAMV,EAAA,KAAA,IAAA2U,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAG3BzE,IAAA,KAAA,KAAA,EAFD,EAAsCC,GAAAA,IAAA,KAAA8iE,GAAAA,MAAA,MAAAr+D,IAAA,YACX,QAAA,OAAA,IAA8E1I,IAAAA,KAAQ,SAAtF,IAAA,YAAA,IADW,OAAA,E,Q,M,QCR1C,IAAA,QACA,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,KASoC2B,SAAH,MAAc,E,W,M,O,M,K,I,Q,O,SCZ/C,IAAA,KAAA,KACepB,KAAkB,MAA4B,MAAA,E,W,K,I,K,M,M,O,M,K,I,Q,O,K,SCD7D,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,IACuB,EAAH,IA2CnB,EAvCc,UAAkD,MAAAkB,IAAA,IAAAA,IAAG,EAAHA,EAAA,IACG,MAAA,MAAA,MACnDulE,GAAAA,IAAe,SACbC,IAAAA,IAAAA,IAAAA,IACVC,IAAc,IAAnB,GACIA,MAAmB,IAEvB,MAAA,MAEIC,IAAAA,KAAe,QAFnB,QAYW,QAAA,OACX,GAA8B,QAA9B,OACiBn/D,IAAAA,IAAAA,IADjB,GAGA,GAAsC,QAAtC,OACiBA,IAAAA,QAAAA,IADjB,EAGA5M,MAAY,KAACgsE,IAAc,MAAf,KAChB,MAjBmB,QAAA,OACX,OACiBp/D,IAAAA,QAAAA,IADjB,GAGA,GAA8B,QAA9B,OACiBA,IAAAA,IAAAA,IAEPrG,IAAAA,MAAiCylE,IAAc,MAArC,KAAA,WAAA,IAAA,IAApB,EAWR,OACcC,OAAAA,IAAV,EAOJ,GACgC,KAAC,kBAAD,MAA0B,MAAA,IACtD,E,EClCI,OAPF,MAAA,OAAJ,IAAoCpoC,MAAM,MAA1C,MAEW,OAAJ,MAGyB,MAAV,MAHf,IACmB,OAAV,MADT,EADLA,QAAO,IAAD,MADR,EA+GE,EAxGI,EAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAEO,cAAH,IA8Da,QAAH,IAYZ,UAAA,MAAA,IACD,IAAA,IALc,EACd,QADc,KAEb,QAFa,KAGd,QAHc,KAAA,KAAA,KAAH,IAiBS,KAAH,MAIE,KAAH,MAUvB,EAnGA,GACoB,SAAA,WAAXqoC,IAAgD,KAAA,KAAhDA,EAA2B,KAAlC,EAGF,GACmB,KAAC,kBAAD,MAAkB,KAAC,cAAD,MAClBC,GAAAA,UAAU,MACN,QAAA,MAAqB,SAAA,KAClC,KAAY,SAACC,IAAD,KAAZ,KACR,EAGF,KACSt1D,MAAM3P,QAAM,KAAP,QAAL2P,GAAuB3P,MAAM,KAApC,EAGF,GACM,OAAJ,IAGKklE,GAAAA,IAAW,MAAA,KAAhB,KACYtsE,UAAM,IAAD,KAAA,QAAC,OAAD,IAAA,IAAf,IAEJ,IALcmE,MAAS,KAAA,WAAA,IAAA,IAAnB,EAOJ,gCACE,IAAA,IAAA,IAAgB,KAACooE,GAAAA,IAAD,KAEPC,IAAK,KACA,KAEMtrE,MAAQ,KAAG,KAAFurE,IAAiB,KAAFC,IAAhB,QAA5B,IACWp3D,MAAW,IAAFm3D,KAAD,MACRn3D,MAAW,IAAFo3D,KAAD,MAEjB,OACA,OAL2D,GAAzCxrE,MAAQ,KAAG,KAAFurE,IAAiB,KAAFC,IAAhB,MAA5B,IAQe,KAAFD,IAAD,IACG,KAAFC,IAAD,IAEZ,GAAA,GAWO,GAAA,SACEC,MAAP,EAXkB,SAAA,KAAS,KAACC,IAAD,KACT,KAAA,KAAS,KAAA,KAEX1rE,MAAQ,KAAG,KAAW,KAAd,QAAxB,IACQ,IAAN,IAAoC,IAAT,GAA3B,IAAiE,IAAT,GAAxD,IACM,IAAN,IAAoC,IAAT,GAA3B,IAAiE,IAAT,GAAxD,IAEM,IAAQ,IAAd,IACM,IAAQ,IAAd,IAL+C,GAAjCA,MAAQ,KAAG,KAAW,KAAd,MAAxB,IAWF,EANuB,EADA,EAFgE,EADA,EAXxE,EADA,EAyCjB,GACM,OAAJ,IAGI2rE,GAAAA,IAAwB,KAAA,WAA5B,MAGF,IAFc1oE,MAAiD0oE,IAAqB,SAAA,SAA5D,IAAD,KAAA,OAAA,IAAA,IAAnB,IAHU1oE,MAAS,KAAA,QAAC,OAAD,IAAA,IAAnB,EAOuB,GAClB,OAAA,IAAA,GAA+BmoE,GAAAA,IAAW,MAAA,KAAjD,EAGwB,GAExBQ,GAAAA,MAAgB,KAINd,UAAe,MAClBe,IAAc,IAAkB,KAAA,WAAhCA,IAAP,E,c,M,M,O,M,K,I,Q,O,K,SC9GJ,IAAA,KAAA,KAAA,IAkBC,EARM,GACkBxuE,GAAAA,IAAM,UAAT,IAAG,QAAW,IAAX,IAAW,GAAd,IACdA,IAAM,QAD6C,IACnD,IADmD,GAArC,IAEd6G,IAAAA,KAAkB,IACtB,KACcpF,UAAK,IAAA,KAAA,QAAA,OAAA,IAAA,IAAf,EAEJ,E,E,M,K,I,W,S,E,K,M,K,I,Q,S,MCjBwB,MAce,EAAxB,UATY,UAIK,UAIN,MACkB,E,W,K,M,M,O,M,K,I,Q,O,K,S,I,K,K,O,I,K,K,O,I,K,K,OCdhD,IAAA,KAAA,IAAiE,QAAA,IA2ChE,EArCD,UACsB08C,GAAAA,IAAAA,OAAM,KACIjC,IAAAA,OAAQ,KAAMjG,IAAA,QAAA,QAA7B,OAAW,IACsCv2B,GAAW,EAAE,OAAhE+uD,OAAO,QAASC,OAAAA,4BAAA,IAA8B78B,IAAA,KAAAC,IAAA,MAAA,IACnC6lB,IAAAA,MAAW8I,IAAA,KAAC,KAAD,KAKtB,MAAR,IAAA,IAL8B,MAAd,IAMO9I,IAAAA,MAAW8I,IAAA,KAAC,KAAD,KAK1B,MAAR,IAAA,IALkC,MAAd,IAMvBpiB,IAAAA,KAKI7qC,IAAD,IAAA,IAAA,IAAem7D,IAAf,IAAkCC,IAAlC,IALO,KAAD,MAOTvwB,IAAAA,KAAU,KAKP,IALM,MAMF,IAAA,IAASswB,IAAT,IAA4BC,IAA5B,IAAP,EAzBkC,EAAA,KAKlC,EALkC,SACP98D,GAAAA,IAAiB,QAAC1R,MAAW,KAACyuE,IAAD,KAAmB,SAA9BzuE,IAA4CyuE,IAA7C,KAA1B,IAAA,GAAA,GACVC,IAAS,KAAb,GACIC,IAAS,KACb,GAHc,MAKoB,EAAA,KAKtC,EALsC,SACXj9D,GAAAA,IAAqB,QAAC1R,MAAW,KAACyuE,IAAD,KAAmB,SAA9BzuE,IAA4CyuE,IAA7C,KAA9B,IAAA,GAAA,GACVC,IAAS,KAAb,GACIC,IAAS,KACb,GAHc,MAMV79B,GAAAA,IAAJ,GACIy9B,MAAiB,IAChBz9B,IAAL,GAAgB19B,IAAhB,GACIo7D,MAAa,IADjB,EAEJ,EAGIE,GAAAA,MAAiB,QACV,KAAP,EACIA,GAAAA,MAAiB,QACrB,EAQD,KAAA,IACI,KAAP,EAAoBE,GAAAA,IAAcl9D,GAAAA,SAAD,MAAlB,E,K,M,K,I,Q,S,M,M,MCzCK,MAcW,EAApB,UATe,UAIN,UAIC,MAGO,MAKmB,EAA5B,UAHS,MACM,UACC,MAOT,MAKiB,EAA1B,UAHY,UACD,UACK,MACe,E,W,M,K,I,Q,O,WCjCpD,OAAA,KAGwBm9D,UAAmB,KAC3C,EACA,EACgC,MAAA,E,O,M,K,I,Q,O,K,M,K,MCNQ,MAYvC,EAPuC,MAAA,MACxC,EAKWC,GAAAA,IAAP,E,Q,M,QCXJ,IAAA,KAAA,QACA,IAAA,QACA,IAAA,KAAA,KAA6E,E,U,M,QCQ7E,IAAA,KAAA,KAAA,QAIc,I,QA4BA,MAAgB,EAf9B,EACMC,GAAAA,MAAJ,IACoBC,IAAAA,KAA6B,KAAA,IAAE,MACpB,MAAC,cAAD,OACPp4D,KAAa,IAAhB,MACIA,MAAH,IAIfm4D,IAAF,IAAyBE,IACbC,IACSH,IAHnB,EAAA,IAAA,KAGmBA,IAHnB,KAAP,E,W,M,M,K,I,Q,SCnCF,MAAA,QACA,IAAA,KAAA,IAAA/uE,MAAA,KAAA,KAAA,KAAA,KAAA,QACA,IAAA,KAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,KAAA,KAA6B,EAD7B,SAAA,QAAA,IAAAM,GAAAA,IAAA8H,IAAA,GAAA9H,IAAA,IAAA6uE,IAAA,IAAA,UAAAnvE,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,EAAA6uE,GAAAA,IAAA/mE,GAAAA,IAAA,IAAA,EACA,SAAA,QAAA,IAAA9H,GAAAA,IAAA8H,IAAA,GAAA9H,IAAA,IAAA8uE,IAAA,IAAA,UAAApvE,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,EAAA8uE,GAAAA,IAAAhnE,GAAAA,IAAA,IAAA,E,YCFA,IAAA,QACA,IAAA,QACA,IAAA,KAEIinE,UAAJ,KACIC,MAA2B,KAAD,KAe7B,EAf8B,KAGP,MAAM,MAAlB,GAKgC,MAAA,IAA5B,EAJcC,GAAAA,IAAAA,MAAkB,MAAS,MAAT,QACN,MAAM,MAALC,GAAyC,MAAzCA,EAAwB,MAAzB,KAA1B,EAMR,EACgC,MAAA,IAA5B,E,W,K,I,O,M,O,M,K,I,Q,O,S,I,K,K,O,I,K,K,O,I,K,K,OCjBZ,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAMkB,KA+Kb,IAAA,MA3Ke,EAAH,MAIE,EAAH,MAAK,EAdiC,IAAA,KAAA,OAAA,cAAA1pE,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAMpC,EAAA,KAAA,IA4EbkK,GAAAA,IAAA,KAAA,OAiJA,IAjJA,MAAA,IAAA,IAAA,IAAA,IAiJA,MAAA,IApID,KAoIC,IAAA,IAAA,IAjIA,MAAA,IAQD,KARC,IAiIA,IAzFA,MAAA,IAED,KAFC,IAyFA,IArEA,MAAA,IAED,KAFC,IAqEA,IAjJA,OAmGA,EA5HD,OAAkB,KAAM,KAAA,UAAMulE,OAAY,MAAO,KAAQ,KAAAtlE,GAAAA,IAAA,KAAAolE,GAAAA,IAAA,MA9BrD,MAYI,MAKH,MAIC,QAEK,MAED,MAIW,IAAH,MAEL,MACA,MACA,MACD,MACJ,OAAJ,IACc,MAEV,GAAJ,IACe,MAEf,GACoBG,IAAAA,MAAgB,MAAnB,MACL,MAAR,KACmB,MAGnBxpE,IAAAA,KAAQ,SAAZ,IACI,GACgBypE,IAAqB,MAAA,KAAxB,MAEb,GACgBA,IAA0B,MAAA,KAA7B,MAGrB,EAAC,EAAAtP,GAAAA,IAAA,OA6GD,KA7GC,KAAA,IAAA,KAiJA,EAAA,EAAAuP,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EApCD,EAAA,KAoCA,EApCA,cACY,MAAR,MAGQ,MAAR,QAMgB,MAER1pE,GAAAA,IAAAA,KAAQ,SAAZ,IACQ2pE,IAAuB,MAAK,KAAL,KAA3B,GAOgBF,IAAqB,MAAK,MAAL,KAAxB,MAPb,EAC0CE,IAA6B,MAAK,MAAL,KAAnE,IAAA,GAAA,MAAa,KAAQ,KAAM,KACjB,MACC,MACF,MAMKC,IAAAA,MAAkB,MAAU,MAAW,KAAW,OAArC,IAAtB,IAAA,GAAA,GAAA,MACE,MACX,MAA2B,KAAC,KAAD,KAKnC,EAEoB,MACU,IAAH,MAE3B,GAJQ,EACY,MACU,IAAH,MAVV,GAQT,EACY,MACU,IAAH,MAnBf,GAaZ,EAAA,IACQ,MAA2B,KAAC,KAAD,KAC/B,EAEI,IACY,MACU,IAAH,MAC3B,QA7BcvmE,MAAO,KAAA,IAAC,QAAD,IAAA,IAAjB,IAAA,GAAA,GAGA,GAHA,GAHA,MAIIiC,GAAAA,IAAI,MAAwB,KAAC,KAAA,OAAA,KAAD,OAChC,EAkBgC,GAAU,OAAc,IAAd,EAGV,GAAS,MAAcxG,GAAAA,MAAD,KAAb,EA5HjD,KACsBxD,MAAa,KAAA,QAAbA,GAAqC,IAAA,OAChD+H,MAAW,MAAc,OAAC,KAAD,KAAd,KAAlB,EAA+CgmE,GAAAA,IAAgB,SAAA,KAAwB,MAAA,IAA7C,EAS9C,GACQ,OAAJ,OAGaQ,GAAAA,IAAAA,QAAY,KACzB,KACc1uE,UAAK,IAAA,KAAA,QAAA,OAAA,IAAA,IAAf,EAICguE,IAAAA,MAAL,MACoB15D,IAAAA,KAAkB,KAAvB,MACO45D,GAAAA,IACJ,KACA,KACA,MAEC,KACC,KANQ,EAAA,IAAA,IAAA,KAAA,KAAA,IAAA,IAAD,KAAA,UAAA,IAAA,IAYnBrpE,IAAAA,KAAQ,SAAZ,IAA8C,SAAA,KAA9C,GAA4D,KAA5D,GAA0E,KAA1E,GAC0B,MAAR,QACE,MAEpBqpE,IAAK,MAAY,MAAM,IACvB,EAEGA,GAAAA,IAAkB,MAAA,KAAzB,EA7BWA,GAAAA,IAAa,MAAA,KAApB,EAgCR,GAGyB,MACjBA,GAAAA,IAAK,MAAO,IAAhB,GAGsBS,GAAAA,IAAAA,QAAiB,KAA5B,MAAM,MACCT,IACJ,KACA,KAGC,KACC,KANQ,EAAA,IAAA,IAAA,KAAA,KAAA,IAAA,IAAD,KAAA,UAAA,IAAA,IAQlB,MAAiB,IACtB,EAZWA,IAAK,MAAO,IAAnB,EAeR,GACQA,GAAAA,IAAK,MAAM,IAAf,MAKe,SAAA,WAAf,IAIsBI,GAAAA,IAA0B,MAAA,KACjB,UAAA,QAApBM,GAA+C,SAAA,KAL1D,EACoB,SAAA,OAAK,IAAS,SAAA,QAAK,IAMrBV,IAAM,UAAA,MAAA,KAAD,KAAA,UAAA,IAAA,IAMlB,MAAW,IAChB,EAlBWA,IAAK,MAAM,IAAlB,E,KC7JY,SAAA,QAAV,MAA4C,E,W,K,I,K,I,K,M,M,O,M,K,I,Q,O,M,K,S,I,K,K,OCZ1D,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,IAEyBxnE,MAAW,IAAE,MAAhB,IA4ErB,EA9E4E,OAAA/H,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAStE,SAEC2oE,GAAAA,OAAJ,GAAwBA,IAA+B,KAAK,MAAL,QAAvD,GACQ9hE,IAAA,IAAA,MAAiB8hE,IAAqB,MAAL,IAAjC,SADR,MAKcj3D,IAAAA,KAA6B,MAAK,MAASK,IAAAA,MAAc,KAAA,IAA5B,MAAhC,IACO,MAAiB,MAAC,KAAD,KAClB,MAAJ62D,GAAqE,MAArEA,EAAsB,MAAW,IAAfA,GAA8B,QAAW,IAAzCA,GAEf,MAAJA,GAA+D,MAA/DA,EAAoB,MAAS,IAAbA,GAA4B,QAAS,IAArCA,GAC5B,MAIyBpoE,IAAAA,MAAW,IAAE,MACtC,MAIkBwR,UAAAA,IAAuBA,QAAP,QAAA,IACR,KAAJ42D,KAAgB79B,MAAuB,KAAL,SAAzB,IAAT69B,EACH79B,MAAuB,KAAL,SAAzB,IAA6EA,MAAmBpsC,IAAAA,KAAQ,KAAT,KAA/F,IAAA,QAAA,IAAA,IAAqHosC,MAAuB,MAAL,SAAvI,IAAA,IAGR,cAAmB,MAAK,MAAL,KAAvB,MAKkB89B,IAAAA,MAAY,MAC9B,IAAa,MAAb,IAAI,MAAJ,IAAI,MAAJ,MASIroE,IAAAA,MAAW,IAAE,MAAjB,GAOsDuqC,MAAkB,SAAjE,IADA,EAAA,KAAA,KAAP,EALwBE,IAAAA,KAAIzqC,IAAAA,MAAW,IAAE,MAAd,KAAA,OAAA,IAAA,IACZ,KAAiB,MAAJooE,QAAb,MACU,MAAd,EAAA,KAAA,KAAP,EAXoB39B,IAAAA,KAAuB,MAAM,MAAO,UAAjC,IAAA,KAAA,OAAA,IAAA,IACZ,KAAiB,MAAJ29B,QAAb,MAEK,MADT,EAAA,KAAA,KAAP,EARgB,MAAJA,IACL,EAAA,KAAA,KAAP,EAVYr2D,IAAAA,KAAS,KAAA,MACPu2D,IAAU,KAAjB,EAAA,KAAA,KAAP,EANcA,IAAU,KAAjB,EAAA,KAAA,KAAP,EAL6C92D,GAAAA,OAANuxC,IAAL,EAiDnC,GACEwlB,GAAAA,IAAAA,MAAL,GACI,EAEqB99B,IAAAA,KAAG,KAAA,UAAA,IAAA,IAAZ,UAChB,IAGoBA,IAAAA,KAAI89B,IAAAA,MAAD,KAAA,OAAA,IAAA,IACY,UAAA,QAAdC,GAA4Bz2D,IAAAA,KAAS,KAAQ,MAAR,MAC/C,SAAA,MACG,MAAd,EALI,E,E,K,I,K,I,K,ICiCI,EAED,KAFC,IA8CC,KA9CD,KAgEE,KAhEF,KAqEJ,KArEI,IAwFA,KAxFA,KAkLC,KAlLD,KAsLD,KAtLC,KA+MA,KA/MA,KAsRD,KAtRC,KAuUF,KAvUE,KA8UH,KA9UG,SAAA,SAAA,OAAA,KAAA,KAAH,IAgaE,SAEG,QAAS,EAtfvB,GACM,OAAJ,MAGF,IAFctU,MAA+ClB,MAAc,MAAA,SAAnD,IAAD,KAAA,OAAA,IAAA,IAAnB,EAKJ,4CAM2B,sBAAzB,OACc,KAAZ,UAEK,SADmB,KAAA,KAKxB,mBA2CO,sBAAA,OACL,eADK,KA1CagD,aAAlB,gBAAA,OAEO,IAAA,IAgCE,KAAP,IAGkB,KAACkpE,IAAD,MAHlB,EACyB,KAACA,IAAD,MAAhB,IAAJ,IAGelpE,IAAAA,UApCf,KACE,KAAP,IAAA,IAA+D,KAAI,KAAH07B,IAAD,KAA/D,IAA8G,KAAI,KAAHA,IAAD,QAA9G,IACS,KAAP,IAcc,kBAAP,OAA2B,qBAA3B,SAb+B,MAAA,KACV,KAAHA,OAAvB,aAoBJ,GACS,QAAP,IACK,IADL,SADF,OAnBM,IAIiB,KAAA,MACQ,KAAHA,IAAgC,MAAA,KAAhCA,OALtB,cASA,gBAxBsB,GAAT,0BAAzB,OAwDA,EAGF,OACsB,MAAVytC,GAA4B,MACjB,MAAVA,GAA8B,KAAVA,MAAoC,MAAVA,MAA3B,IAC9B,GACE,EAEoB,MAAtB,QAGOC,IAAAA,IAAP,EAFSA,IAAP,EAOO,2BAKe,MAAT/oE,IAUXgpE,UAVF,OAEE,OAGE,IACQx7D,KAAW,MAAA,IADnB,MAHF,EACkB,OAOlBw7D,IAAU,KAGF,WAAR,IAIe72D,IAAAA,IACmB,KAAA,KAAfA,IAlB6C,YAAlE,mBAAA,GAyBe82D,IAAmC,GAAf,MAGjB,KADlB,GAKO,QAGL,EAFA,EALA,IAGE,EAFO,IAAP,EAUK,OACTD,GAAAA,MAAU,KAEF,OAAR,IAEgC,KAAA,QAAf72D,IACsB,KAAK,QAAJA,IAAD,KAGhC82D,IAA2B,GAAP,MAEnB,QAAR,OAAA,MACQ,QAAR,OAAA,QAA8C,IAE9C,GACA,MADuB,IAAP,EAXO,EAeb,GACVD,GAAAA,MAAU,KACC,OAAJ72D,IAAAA,GAAkC,KAAA,QAAfA,IAA1B,EAGI,UACS,GAAb,IAG6B,GAE3B62D,SAFF,IACqB,IACnBA,IAAU,KACH,QAAP,OACE,IAGY,IAAJ,IAP0B,GAAT,SAA7B,IAUA,IAEOE,IAAe,MAAA,KAAtB,MADE,MAbA,EAiBM,gCACRF,GAAAA,MAAU,KACA,KAEV,OAEOE,IAAa,KAAA,KACF,KAAA,KAElB,OAIuB,WAAvB,IACqB,KAAA,WAAnB,IAD8B,GAAT,QAAvB,IAIkB,KACJC,IAIK,WAAnB,IACmB,KAAA,WAAjB,IAD0B,GAAT,QAAnB,IAIc,KACFC,OAGCC,OAAAA,QAGb,aACE,IAwB8B,KAACC,IAAD,KACJ,KAACC,IAAD,QAC1B,OAEK,OA7Ba,SAApB,MAEI,OAUO,IACc,KAACD,IAAD,QAAnB,OAIO,MAAA,EAdU,KAACC,IAAD,KAAjB,UAIO,OA6BJD,IAAAA,UAAT,IACE,IAAoC,KAAA,QAApC,IACS,KAAP,IAGK,IAHL,EACK,IAH6C,SAAtD,IAWO,KAAP,IAGS,IACU,KAAA,QAAjB,IACE,GACa,KAAA,KAAf,EALqB,KAACC,IAAD,KAAdC,IAAP,EAtCqB,KAAA,KAAf,EAJe,KAACD,IAAD,KAAf,EA9BS,EALA,EAsFR,GACT,EAGO,uBACPP,GAAAA,MAAU,KACF,OAAR,IAC0B,KAAA,KACZxD,IAGG,KAAJrzD,SAAb,IACwB,KAAA,UACtB,UACI,GAHgC,SAAtC,IAaA,IACA,GAAA,IACiB,KAAA,MAAjB,MAD0B,KADHs3D,MAAP,EAlBO,EAuBf,sBACJC,IAAJ,GAAyB,OAAzB,OACAV,GAAAA,IAAU,KAOV,GAA4B,KAA5B,IAA8C,KAAe,KAA7D,IAyCe,KAAJ72D,cAAT,IACqB,KAAA,QAAnB,UAOS,IAIDxS,MAJC,QAJL,GACUA,OACR,EAN0B,cAAlC,IAgBA,IACiB,KAAA,MAAjB,MADgB,EAxDT,KAAgB,KAAvB,IAAA,OACgB,KAAH+pE,IAEA,KAAJv3D,oBAAT,OAC4B,KAAA,QAC1B,UAQE,IAIqBxS,MAJrB,YAMA,IAE6B,KAAA,iBAA3B,IACM,eAAJ,gBAAA,cAdF,GACUA,UACR,EAP0B,uBAAlC,OAkCA,OAA+C,IAA0B,KACxD,KAAA,MAAjB,MAtCgD,IATU9B,MAAS,KAAA,WAAA,IAAA,IAAnB,EAsE3C,oBACPmrE,GAAAA,MAAU,KAQO,KAAJ72D,wBAAb,OAC4B,KAAA,QAC1B,UASA,IAIQxS,MAER,gBAMO,gBAAA,cAJH,gBAEK,gBAAA,cAhBL,GACcA,aACZ,EAP8B,0BAAtC,OA8BA,IAAA,IAAA,IAAA,IAIsCskC,IAJtC,IAI8D0lC,IAJ9D,IAOiB,KAAA,MAAjB,MAFE,EAKI,KACN,IAA2B,OAA3B,IAGOC,GAAAA,UAAO,MAAd,IAFY/rE,MAAS,KAAA,QAAsE,GAArE,OAAD,IAAA,IAAnB,EAKG,oBACLmrE,GAAAA,MAAU,KAEA,UACF,KAAR,OAC0B,KAAA,KACTxD,MAEjB,OACU,SASE,KAAJrzD,wBAOR,OACwB,KAAA,QACtB,UASA,IAIQxS,MAER,gBAGS,gBAAA,cADL,gBAAuC,gBAAA,cAdvC,GACcA,aACZ,EAPW,0BAAnB,OA2BA,OAAA,IAAA,IAAA,IAIkCskC,IAJlC,IAI0D0lC,IAJ1D,IASE,IAAA,GAIuB,KAAA,MAAb,MACa,KAAA,MAAb,MALV,EACuB,KAAA,MAAb,MACa,KAAA,MAAb,MAKU,KAAA,MAAb,MAhBT,EAKE,IACE,IAAA,GAAiH,KAAA,MAAb,MAAX,MAAzF,EAAmE,KAAA,MAAb,MAAX,MAa/C,IAA+D,OAAuB,MAAvB,EAAxB,KAAIA,IAAJ,MAAb,MAE1B,EArEuB,E,W,I,K,I,K,I,K,I,K,I,K,I,K,MC9bL,MAAA,KAAV,OACI,IAAA,KAAV,IACoB,cAAH,IACV,cAAH,IACI,cAAH,IACA,cAAH,IACS,cAAH,IACW,cAAH,IA0BV,IACV,QADU,IAEV,QAFU,IAGV,KAHU,IAMV,QANU,IAOV,QAPU,MAQTE,MAAD,IAAA,QAAA,IAAA,IAAA,IAAA,IARU,IASV,IAAC,cAAD,QAAA,IAAA,IAAA,IATU,IAUTA,MAAD,IAAA,QAAA,IAAA,IAAA,IAAA,IAVU,IAAH,IAqBI,UAAH,IAygBM,E,KAAA,I,KAAA,IAAH,MAMM,MACP,MACA,MACN,SAEQ,MAAO,EAzjBrB,UACUhE,MAAwB,KAAA,IAAU,KAACiE,GAAAA,IAAD,MAA1C,EAkDF,KAGM,MAAA,OAAJ,IACS,GAAA,IAAA,GAAJ,IACI,MAAA,GAAJ,IACY,EADZ,EAA6C1tC,MAA7C,EAD+CnkC,IAA/C,EAD0CD,MAKvB,MAAT+xE,GAAsB,EAC/BC,MAEiB,EACZ,GAGQ,UAAnB,WAEO,WAGA,OACL,GACaC,GADb,QAAA,SAAA,GACaA,IAAPxpE,IAAJ,GAC2B,IAAN,IAFvB,EAKoB,WAApB,OAC6BypE,IAAY,MAAI,MAAJ,KAAf,SAD1B,EARuBC,GAAAA,IAAG,KAAA,IAAM,QAAN,IAAA,IACdF,IAAZ,GAAA,WAAA,SAAA,GAAoB,IAApB,EAHuBE,GAAAA,IAAIC,MAAY,QAAJ,KAAT,KAAA,IAAyB,KAAzB,IAAA,IAe5B,EAUF,OAEIC,IAAAA,OACAA,IADAA,OAEAA,IAFAA,OAGAA,IAHAA,OAIAA,IAJAA,OAKAA,IANF,EA0BF,OACYC,GAAAA,SAAQ,KACO,KAACC,IAAD,MACdtiE,GAAY,EAEXuiE,IAAe,KAAA,QACP,OAALv7D,GAAgB,IAAe,MAAA,IAA/BA,GACa,IAAN,GAAD,MACK,IAAN,GAIpB,GACE,GACc,IAAW,IAAhBA,OAA2B,IAA3BA,IACa,IAAG,KAAe,IAAG,KAA1BA,IAFjB,EAIc,OAAW,IAAhBA,IACa,IAAG,KALzB,EAQA,GACc,OAAW,IAAhBA,IACa,IAAG,KAFzB,KAIc,MAJd,IAQF,IAIWw7D,IAAS,KAAb,GAEA,MAIA,IAAyBA,IAAkB,MAAT,QAAlC,MACO,IADP,KAHL,GACmB,KAAA,KADnB,KAFY,IADP,KAHL,IACmB,KAAA,KAcVC,GAAkBD,IAAS,KAF/B,EAAA,KAAA,KAAA,KAAA,KAAP,EAgBF,2BACE,UAEY1tE,MAAkB,KAAA,KAAW,WAAA,MAAc,KAAe,KAAA,KAAf,KAC3C,KACI4C,IAAD,IAIP,GAAA,SAAR,GACU,IAAR,IAEe,IAAR,UAGA,MACL,MACW,MAAA,MACT,MAHG,EAFM,MAAA,MACT,MAFG,EADM,MAAA,YAFP,GAAA,YAAR,GAaA,GAAyB,MAAA,KACzB,IAAA,IAA4C,KAAA,KAE5B,KAAA,KAAhB,EAxBqB,EAyCvB,iDACY2qE,GAAAA,OAAQ,KACO,KAACC,IAAD,MAEHJ,IAAhB,IAAN,GACaA,IAAG,KAAA,gBAAA,IAAA,IAAd,EAIiBQ,IAAW,KAAA,IACnB,aAeX,UAAA,SAAA,GAKA,GAA6B,MAA7B,IAAqDC,IAAE,MAE5CC,IAAS,KAKRC,IAAgBC,MAAD,MACN,MAAV,GAAA,GAAiC,MAAV,GACX,MAATC,MAAqBC,GAAoB,MAApBA,GAAxB,MACa,MAATD,GAA8B,MAA9BA,MAAH,MACO,MAOR,UADX,IAEa,MAFb,IAEoCE,IAAuB,MAAA,KAF3D,GAGa,MAHb,GAIc,MAJd,GAKe,MALf,IAMOT,IAAa,MAAJ,KANhB,GAQoB,IAAC,cAAD,QAAA,IAAH,IAGM,gBAAvB,OAC4B,IAEtB,GAAJ,OAKmB,IACF,IAEjB,OAEwB,GAAjB,IAcuB,KAAA,WAAvB,MACW,IAAR,IACe,KAAS,KAAT,SAFlB,KAbGU,IAEW,KAAA,KAFXA,EACe,MAAA,KAGnB,SAAJ,GACqC,IAAlB,GAAjB,IAI0B,KAAA,KAAhB,IACe,KAAA,SALzB,EAC0B,KAAA,MAAhB,IACe,KAAoB,IAAnB72D,IAAD,QAFzB,EAPM,UAoBI,IAAH20B,MACTgiC,GAAuB,OAAvBA,GAAqC,IAARhjE,MAAAA,GAA7BgjE,GADM,IAQO,gBAAf,GAAkC,IAAiB,MAAA,IAAvB,gBAA5B,EApCuB,eAJQ,GAAV,iBAAvB,OAgDA,GAAkC,MAAJ,KAAT,MAKrB,GAEa,MAFb,GAGQ,MAAgB,MAAA,SAHxB,IAIS,MAJT,IAIqC,MAJrC,IAMiBvgE,IAAW,MAAmB,MAAvB,MAAV,MAOP,MAAgB,MAAA,SAAvB,IAAsC+/D,IAAa,MAAJ,KAA/C,GAC0B,MAAT,IAAH,MAQTW,IAAY,MAAU,MAAd,MAAb,GACgB,MAAN,MACA,MAMiB,MAAf,MAEL,MAAP,MACa,MAAa,SAAA,KAEpB,GAAJ,KAOiBzgC,MAAmB7B,MAAsB,MAAJ,KAAnB,KAArB,MAPd,EACoB,MAAW,KAAA,MAAjB,QACG6B,MAAmB7B,MAAsB,MAAJ,KAAnB,KAArB,MAEM,MAAW,KAACx0B,IAAD,KAAjB,MACGq2B,MAAmB7B,MAAsB,MAAJ,KAAnB,KAArB,MAKA,MAAe,MAAlBG,MAAAA,EAAeA,IAAsB,MAAtBA,IAAlB,MAGM,SAAHA,IAA4BwhC,IAAa,MAAJ,QAArCxhC,GAA0D,SAA1DA,GACN,UAAHA,IAAuB,MAAvBA,IADM,MAOa,KAAA,IAAf,MACV,EAeA,gCAGE,IAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,OA+D6B,SAAA,KAErB,GAAJ,KAOiB0B,MAAmB7B,QAAkB,KAAnB,KAArB,MAPd,KAC4B,KAAA,MAAd,QACG6B,MAAmB7B,MAAsB,QAAJ,KAAnB,KAArB,MAEc,KAACx0B,IAAD,KAAd,MACGq2B,MAAmB7B,MAAsB,MAAJ,KAAnB,KAArB,MALd,OANY6B,QAAkB,KAArB,IACT,KAXA,GAIW,IAJX,KACahH,OACa,MAAA,QAAZzqC,IAA2BmyE,IAA9B,IAFX,KANgC,MAAA,IAApB,MACE,GAAH,MACX,KAhBS,IAELC,GAAAA,IAAS,MAAA,KAAb,GAKc,UACJ,MANV,KACqB,SAAA,KACC,KAAA,IAAZ,MACiB,KAAA,KAAb,MAHd,KATS,IAEF,SAAP,GAA+B,UAAR,IAAJ,IACX,MACR,KAhBS,IAEJF,GAAAA,IAAmB,QAAX,MAAb,GACgB,MAAN,UACC,IAFX,EAGO,GACS,UAAHniC,IAAAA,IAAH,MADH,MAbU,MAAjB,IAAsC,QAAtC,GACWpoB,GAAM+pD,GAAAA,IAAE,MAAR/pD,EAAc,KAGhB,IAsEO8pD,GAAAA,IAAK,OAAzB,IACYA,IAAK,IAER,IAAP,GAAmB,IAAc,IAAJ,IAAoB,MAAA,IAA1B,IAHU,GAAfA,IAAK,KAAzB,IAMc,MAAe,MAAlB1hC,MAAAA,MAAeA,IAAsB,MAAtBA,IAAlB,MAEQ,aAAHA,IAA4BwhC,IAAa,QAAJ,QAArCxhC,GAA0D,SAA1DA,GACN,UAAHA,IAAuB,MAAvBA,IADM,MAIa,KAAA,IAAf,MAER,EAUF,cACE,OAAiC,GAAjC,IAA+D2hC,GAAAA,IAAE,MAInD,MACI,SAElB,GAA+B,MAAS,QAARW,IAAD,YAA/B,IAAsE,IAI/D,MAAHtiC,GAAmB,MAAnBA,GAAgCwhC,GAAAA,IAAa,QAAJ,KAAzCxhC,MADFsiC,IAGK,MAAP,GAIc,MAAP,GAIF,aADE,OAELd,GAAAA,IAAa,QAAJ,QAFJ,MAAA,GAIF,aAJE,QAUC,IAVD,EAFa,UAAR,IAAJ,QACA,IAFD,EAHQ,MAAP,IACC,SAAP,GAAoC,UAAR,IAAJ,IAAxB,IACM,IAsBK,QAAJe,IAAD,QAAR,IAAsCF,GAAAA,IAAS,MAAI,MAAJ,QAA/C,GAAqE,SAArE,GACM,IAGc,MAAVE,IAAJ,IAEyB,UAAV,GAAb,IAA0D,MAA1D,EAA6C,QAAJ,KAAzC,GACR,GAAyC,QAAA,YAApB,IAA0B,IAA9B,IAEV,SAAP,GAA2B,MAAP,IAEpB,EAxhBA,GACSf,GAAAA,OAAa,QAAJ,QAATA,GAAyC,KAAC,kBAAD,MAAhD,E,EC5Ba,QAAH,QA0BZ,EA1Be,GACU,SAAA,OAAK,OACvB,GAEP,KAAW,EAEX,IAAA,QAAA,QAAA,QAAA,QAAA,QAAA,QAAA,IAmBOa,IAAP,IAHE,KAHOA,IAAP,KAHOA,IAAP,QAHOA,IAAP,KAJOA,IAAP,E,K,K,I,K,MClBMjzE,MAAM,KAAU,KAAnB,I,KAkHU,M,KACJ,QAAe,EAzG5B,GACE,EACSywC,MAAgC,KAAC,kBAAD,QAAd,KAAzB,EACA,IACA,EAYF,EACS6B,WAAkB,KAAzB,EACA,IACA,EAWJ,aACe,cACA,EAGY,KAAA,KACblC,GADZ,GACYA,IAAW,IAAL,KACO,IAAL,KAUlB,IAAA,IAAsChoC,IAAtC,GACW,IAbY,KAAA,KAAzB,GAgBA,EAWF,wBACWgrE,MAEG,QAOK,GAAjB,OAEA,GAYUC,KAZV,QAAA,SAAA,GACMC,IAAQ,KAAA,MAAZ,GACa,OAMX,GAAA,IAAA,IAAoDl7D,MAAK,QAAzD,MAIMi7D,IAAM,KACE,QAMd,OAAA,IACU,KAACjrE,IAAAA,IAAD,QAnBZ,EAuBU,KAALmrE,GAAkC,SAAA,KAAnBH,IAAtB,E,e,K,I,M,K,I,Q,O,WC9GF,OAAA,KAEiE,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxtE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,W,MAFjE,IAEAA,MAAA,KAAA,KAAA,KAAA,KAAA,KADeiZ,KAAmB,MAAA,EAC+B,IAAA,KAAA,OAAA,cAAAnT,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAjE,SAAA,WAAA,SAAA/F,MAAA,KAAA,KAAA,KAAA4I,GAAAA,IAAA,MAAA,GAAAtI,IAAA8H,IAAA,GAAA9H,IAAA,IAAAkzE,IAAA,IAAA,QAAAxzE,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,IAAA,EAAAkzE,GAAAA,IAAAprE,GAAAA,IAAA,IAAA,E,qB,K,I,K,I,K,I,K,I,K,I,K,M,I,K,M,K,I,Q,O,M,M,M,M,K,M,K,M,K,M,K,M,S,I,K,K,OCFA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAEiD,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAFjD,OACA,IAAA,KAAA,OACA,IAAA,KAEgC0G,KAAS,MAAV,GAAD,GAAH,IAA4B,MAIf,GAAA,GAClCD,IAAAA,MAAkB,MAAnB,IAAA,GAAC,MAAD,GAAD,GADoC,GAInCA,IAAAA,MAAkB,MAAnB,IAAA,GAAC,MAAD,GAAuD,MAChBgtE,IAAAA,MAA2C,MAE1CA,IAAD,GAAA,GAAmB,GAA0B,MAazD/sE,IAAAA,KAAS,QAATA,GACzBgtE,MAAmBhtE,IAAAA,KAAS,MAAV,KACb,MA+CV,EA3EgD,IAAA,KAAA,OAAA,cAAAZ,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAiBtCU,GAAAA,IAAAA,MAAkB,UAAzB,IAAO,MAAP,IAAsD,EAAtD,EAGOC,GAAAA,IAAAA,KAAS,QAAhB,IAA2C,EAA3C,EAGOA,GAAAA,IAAAA,KAAS,MAAhB,EAKO,EAEwBitE,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAtT,GAAAA,IAAA,OAA5B,KAA4B,KAAA,IAKlC,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,gBACCoT,GAAAA,IAAJ,GAGOG,MAA0B,OAAjC,GAFWC,kBAAwB,IAA/B,MAGP,EAKsCC,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAzT,GAAAA,IAAA,OAAvC,KAAuC,KAAA,IAiBtC,KAAA,EAAA,KAAA,MAAA,EAjBD,EAAA,KAiBA,EAjBA,sBACwBv9D,GAAQixE,GAAAA,IAAAA,OAAU,KAClBC,GAAAA,IAAU,UAAVA,IAAAA,QAAAA,IAAAA,IACGA,IAAuB,MAAW,IAAA,KAAX,MAAhC,IAAA,GAAA,MAGD,MAAb,KAAA,IAAkD,MAAlD,IAC0BA,IAAwB,MAAgB,EAAA,KAAhB,OAA9C,IAAA,GAAA,GAAW,QAGX,IAAA,IAMJ,KALkB3yE,aAAM,IAAA,IAAA,QAA0C,IAA3C,KAAA,QAAC,QAA0C,IAA1C,QAAA,OAAD,IAAA,IAAf,EAJJ,GAJU,MAcjB,EAMwC4yE,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAA5T,GAAAA,IAAA,OAAzC,KAAyC,KAAA,IAYxC,KAAA,EAAA,KAAA,MAAA,EAZD,EAAA,KAYA,EAZA,aAGsB,UAAA,KAAlB,GAGoBv9D,GAAQixE,GAAAA,IAAAA,OAAU,KAClBC,GAAAA,IAAU,UAAVA,IAAAA,QAAAA,OAAAA,IAGdA,IAAwB,MAAA,MAA9B,IAAA,GAAA,GACA,GADA,GANI,M,K,IChDN,SA0XD,KAAO,EA1XN,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,OAiXI,MAAA,OAAJ,IAAoC7uC,MAAM,MAA1C,GAIW,GAAA,IAAA,OAAJ,IAAkChlC,IAAM,KAAxC,cAGA,oBAFLA,IAAc,wBAJdglC,MAAO,KAAD,KAQV,EA/WE,YACatmB,IAAeF,IAAhB,OACCE,IAAYF,IAAb,IAAyBu1D,IAAzB,IACFC,IAAcD,IAAdC,IAAR,EAUF,MACUj8D,OAAwB,IAATA,IAAfA,IAAR,EAeOk8D,GAAAA,IAAQC,YAA6B,YAAe,MAAvB,SAAR,SAAd,MAAd,EAcF,GACSC,GAAAA,OAAQh9D,IAAU,MAAA,MAAVA,mBAAF,IAAb,EAcF,MACSg9D,GAAAA,IAAQh9D,IAAc,MAAJ8G,MAAV9G,mBAAF,IAAb,EAcF,GACSg9D,GAAAA,OAAOh9D,OAAAA,qBAAD,IAAb,EAcF,GACSg9D,GAAAA,OAAgB,GAAJh9D,OAAL8G,qBAAD,IAAb,EAUF,+dAEIwuB,IAAD,OAAsBA,OAAR,IAAJ,IAAA,OACNA,IAAAA,IAAAA,IAAH,IAA+B,IAYhB,KAMX2nC,6BANN,OAMMA,IAAmB,wBAAd,IACejtE,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IACeA,IAAD,sBAAd,IAELktE,IAAmB,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IAELC,IAAmB,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IAELC,IAAmB,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IACc,sBAAd,IAELN,IAAO,MACA,MACA,MACA,MA7Ec,IAAV,iBAAjB,OA+EO,IAAA,IAAA,IAAA,IAAA,IAAP,EASF,qBAGsB,KAAL/jC,YACf,IACY9rC,MAAmB,MAAQ+C,IAAD,IAAaA,IAAlB+oC,IAAAA,IAAF,KAAvB,IADmB,OAA3B,IAGA,EAUF,oBAEe,IACA,QAALA,MAAD,IAAwB,IACT,OAAtB,IACW,IADqB,IAAV,KAAtB,IAGmB,KAALA,MACd,IACS/oC,IAAD,IAA6B,KAACA,IAAD,KAAhB+oC,IAAmC/oC,IAApC,IAAJ,IAAA,IADU,IAA1B,IAGA,EASF,GACSqtE,GAAAA,IAAUC,IAAQC,MAAS,KAAM,QAAD/pB,IAAf,MAAR,KAAhB,EAUF,wBAEa+pB,GAAAA,MAAS,KACT,IACA,OAEQ,IAAX,IACA,QAAR,IACSD,IAAiB,QAAHxsE,IAAP,MADhB,EAIgB,IAAJ0sE,IAAH,IACO,IAAJA,IAAH,IAFY,IAArB,IAIOF,IAAmB,KAACC,IAAS,KAAV,KAA6B,QAAJroC,UAAN,IAA/B,MACPmoC,IAA6B,KAAA,WAAZ,MAAR,KAAhB,EASF,oBAKuB,UAArB,IACsB,KAAA,KACG,MAAE91D,IAAAA,IAAF,KAAkC,MAACA,IAAD,KAA/Ck2D,IAAJ,IAFuB,IAAV,QAArB,IAIA,EASF,EACShD,MAASz/B,WAAkB,KAAnB,KAAf,EAUO0iC,GAAAA,IAAQC,SAAY,KAAb,KAAd,EASOC,GAAAA,IAASC,SAAM,KAAP,KAAf,EAUOC,GAAAA,IAAYH,SAAY,QAAiB,KAA9B,MAAlB,EAUOC,GAAAA,IAASG,YAAU,MAAX,KAAf,EAaF,SAUSA,GATP,GACE,GACSC,MAAM,KAAb,EAEKH,MAAM,KAAb,EAEF,GACSI,MAAU,MAAjB,EAEKF,MAAU,MAAjB,EAKSG,GAAAA,IAAP,E,W,M,M,K,I,Q,SC1YN,MAAA,KAAA,IAAAx1E,MAAA,KAAA,KAAA,KAAA,KAAA,QACA,IAAA,KAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,KAAA,KAAmC,EADnC,SAAA,QAAA,IAAAM,GAAAA,IAAA8H,IAAA,GAAA9H,IAAA,IAAAm1E,IAAA,IAAA,UAAAz1E,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,EAAAm1E,GAAAA,IAAArtE,GAAAA,IAAA,IAAA,EACA,SAAA,QAAA,IAAA9H,GAAAA,IAAA8H,IAAA,GAAA9H,IAAA,IAAAo1E,IAAA,IAAA,UAAA11E,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,EAAAo1E,GAAAA,IAAAttE,GAAAA,IAAA,IAAA,E,W,K,I,K,I,K,K,I,K,K,I,K,I,K,K,I,K,I,K,I,K,I,K,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,M,M,O,M,K,I,Q,O,M,M,M,M,M,M,M,M,K,M,K,M,M,K,M,M,K,M,K,M,K,M,K,M,K,M,K,M,M,M,K,M,K,M,S,I,K,Q,I,K,Q,I,K,Q,I,K,K,O,I,K,Q,I,K,Q,I,K,K,OCDA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,QACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,IACKutE,KAAL,GACIr0E,MAAY,SAAA,KADhB,Q,yB,S,SAIoB0I,IAAAA,MAAa2rE,IAAAA,KAAD,KAAA,IAAA,IAYsBA,IAAAA,KAAkB,MAAnB,KAAvB,IAA8D,MAMzCA,IAAAA,KAAkB,MAAnB,KAAoC,MAEpCA,IAAAA,KAAkB,MAAlBA,IAAAA,KAAkB,MAAC,MAAA,MAoPxB,KAqDxC,IAAA,MAEkB,KAqClB,KArCkB,IAAyC,MAuClC,KAwFzB,KAxFyB,IAAyC,MA4F/CC,IAoFU,MAqFqB,EAA9B,0BApFxB,KAoFA,KAA2D,EAhnBsB,KAAA,IAAApoE,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAoS,GAAAA,IAAA,KAAAlS,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAiS,IAAA,KAAA,KAAA,OAAAhS,MAAA,KAAA,EAAA,OAAAiS,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAjS,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAzC,MAAA,KAAA,KAAA,KAAAyC,MAAA,KAAAzC,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAAA,OAAAnL,MAAA,KAAA,KAAAA,MAAA,KAAA,SAAAA,MAAA,KAAA,YAAAmH,QAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MAAA,EAAA,EAAAnH,MAAA,KAAAoH,GAAAA,OAAA,MAAA,KAAA,EAAA,qBAAA,GAAA,yBAAAC,GAAA,IAAA,IAAA,EAAA,EAAA,IAAA,IAAAC,IAAAA,GAAAtH,MAAA,KAAAA,GAAAqH,IAAArH,MAAAuH,IAAA,KAAA,KAAA,KAAA,KAAA,KAAAvH,EAAAA,MAAA,KAAAA,MAAA,KAAAuH,IAAA,KAAA,MAAAvH,EAAAqH,IAAArH,MAAAuH,IAAA,KAAA,MAAA,KAAA,KAAA,KAAA,GAAA,GAAA,OAAA,EAAA,GAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAAF,IAAA,MAAA,OAAA,EAAA,KAAAvH,MAAA,KAAAyH,GAAAA,IAAAzH,MAAA,KAAAuH,IAAA,MAAA,SAAA,EAMlF,KACI,IAGA,EAFoB,KAAC,kBAAD,UAATyP,IAAP,EAiB6D,EAQnC6+D,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAxV,GAAAA,IAAA,OAA3B,KAA2B,KAAA,IAKjC,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,cAA4C,MAAA14D,IAAA,IAAAA,IAAG,EAAHA,EAAA,IAC1CguE,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAA+B,SAAA,MAA5C,IAAA,GAAA,GAAA,GAAA,MACH,EAOsCG,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAzV,GAAAA,IAAA,OAAhC,KAAgC,KAAA,IAKtC,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,cAAiD,MAAA14D,IAAA,IAAAA,IAAG,EAAHA,EAAA,IAC/CguE,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAoC,SAAA,MAAjD,IAAA,GAAA,GAAA,GAAA,MACH,EAkBuCI,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAA1V,GAAAA,IAAA,OAAjC,KAAiC,KAAA,IAUvC,KAAA,EAAA,KAAA,MAAA,EAVM,EAAA,KAUP,EAVO,aACCn6D,GAAAA,IAAAA,KAAQ,SAAZ,IAOI,GANKyvE,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAqC,MAAA,KAAlD,IAAA,GAAA,GAAA,GAAA,MAKP,EAQuCK,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAA3V,GAAAA,IAAA,OAAjC,KAAiC,KAAA,IAKvC,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,cAA4D,MAAA14D,IAAA,IAAAA,IAAG,EAAHA,EAAA,IAC1DguE,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAqC,YAAA,OAAlD,IAAA,GAAA,GAAA,GAAA,MACH,EAMgCM,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAA5V,GAAAA,IAAA,OAA1B,KAA0B,KAAA,IAKhC,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,cAA2C,MAAA14D,IAAA,IAAAA,IAAG,EAAHA,EAAA,IACzCguE,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAA8B,SAAA,MAA3C,IAAA,GAAA,GAAA,GAAA,MACH,EACyDO,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAA7V,GAAAA,IAAA,OAAnD,KAAmD,KAAA,IAMzD,KAAA,EAAA,KAAA,MAAA,EANM,EAAA,KAMP,EANO,OACCn6D,GAAAA,IAAAA,KAAQ,SAAZ,IAAiCiwE,MAAjC,IAGmCA,QAAAA,IACtBP,IAAqC,IAAA,OAA1B,MAAxB,IAAA,GAAA,GAAA,GAAA,KAHI,MAIP,EAK8BQ,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAA/V,GAAAA,IAAA,OAAxB,KAAwB,KAAA,IAK9B,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,OACEsV,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAA4B,SAAA,KAAzC,IAAA,GAAA,GAAA,GAAA,MACH,EAM8BU,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAhW,GAAAA,IAAA,OAAxB,KAAwB,KAAA,IAK9B,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,OACEsV,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAA4B,SAAA,KAAzC,IAAA,GAAA,GAAA,GAAA,MACH,EAMuCW,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAjW,GAAAA,IAAA,OAAjC,KAAiC,KAAA,IAKvC,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,cAAkD,MAAA14D,IAAA,IAAAA,IAAG,EAAHA,EAAA,IAChDguE,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAqC,SAAA,MAAlD,IAAA,GAAA,GAAA,GAAA,MACH,EAMuCY,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAlW,GAAAA,IAAA,OAAjC,KAAiC,KAAA,IAKvC,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,OACEsV,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAqC,SAAU,EAAV,MAAlD,IAAA,GAAA,GAAA,GAAA,MACH,EAM4Ca,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAnW,GAAAA,IAAA,OAAtC,KAAsC,KAAA,IAK5C,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,OACEsV,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAA0C,MAAA,IAAvD,IAAA,GAAA,GAAA,GAAA,MACH,EAM8Cc,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAApW,GAAAA,IAAA,OAAxC,KAAwC,KAAA,IAK9C,KAAA,EAAA,KAAA,MAAA,EALM,EAAA,KAKP,EALO,OACEsV,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAA4C,MAAA,IAAzD,IAAA,GAAA,GAAA,GAAA,MACH,EAsBkChC,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAtT,GAAAA,IAAA,OAA5B,KAA4B,KAAA,IAQlC,KAAA,EAAA,KAAA,MAAA,EARM,EAAA,KAQP,EARO,cAAkD,MAAA14D,IAAA,IAAAA,IAAG,EAAHA,EAAA,IAChDguE,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAgC,MAAavnE,IACzCsoE,IAAAA,MAAqB,MADoB,EAAA,KAAA,YAAb,OAA7C,IAAA,GAAA,GAAA,GAAA,MAIH,EA6BgCC,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAtW,GAAAA,IAAA,OAA1B,KAA0B,KAAA,IAUhC,KAAA,EAAA,KAAA,MAAA,EAVM,EAAA,KAUP,EAVO,kBAAgD,MAAA14D,IAAA,IAAAA,IAAG,EAAHA,EAAA,IAC9CguE,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAA8B,MAAavnE,IACvCsoE,IAAAA,MAAqB,MACtBE,IAAAA,MAAoB,MAFoB,EAAA,KAAA,KAAA,MAIhC,MAAPt3D,MAAyC,MAAA,IAD5C,EAAA,KAAA,EAH0C,aAAb,OAA3C,IAAA,GAAA,GAAA,GAAA,MAwBWu3D,GAAAA,IAAiB,KAAA,sBAAA,IAAA,IAA5B,EAGWC,GAAAA,IAAU,KAAA,mBAAA,IAAA,IAArB,EAEJ,OACW,IAAP,EAEyC,EAAA,KAAA,IAGK5sE,GAAAA,IAAA,KAAA,OAU7C,IAV6C,MAAA,IAAA,IAAA,IAAA,IAU7C,MAAA,IACD,KADC,IAV6C,IAiB7C,MAAA,IACD,KADC,IAjB6C,IAoB7C,MAAA,IACD,KADC,IApB6C,IA2C7C,MAAA,IACD,KADC,IA3C6C,IAAA,MAkD7C,EArDwC,EAAAC,GAAAA,IAAA,KAAA4sE,GAAAA,MAAA,MACjC3rC,IAAAA,MAAM,IAAT,QACU,MACDphC,IAAAA,MAAa2rE,IAAAA,KAAD,KAAA,OAAA,IAAA,IAAnB,MAAuC,EAAA,EAAAtV,GAAAA,IAAA,OAG9C,KAH8C,KAAA,IAAA,KAU7C,EAAA,EAAA2W,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAPD,EAAA,KAOA,EAPA,SACSrB,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAEmB,MAAA,MACH,MACP0I,IAAAA,KAAyC,MAAK,MAAL,KAAtD,IAAA,GAAA,GAAA,GAAA,MAEJ,EACY,MAAR,KAIA,IAHIr0E,MAAY,SAAA,OACZ,EAIR,EACe,MAAX,EAEJ,IACY,MAAR,OAGwB,MAAoB,KAAkB,MAAA,IAAI,KAAtB,MAA3B,QAkBrB,IApBQ,EAE8D,GACrD,MAAUkK,GAAAA,IAAI,MAAvB,IACqBA,IAAgB,MAAA,IACjC,GACQyrE,GAAAA,IAA0B,OAAN,KAAxB,GAUc,KAAN,KAXZ,EAcR,EAZ0B7oE,IAAA,EACE,KADF,MACO,IACb,SADa,MAAA,EADP,OAOK,KAAf,EALI,EACI9M,MAAY,SAAA,OACD,MAAX,EAU5B,EACa,MAAT,KACI,EAEA,MAA2B,MAAK,MAAL,OACd,QACrB,EAEmB,EAAA,KAAA,IAAAwe,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAkBlBzE,IAAA,KAAA,MAAA,IACD,KADC,IAAA,IAAA,IAGA,MAAA,IACD,KADC,IAHA,IAMA,KAaA,IAbA,MAAA,IAAA,IANA,IAAA,MAmBA,EAhCD,WAA6CC,GAAAA,IAAA,KAAA2sE,GAAAA,IAAA,MACzCloE,IAAA,KAAA,QACQ,SACI,SACC,UACO0Q,IAAO,QAAA,IAAyB,MAAA,IAAzB,GAAP,MAERlR,IACKsoE,IAAAA,MAAqB,MACtBE,IAAAA,MAAoB,MAFxB,EAAA,KAAA,KAAA,MAGE,EAAA,KAAA,EAHF,OAAA,MAKV,EAEN,IACI,EAEJ,EACe,KAAX,EACH,EAAAvW,GAAAA,IAAA,OAED,KAFC,KAAA,IAAA,KAaA,EAAA,EAAA6W,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAXD,EAAA,KAWA,EAXA,YACSvB,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAEoB,MAAA,IAAxB,GAGoB,MAAA,IACC0I,IAAAA,KAAuC,MAAK,KAAU,MAAc,MAAW,QAAxC,IAAhD,IAAA,GAAA,GACW,MAAA,IACvB,GAFY,KAHR,MAQkB,EAAA,KAAA,IAAA71D,GAAAA,IAAA,UAAA,MAAAnR,IAAA,KAAA,IAazBzE,IAAA,KAAA,MAAA,IACD,KADC,IAAA,IAAA,IAGA,MAAA,IACD,KADC,IAHA,IAMA,MAAA,IACD,KADC,IANA,IASA,KAcA,IAdA,MAAA,IAAA,IATA,IAuBA,KA0BA,IA1BA,MAAA,IAAA,IAvBA,IAiDA,KAcA,IAdA,MAAA,IAAA,IAjDA,IA+DA,MAAA,IAKD,KALC,IA/DA,IAAA,MA2EA,EAlFD,MAAkC,MAAAvC,IAAA,IAAAA,IAAG,EAAHA,EAAA,IAAe,QAAAA,IAAA,IAAY,QAAAA,IAAA,IAAAwC,GAAAA,IAAA,KAAA0sE,GAAAA,IAAA,MACzDzsC,IAAA,KAAA,QACQ,SACK,MACD,MACC,MACE,MAAc,EAEjC,EACe,MAAX,EAEJ,IACI,EAEJ,EACe,KAAX,EACH,EAAAi2B,GAAAA,IAAA,OAKD,KALC,KAAA,IAAA,KAcA,EAAA,EAAAuP,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EATD,EAAA,KASA,EATA,YACS+F,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAEoB,MAAA,IAAxB,GAGoB,MAAA,IACP0I,IAAAA,KAA8C,MAAK,KAAU,MAAe,MAAW,KAAc,SAAvD,IAA3D,IAAA,GAAA,GAAA,GAAA,KAHI,MAIP,EAAAtV,GAAAA,IAAA,OAMD,KANC,KAAA,IAAA,KA0BA,EAAA,EAAA8W,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EApBD,EAAA,KAoBA,EApBA,YACSxB,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAEoB,MAAA,IAAxB,GAO0B0I,IAAAA,KAA8C,MAAK,MAAL,KAAvD,IAAA,GAAA,GACM,MAAA,IACvB,KAKct0E,MAAK,KAAA,WAAA,IAAA,IAAf,EAJ6B,MAAd,MACI,MAAA,IAAnB,GAJa,GALI,MACA,KACJ,KAHN,EAAA,KAAA,IAAA,IAAP,MAeP,EAAAg/D,GAAAA,IAAA,OAKD,KALC,KAAA,IAAA,KAcA,EAAA,EAAA+W,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EATD,EAAA,KASA,EATA,YACSzB,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAEoB,MAAA,IAAxB,GAGoB,MAAA,IACP0I,IAAAA,KAA8C,MAAK,KAAU,MAAc,MAAW,KAAc,SAAtD,IAA3D,IAAA,GAAA,GAAA,GAAA,KAHI,MASR,EAEiB,KACI,MACA,KACG,MAJb,EAAA,IAAA,KAAA,IAAA,KAAP,EA+FP,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAUkD,MAVlD,KAwB0D,MAxB1D,KAoC4C,MApC5C,KAiD4C,MAjD5C,KA+DyC,MAIM0B,GAAAA,IAAH,MAIEC,IAAH,MAIHC,IAAH,MAICC,IAAH,MAIGC,IAAH,QACpC,EA7EI,OACI,QAAA,IAAA,IAAA,EAEuE,EAQ5BC,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAArX,GAAAA,IAAA,OAA/C,KAA+C,KAAA,GAAA,IAK9C,KAAA,EAAA,KAAA,MAAA,EALD,EAAA,KAKA,EALA,cAA8D,OAAA14D,IAAA,MAAAA,IAAA,IACrDguE,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAmD,MAAA,KAAhE,IAAA,GAAA,GAAA,GAAA,MAEuF,EAM1DgC,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAtX,GAAAA,IAAA,OAAjC,KAAiC,KAAA,GAAA,IAKhC,KAAA,EAAA,KAAA,MAAA,EALD,EAAA,KAKA,EALA,OACSsV,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAwC,SAAS,EAAT,MAArD,IAAA,GAAA,GAAA,GAAA,MAE2D,EAO9BiC,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAvX,GAAAA,IAAA,OAAjC,KAAiC,KAAA,GAAA,IAKhC,KAAA,EAAA,KAAA,MAAA,EALD,EAAA,KAKA,EALA,OACSsV,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAwC,YAAA,MAArD,IAAA,GAAA,GAAA,GAAA,MAE2D,EAQjCkC,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAxX,GAAAA,IAAA,OAA9B,KAA8B,KAAA,GAAA,IAK7B,KAAA,EAAA,KAAA,MAAA,EALD,EAAA,KAKA,EALA,OACSsV,GAAAA,IAAAA,KAAkB,MAAvB,GACc1I,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAES0I,IAAAA,KAAqC,eAAA,OAAlD,IAAA,GAAA,GAAA,GAAA,M,QC7lBQ,MAAA,QACA,IAAA,KAGT,MACA,SAEO,MAAQ,E,UCPL,MAAA,KAAV,OACkB,IAAA,KAAV,IAWD,IACA,I,QA+FA,MAAM,EA5FpB,iBACUmC,MAAAA,KAAAA,GACAA,GAAO,IAELx4D,GAAW,EACH,MAAPA,GAAgBy4D,GAAAA,IACL,QAAPz4D,IAAoD04D,GAAAA,IAApD14D,EAAwC,MAAxCA,EAKf,UAAA,OACkB24D,GAAAA,IAAG,OACnB,IAGa,OAATC,IADe,IAAA,IAEN,IAFM,OAEQ,IAFR,OAEsB,IAFtB,OAEoC,IAFpC,OAEkD,IAFlD,IAAH,OAFhB,MAOA,IAEmC,OAATA,OAA6B,IAA7BA,UAAD,IAAH,UAQL,MAAP54D,MAAkD/b,MAAI,KAAA,OAAA,IAAA,IAAU,MAAA,IAAhE+b,EAAqC,MAI9B,MAAPA,IAA8C64D,GAAAA,OAAAA,IAA9C74D,EAAqC,MAG/B84D,GAAAA,IAARC,IAA+BF,IAARG,UAAD,IAAtBD,IAGNE,OAAJ,GAAqB,SAArB,OACaC,UAAAA,IAKb,GAAuBJ,OAAvB,IAA6C,SAA7C,MAKA,OAIU,IACA,IACD,cAGJ,UAGMC,IAAD,IAAA,cAAD,IACN,MAAMI,OAAAA,IAAH,IAAH,GACA,MAAMA,IAAAA,IAAH,IAAH,GACA,MAAMA,IAAAA,IAAH,IAAH,GACA,GAAMA,IAAH,IAGKJ,IAAAA,IAAAA,IAHR,GAIA,GAAMK,IAAAA,IAAH,IAAH,GACA,GAAMA,IAAH,IAAH,GAGA,GAAMA,OAAAA,IAAAA,IAAH,IAAH,GACA,GAAMA,IAAAA,IAAH,IAAH,GAGA,GAAMF,OAAAA,IAAH,IAAH,GAGA,GAAA,GAAMA,IAAH,MAIW,IAAblxE,IAAM,IADa,GAAvB,IAIOwwE,GAAYa,IAAW,KAA9B,IArCYt3E,MAAK,KAAA,WAAA,IAAA,IAAf,E,SC7DmB,MAAA,WAAA,GAAiCu3E,MAAM,MAAvC,GAA2DA,MAAM,MAAqB,KAACA,MAAD,KAAtF,GACA,MAAA,OAAA,GAA0Cj5E,MAAM,MAAS,MAAtB,WAAnC,GAA2Fk5E,MAAQ,MAAqB,KAACA,MAAD,KAAxH,GAEvB,OAaiBr3E,MAAK,KAAA,UAAA,IAAA,IAAZ,IAES,KAAH,wBAbEirC,MAAU,KAAA,UAAA,IAAA,IAAjB,IAEQ,KAAH,UAmBf,EAlBGqsC,GAAAA,IAAgBC,MAAD,KACRA,IAAP,EASe,uBAGbC,OADK1xE,IAAL,IAA0B/E,MAAW,MAAA,IAAXA,IAC1By2E,IAAiB,IAAP5hE,IAAAA,IAAH,IAFmB,GAA5B,IAKO4hE,IAAP,E,cC3BY,MAEE1xE,IAAmB,KAAA,KAAW,MAAA,KAAlC,IADW,GAAzB,Q,QAoBc,QAAe,EAhB7B,MACUopD,KACEuoB,GAAAA,IAGC,GAAF,IAAJ,IADG,IAAA,IACG,GAAe,GAAF,IAAJ,IADZ,IACkB,GACf,GAAF,IAAJ,IAFG,IAEG,GAAe,GAAF,IAAJ,IAFZ,QAAA,IAEkB,GACf,GAAF,IAAJ,IAHG,IAGG,GAAe,GAAF,IAAJ,IAHZ,IAAA,IAGkB,GACf,GAAF,IAAJ,IAJG,IAIG,GAAe,GAAF,IAAJ,IAJZ,IAAA,IAIkB,GACf,GAAF,IAAJ,IALG,IAKG,GAAe,GAAF,IAAJ,IALZ,IAAA,IAKkB,GACf,GAAF,IAAJ,IANG,IAMG,GAAe,GAAF,IAAJ,IANZ,IAMkB,GACf,GAAF,IAAJ,IAPG,IAOG,GAAe,GAAF,IAAJ,IAPZ,IAOkB,GACf,GAAF,IAAJ,IARG,IAQG,GAAe,GAAF,IAAJ,IARZ,IASD,SAAA,KATP,E,UCbe,MAAA,KAAV,OACkB,IAAA,KAAV,I,QA2BD,MAAM,EAzBpB,eACUnB,MAAAA,KAEJ,UAAJ,UACQx4D,MAA2B9d,MAAK,KAAA,UAAA,IAAA,IAAhC8d,KAGEA,GAAW,EAEH,MAAPA,GAA0B,MAAPA,GAAe24D,GAAAA,IAAf34D,EAAkB,IAArCA,GAGI,OAAJ05D,OAAAA,IAAJ,OACQ,OAAJA,OAAAA,IAAJ,MAGP,GAEQ1xE,IAAc,IAAP,IADa,GAA1B,IAKKwwE,GAAOa,GAAAA,MAAW,KAAzB,E,W,M,O,M,K,I,Q,O,SCzBF,IAAA,QACA,IAAA,KAAA,KAEIlyE,MAAkB,MAAtB,GAIqByyE,KAJrB,EACqBzyE,MAAkB,MAKV,MAAA,E,O,M,K,I,Q,S,MCTN,EACnB,SADmB,MAInB,SAJmB,MAOnB,SAPmB,MAUnB,SAVmB,MAanB,SAbmB,MAgBR,KAhBQ,IAiBJ,KAjBI,KAmBM,MAAA,EAlBzB,IACI,EAEJ,EACI,EAEJ,EACI,EAEJ,EACI,EAEJ,EACI,EAEO,EAAc,EACV,EAAU,E,K,M,K,I,Q,S,M,M,MCbI,MAaoB,EAA7B,QANqC,UAAK,OAKL,UAAK,IAElC,MAWmB,EAA5B,MANwC,UAAK,IAKV,UAAK,IAMvC,MAUW,EAApB,UALS,UAIE,MACc,E,W,K,M,M,O,M,K,I,Q,O,K,M,M,K,SC5CxC,IAAA,KAAA,KAAA,IAqCC,EAnC4B+rC,GAAAA,IAAAA,KAAG,KAAA,OAAM,KAAN,IAAA,IAAZ,MACS,MAAqB,UAAA,QAApB2mC,IAAD,KAAzB,EAEG,IACcC,GAAAA,SAAW,KACS,UAAA,OAE9BC,IAAiC,MAAA,KAAxC,EAcsB7mC,GAAAA,IAAAA,KAAG,KAAA,OAAc,KAAd,IAAA,IAEZ,UAAb,IAGkB,UAAb,IACY,aAAA,MADZ,EAFY,aAAA,MAMU,MAAmB,MAAa,MAAqB,UAAA,QAA9B8mC,MAAJ,MACjC,SAAA,MACA,aAAA,MACA,SAAA,MACG,MAAhB,E,a,M,K,I,Q,O,K,M,K,QCnCJ,MAAA,KAAA,OACA,IAAA,KAAA,IAoBC,EAlBU,cAA0C,SAAA,KAAjD,EAEG,KACEpzE,GAAAA,IAAAA,KAAQ,MAAb,KACWqD,MAAe,KAAS6vE,IAAAA,QAAW,KAAnB,UAAA,MAAD,KAAtB,QAEO7vE,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,KAAA,MACCgzD,MAAK,KAAA,OAAA,IAAA,IAAZ,OACE,MACE,KAAH,MAOA3rB,GAAAA,IAAH,QACX,EAPQv+B,GAAAA,IACU+mE,GAAAA,IAAAA,MAAYxoC,GAAAA,MAAD,KACV2oC,IAAG,MACC,MAHP,EAAA,IAAA,IAAA,IAAD,KAKX,E,qB,K,M,I,K,M,K,I,Q,O,K,SCnBR,IAAA,KAAA,KAAA,OACA,IAAA,KACiD,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA3zE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OADjD,OACA,IAAA,KAE0BiK,MAAc,MAAV+pE,GAA4B,IAA7B,KAAA,UAAA,IAAA,IAAV,IAECwF,MAAc,IAAjB,IA2BhB,EA/BgD,IAAA,KAAA,OAAA,cAAA1zE,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAQ1C,cAE6BjD,SAAQ6P,OAAR7P,IAEL22E,GAAAA,IAAlBC,MADT,IAIiCD,IAAxBE,IAJT,QAWuB,IAAmBhnE,GAAI,IAAvB,IACXjM,IAAAA,KAAS,UAAb,IAAgDkzE,IAAiB,KAAA,KAAjE,GAGU5F,IAAU,SAApB,IAAA,EAFI,EAPGyF,IAAW,IAAlB,EAJOA,IAAW,IAAlB,E,e,K,I,M,K,I,Q,O,WCfZ,OAAA,KAEgE,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA7zE,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,W,MAFhE,IAEAA,MAAA,KAAA,KAAA,KAAA,KAAA,KADe2V,KAAkB,MAAA,EAC+B,IAAA,KAAA,OAAA,cAAA7P,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAhE,SAAA,WAAA,SAAA/F,MAAA,KAAA,KAAA,KAAA4I,GAAAA,IAAA,MAAA,GAAAtI,IAAA8H,IAAA,GAAA9H,IAAA,IAAAu5E,IAAA,IAAA,QAAA75E,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,IAAA,EAAAu5E,GAAAA,IAAAzxE,GAAAA,IAAA,IAAA,E,a,M,O,M,K,I,Q,O,K,S,I,K,K,OCFA,IAAA,KAAA,OACA,IAAA,KAAA,IA6BC,EAPM,KAAA,IACyB0zC,GAAAA,IAAAA,OAAQ,IAAEjG,IAAA,QAAA,QAAzB,OAAW,IAAA,IACEiG,IAAAA,KAAQ,IAAEjG,IAAA,KAAA,MAAxB,IAAU,IAAA,IACtBoI,IAAAA,KAAU,KAEP,IAFM,MAGF,IAAA,IAAA,IAAP,EAFIsxB,GAAAA,IAAAA,MAAe,MAACuK,GAAAA,IAAD,KAAgB,KAACC,IAAD,KAAiB,MAACC,IAAD,OACpD,E,W,M,M,K,I,Q,O,E,K,I,M,K,E,I,K,Q,SC5BJ,MAAA,KAAA,IAAAh6E,MAAA,KAAA,KAAA,KAAA,KAAA,QACA,IAAA,KAAA,IAAuC,E,G,I,M,EADvC,SAAA,WAAA,SAAAA,MAAA,KAAA,KAAA,KAAA4I,GAAAA,IAAA,MAAA,GAAAtI,IAAA8H,IAAA,GAAA9H,IAAA,IAAA25E,IAAA,IAAA,QAAAj6E,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,IAAA,EAAA25E,GAAAA,IAAA7xE,GAAAA,IAAA,IAAA,E,W,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,M,M,O,M,K,I,Q,O,M,K,E,I,K,Q,O,M,K,M,K,M,K,M,K,M,K,S,I,K,K,OCAA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,IACe,EAAH,IACS,EAAH,IA6JjB,EAlJM,GACH,GAAoB8xE,GAAAA,IAAAA,QAAsB,KAA1C,GACI,EAECC,IAAQ,KAAb,OAWI,EAEeC,IAAAA,MAAiB,SAApC,IAAA,EAUqBC,GAAAA,OAAdC,IAAP,EAUqBC,GAAAA,OAAdD,IAAP,EACH,EAc8BE,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAna,GAAAA,IAAA,OAAxB,KAAwB,KAAA,IAW9B,KAAA,EAAA,KAAA,MAAA,EAXM,EAAA,KAWP,EAXO,kBACC,OAAJ,IASaoa,GAAAA,MAAwB,MAArC,IAAA,GAAA,GAAA,GAAA,GARI,GAGa,MACCz6E,MAAW,KAAA,KACnBuJ,MAAW,MAAU,KAAC,KAAD,KAAV,KAAjB,IAAA,GAAA,KACA,GADA,GAJc1B,GAAAA,IAAAA,UAAU,IAAA,KAAA,YAAA,OAAA,IAAA,IAApB,KAIwB,GAAU4yE,GAAAA,IAA+BC,GAAAA,IAAO,MAAd,MAA7B,EAIxC,EACsCC,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAta,GAAAA,IAAA,OAAvC,KAAuC,KAAA,IAyBtC,KAAA,EAAA,KAAA,MAAA,EAzBD,EAAA,KAyBA,EAzBA,kBAIQga,GAHJ,GACcxyE,IAAAA,UAAU,QAAA,IAAA,QAAA,IAAA,IAAA,KAAA,YAAA,OAAA,IAAA,IAApB,EAEAwyE,IAAM,IAAV,GAGIE,IAA2B,KAAA,KAA/B,aAOcK,IAAAA,MAAiB,KAApB,IACXL,IAA2Bla,IAAA,KAAC,KAAD,KAQ1B,IARuB,IASlBka,IAAY,IAAlB,IAAA,GAAA,GACJ,GADI,GAhBWA,IAAY,IAAnB,KAHA,MAUwB,EAAA,KAQ5B,EAR4B,OAEdM,GAAAA,IAAAA,MAAoBP,GAAAA,IAAY9K,MAAb,MAAzB,IAAA,GAAA,GACA6K,IAAOC,MAAW,IAGXC,IAAaD,IAApB,IAER,GAFeC,IAAaD,IAApB,IAJA,GAGI,EACGC,GAAAA,IAAaD,GAAAA,IAApB,IACJ,KAGP,EAKmCQ,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAza,GAAAA,IAAA,OAA7B,KAA6B,KAAA,IAWnC,KAAA,EAAA,KAAA,MAAA,EAXM,EAAA,KAWP,EAXO,YACE0a,GAAAA,IAAAA,KAAc,MAAnB,GACc9N,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,IAEAjtE,MAAW,KAACu6E,IAAD,KAAc,KAA7B,GAGyBv6E,MAAW,KAACq6E,IAAD,KAApC,GAAA,GAAA,IAAA,GAAA,IACWA,IAAP,IACJ,EAAA,EAAA,GAAA,EACMU,IAAAA,KAA6B,MAAA,IAAnC,IAAA,GAAA,GACJ,GADI,GALclzE,IAAAA,MAA6E7H,MAAW,KAACu6E,IAAD,KAAmB,SAAA,SAAjG,IAAA,KAAA,WAAA,IAAA,IAApB,KAMP,EAUgCS,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAA3a,GAAAA,IAAA,OAA1B,KAA0B,KAAA,IAchC,KAAA,EAAA,KAAA,MAAA,EAdM,EAAA,KAcP,EAdO,kBACE0a,GAAAA,IAAAA,KAAc,MAAnB,GACc9N,IAAAA,MAAmB,KAAA,eAAA,IAAA,IAA7B,EAEA,OAAJ,IASagO,MAA0B,MAAvC,IAAA,GAAA,GAAA,GAAA,GARI,GAGa,MACCj7E,MAAW,KAAA,KACnBuJ,MAAW,MAAU,KAAC,KAAD,KAAV,KAAjB,IAAA,GAAA,KACA,GADA,GAJc1B,IAAAA,UAAU,IAAA,KAAA,YAAA,OAAA,IAAA,IAApB,KAIwB,GAAUozE,GAAAA,IAAiCP,GAAAA,IAAO,MAAd,MAA/B,EAIxC,EACwCQ,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAA7a,GAAAA,IAAA,OAAzC,KAAyC,KAAA,IAgBxC,KAAA,EAAA,KAAA,MAAA,EAhBD,EAAA,KAgBA,EAhBA,aACSga,GAAAA,IAAM,IAAX,KACI,GAGOA,IAAP,IAMmBD,IAAAA,QAAiB,KACxC,GACcvyE,IAAAA,MAAU,KAAA,eAAA,IAAA,IAApB,EAEEkzE,IAAAA,KAA0B,SAAA,MAAhC,IAAA,GAAA,GACJ,GADI,M,G,I,M,E,K,M,K,I,Q,S,WCjKJ,OAAA,KACet0E,MAAkB,MAAe,MAAA,E,K,M,K,I,Q,S,MCUzB,MA+BU,EAAnB,UAxBS,UAKA,UAKC,UAQG,UAKA,MACW,E,W,K,I,K,I,K,I,K,M,M,O,M,K,I,Q,O,M,M,M,K,S,I,K,K,OC1CtC,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,QACA,IAAA,KAAA,KAAA,IACmBC,KAAS,UAATA,IAAH,IACUA,KAAS,UAATA,IAAAA,GAA2CR,KAAQ,SAARA,IAA9C,IA2CtB,EA1CM,GACMi1E,GAAAA,IAAAA,GAAcC,IAAf,GACH10E,IAAAA,KAAS,MAAqB,KAAA,KAA/B,GADI,OAEJjC,IAFI,GAGU,KAACiC,IAAAA,KAAS,MAAV,KAAd,GAHJ,EAKG,GACmB6oE,GAAAA,IAAAA,MAAlBhoE,IAAJ,GAGI,OAAJ,QAGK,QAGA,IAA+C,MAAb,OAAlC,IAML,EALWqzE,IAAwB,QAAP,KAAxB,EAHOrL,IAAAA,MAAgB,MAAA,KAAvB,EAHOA,IAAAA,MAAa,MAAA,KAApB,EAHA,EAeP,EACwC8L,GAAAA,IAAA,KAAA,EAAA,KAAA,MAAA,EAAA,IAAAhb,GAAAA,IAAA,OAAlC,KAAkC,KAAA,IAUxC,KAAA,EAAA,KAAA,MAAA,EAVM,EAAA,KAUP,EAVO,gBAEO,MAAV,GACcx4D,GAAAA,IAAAA,MAAU,KAAA,eAAA,IAAA,IAApB,EAEqB,MAAA,IAAzB,IAAA,GAAA,GACU,MAGJkzE,GAHN,GACclzE,IAAAA,UAAU,IAAA,KAAA,YAAA,OAAA,IAAA,IAApB,EAEEkzE,IAAAA,KAAwB,MAACX,MAAiB,KAAa,MAA/B,MAA9B,IAAA,GAAA,GACJ,GADI,GAJA,MAMG,GACCF,GAAAA,MAAsB,KAA1B,GAII,EAHUxzE,IAAAA,KAAS,UAATA,IAAAA,IAAV,E,a,M,O,M,K,I,Q,O,K,S,I,K,K,OC5CR,IAAA,KAAA,OACA,IAAA,KAAA,IA4BC,EATM,KAAA,IACyBo1C,GAAAA,IAAAA,SAAQ,KAAOjG,IAAA,QAAA,QAA9B,OAAW,IAAA,IACEiG,IAAAA,OAAQ,KAAMjG,IAAA,KAAA,MAA5B,IAAU,IAAA,IACtBoI,IAAAA,KAAU,KAIP,IAJM,MAKF,IAAA,IAAA,IAAP,EAJIq9B,GAAAA,IAAAA,MAAUC,GAAAA,MAAD,KACA,OAAC,KAAD,KACC,MAACvB,IAAD,KACd,EAFoBwB,GAAAA,QAAS,KAAf,E,K,K,I,K,I,K,I,K,M,M,K,I,Q,O,K,M,K,MCzBQ,MAqCzB,EAnCD,GACS,SAAQ,IAAA,QACjB,EACA,OACiB,QAGjB,EACA,OACQ,IAAJ,GAA4B,UAA5B,IAGc,KAAiB,SAAA,KAA1B,GACI,KAAiB,SAAA,KADrB,GAGDC,GAAAA,MAA+B,KAH9B,EAFDC,GAAAA,MAA2B,KAD/B,EAQJ,EACA,KACyBr6E,MAAjByvB,IAAJ,GACI6qD,GAAAA,MAAc,KADlB,QAGe,MACnB,EACO,KAAA,IACI,KAAP,EAAO,MACCC,GAAAA,IAIJC,GAJA,GAIAA,MAAe,MACnB,EAJQC,IAAaD,MAAD,OACZ,EAMc,KAAA,MAC1B,E,K,M,K,I,Q,S,K,QCjCC,EAFM,EACH,E,a,M,O,M,K,I,Q,O,SCHJ,IAAA,QACA,IAAA,QACA,IAAA,QAEA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAAA,QACA,IAAA,KAEkBE,MAENC,KADF,EAAA,IAEa,KAFb,KAOEC,KADM,EAAA,IAEK,KAFL,KAONC,KADH,EAAA,IAEc,KAFd,KAOGC,KADD,EAAA,IAEY,KAFZ,KAOCC,KADQ,EAAA,IAEG,KAFH,KAOR1iB,KADJ,EAAA,IAEe,KAFf,KAOI2iB,KADE,EAAA,IAES,KAFT,KAOFC,KADC,EAAA,IAEU,KAFV,KAODC,KADJ,EAAA,IAEe,KAFf,KAOIC,KADC,EAAA,IAEU,KAFV,KAaDC,KADJ,EAAA,IAEe,KAFf,KAOIC,KADH,EAAA,IAEc,KAFd,KAzE8B,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAD,KAiFvBC,MAAkB,KAAW,MAAA,EA9ErB,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,EAYb,GAAa,KAAQ,IAAA,KAAR,EAMb,GAAa,KAAQ,IAAA,KAAR,E,a,M,O,M,K,I,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,UC7FpC,IAAA,QAEA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OA+CA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAKA,IAAA,KAAA,OACA,IAAA,KAAA,OAiBA,IAAA,KAAA,OAOA,IAAA,KAAA,OAMA,IAAA,KAAA,OAMA,IAAA,KAAA,OA+CA,IAAA,KAAA,KAAA,OASA,IAAA,KAAA,KAAA,OAEA,IAAA,KAAA,IAEAC,MAAU,IAAG,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,K,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,K,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,K,E,G,I,K,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,K,E,G,I,M,E,G,I,K,E,a,M,O,M,K,I,Q,O,K,M,K,SCjKb,IAAA,KAAA,OACA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,MAEqB,IAapB,EAVCC,GAAAA,IAAAA,QAAc,IAChB,EAKMrlB,GAAAA,IAAAA,QAAQ,IAAZ,GAAmBslB,IAAnB,GACEC,IAAAA,KAA8B,MAAA,MACb,IAErB,E,W,K,I,K,I,K,I,K,M,M,K,I,Q,O,M,K,M,QCjBA,MAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OAMA,IAAA,KAAA,OAEA,IAAA,KAAA,MAK+D,IACW,IAGHh9E,MAAG,KAAA,OAAA,IAAA,IAAV,IAKJ,IAAH,IAkIx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K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,SCvCF,MAAA,KAAA,OAQA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,IAAsD,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,K,E,E,M,K,I,W,S,E,O,M,K,I,Q,O,K,WCftD,SAAA,KAAA,IAqKC,EAtIM,KAAA,OAAA,OAAA,IAOE9E,GAAAA,IAAAA,QAA0C,KAA3B,MAAtB,EAAiD,IAMR,UASnC2C,GAAAA,QAAJ,OACEzzF,MAAW,KAACyzF,IAAD,KAAoB,KAC7B,KAD6B,KAwG/BC,IACUv1C,IAAM,KAANA,KACDu1C,IACT//E,IANK,EArHwC,KAqHxC,KArHwC,KAqHxC,KAAA,IAAA,IAAA,IAAA,IAAA,KAAP,EA/FA,QACiE,KAAA,MAAA,KAAA,OAE7CpR,MAAQ,KAAC0J,OAAD,MACH,MAEbkyC,GAAAA,IAAM,MACA,MACA,MAEL,GACAu1C,IAEWnxF,MAAS,MAACi2C,IAAD,QAAb,IAALp6B,IACE7b,MAAS,MAACi2C,IAAD,KACAj2C,MAAS,mBAAC,IAAD,KAAlBonD,UAELksC,IAEGtzF,MAAQ,MAACwnD,IAAD,KACRxnD,MAAQ,MAAA,KAGOA,MAAQ,MAAC,GAAA,IAAA,IAAD,KAGnBmnD,IAAAA,IAALE,IAAD,IAARksC,IAA8CjsC,IAA9CisC,IADDC,IAG0BrC,IAG1BhqC,IAEgBA,IAAAA,IAALE,IAARosC,IAAmCjsC,IAAAA,IAAnCisC,IADHD,IAI+BxzF,MAAQ,MAAC,GAAA,IAAD,KAEUonD,IAALC,IAAD,IAALC,I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o7F,IAAA,IAAA,UAAA17F,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,EAAAo7F,GAAAA,IAAAtzF,GAAAA,IAAA,IAAA,EACA,SAAA,QAAA,IAAA9H,GAAAA,IAAA8H,IAAA,GAAA9H,IAAA,IAAAq7F,IAAA,IAAA,UAAA37F,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,IAAA,IAAA,EAAAq7F,GAAAA,IAAAvzF,GAAAA,IAAA,IAAA,E,a,M,K,I,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,SCXA,MAAA,KAAA,OACA,IAAA,KAAA,OAMA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OAKA,IAAA,KAAA,OAIA,IAAA,KAAA,OACA,IAAA,KAAA,OAKA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OAEA,IAAA,KAAA,OACA,IAAA,KAAA,IAA4D,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,E,E,a,M,K,I,Q,S,M,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,K,QC7B5D,IAAA,KAAA,OAEA,IAAA,QAaA,IAAA,KAAA,IATgCwzF,MAAiB,MAOhD,EALM,GAIErkC,GAAAA,IAAAA,QAAiBskC,IAAQ,IAARA,K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AAA,IACP,KAAC,KACE,KAA+B,MAAC,MAAD,KAD7B,EAAA,IAAA,IAAL,MALY,MAAA,KAAA,IAAA,KAAA,IAAA,IAAd,MAjBsE,IAA1D,EAAA,IAAA,IAAA,IAAd,MADF,EA+ByB,GAIvBxrC,GAAAA,IAAA,MACO,MACT,KAAU,QAAVA,IAAAA,IAAA,KAAuB,MAAA,KAAvBA,EACF,EAncA,QAEQ,KAAM,MAAyB,MADrC,IAEM,KAAM,MAAsB,MAFlC,IAGM,KAAM,MAAqB,MAHjC,IAIM,KAAM,MAAyB,MAJrC,IAM0B,MAAA,MAN1B,EASA,EA2bF,aAEQ,KADgB,MAAgB,MAAW,MAAkB,UAGlDitG,OAMdC,MAA0B,MAAJ,MAMC,MADVA,KAEO,MAAnB,IAAA,IAAA,IAFYA,IACM,MAAlB,IAAA,IAAA,OAIFtiE,GAAAA,IAAA,KAAC0hE,IAAA,MAEiB,KAAM,MACb,MAbX,IAeiBa,IACF,UAAA,OAAA,IACO,MACM,MAEpB,KAAM,UAGVI,IAAAA,OAAsCA,IAEtB,MAAA,IAfF,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAlB,MADF,E,W,M,M,K,I,Q,O,U,I,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,SCjrBJ,MAAA,KAAA,IAAA/4G,MAAA,KAAA,KAAA,KAAA,KAAA,QACA,IAAA,KAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,KAAA,QAIA,IAAA,KAAA,IAuBwB,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,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O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,M,K,E,I,K,Q,O,M,K,E,I,K,I,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,O,M,K,E,I,K,Q,SC9BF,IAAA,QAKA,IAAA,KAuBwB,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAApxC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5F,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6F,GAAA7F,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,W,cAvBxB,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,OACA,IAAA,KAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,KAAA,KAzB2B8xH,KAAQ,MAAA,EAyBX,IAAA,KAAA,OAAA,cAAAhsH,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M,E,G,I,M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","sourcesContent":["/**\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 * @format\n * @oncall react_native\n * @polyfill\n */\n\n\"use strict\";\n\n/* eslint-disable no-bitwise */\n// A simpler $ArrayLike<T>. Not iterable and doesn't have a `length`.\n// This is compatible with actual arrays as well as with objects that look like\n// {0: 'value', 1: '...'}\nglobal.__r = metroRequire;\nglobal[`${__METRO_GLOBAL_PREFIX__}__d`] = define;\nglobal.__c = clear;\nglobal.__registerSegment = registerSegment;\nvar modules = clear();\n\n// Don't use a Symbol here, it would pull in an extra polyfill with all sorts of\n// additional stuff (e.g. Array.from).\nconst EMPTY = {};\nconst CYCLE_DETECTED = {};\nconst { hasOwnProperty } = {};\nif (__DEV__) {\n global.$RefreshReg$ = () => {};\n global.$RefreshSig$ = () => (type) => type;\n}\nfunction clear() {\n modules = Object.create(null);\n\n // We return modules here so that we can assign an initial value to modules\n // when defining it. Otherwise, we would have to do \"let modules = null\",\n // which will force us to add \"nullthrows\" everywhere.\n return modules;\n}\nif (__DEV__) {\n var verboseNamesToModuleIds = Object.create(null);\n var initializingModuleIds = [];\n}\nfunction define(factory, moduleId, dependencyMap) {\n if (modules[moduleId] != null) {\n if (__DEV__) {\n // (We take `inverseDependencies` from `arguments` to avoid an unused\n // named parameter in `define` in production.\n const inverseDependencies = arguments[4];\n\n // If the module has already been defined and the define method has been\n // called with inverseDependencies, we can hot reload it.\n if (inverseDependencies) {\n global.__accept(moduleId, factory, dependencyMap, inverseDependencies);\n }\n }\n\n // prevent repeated calls to `global.nativeRequire` to overwrite modules\n // that are already loaded\n return;\n }\n const mod = {\n dependencyMap,\n factory,\n hasError: false,\n importedAll: EMPTY,\n importedDefault: EMPTY,\n isInitialized: false,\n publicModule: {\n exports: {},\n },\n };\n modules[moduleId] = mod;\n if (__DEV__) {\n // HMR\n mod.hot = createHotReloadingObject();\n\n // DEBUGGABLE MODULES NAMES\n // we take `verboseName` from `arguments` to avoid an unused named parameter\n // in `define` in production.\n const verboseName = arguments[3];\n if (verboseName) {\n mod.verboseName = verboseName;\n verboseNamesToModuleIds[verboseName] = moduleId;\n }\n }\n}\nfunction metroRequire(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n if (moduleId == null) {\n throw new Error(`Unknown named module: \"${verboseName}\"`);\n } else {\n console.warn(\n `Requiring module \"${verboseName}\" by name is only supported for ` +\n \"debugging purposes and will BREAK IN PRODUCTION!\"\n );\n }\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (__DEV__) {\n const initializingIndex = initializingModuleIds.indexOf(\n moduleIdReallyIsNumber\n );\n if (initializingIndex !== -1) {\n const cycle = initializingModuleIds\n .slice(initializingIndex)\n .map((id) => (modules[id] ? modules[id].verboseName : \"[unknown]\"));\n if (shouldPrintRequireCycle(cycle)) {\n cycle.push(cycle[0]); // We want to print A -> B -> A:\n console.warn(\n `Require cycle: ${cycle.join(\" -> \")}\\n\\n` +\n \"Require cycles are allowed, but can result in uninitialized values. \" +\n \"Consider refactoring to remove the need for a cycle.\"\n );\n }\n }\n }\n const module = modules[moduleIdReallyIsNumber];\n return module && module.isInitialized\n ? module.publicModule.exports\n : guardedLoadModule(moduleIdReallyIsNumber, module);\n}\n\n// We print require cycles unless they match a pattern in the\n// `requireCycleIgnorePatterns` configuration.\nfunction shouldPrintRequireCycle(modules) {\n const regExps =\n global[__METRO_GLOBAL_PREFIX__ + \"__requireCycleIgnorePatterns\"];\n if (!Array.isArray(regExps)) {\n return true;\n }\n const isIgnored = (module) =>\n module != null && regExps.some((regExp) => regExp.test(module));\n\n // Print the cycle unless any part of it is ignored\n return modules.every((module) => !isIgnored(module));\n}\nfunction metroImportDefault(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (\n modules[moduleIdReallyIsNumber] &&\n modules[moduleIdReallyIsNumber].importedDefault !== EMPTY\n ) {\n return modules[moduleIdReallyIsNumber].importedDefault;\n }\n const exports = metroRequire(moduleIdReallyIsNumber);\n const importedDefault =\n exports && exports.__esModule ? exports.default : exports;\n\n // $FlowFixMe The metroRequire call above will throw if modules[id] is null\n return (modules[moduleIdReallyIsNumber].importedDefault = importedDefault);\n}\nmetroRequire.importDefault = metroImportDefault;\nfunction metroImportAll(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (\n modules[moduleIdReallyIsNumber] &&\n modules[moduleIdReallyIsNumber].importedAll !== EMPTY\n ) {\n return modules[moduleIdReallyIsNumber].importedAll;\n }\n const exports = metroRequire(moduleIdReallyIsNumber);\n let importedAll;\n if (exports && exports.__esModule) {\n importedAll = exports;\n } else {\n importedAll = {};\n\n // Refrain from using Object.assign, it has to work in ES3 environments.\n if (exports) {\n for (const key in exports) {\n if (hasOwnProperty.call(exports, key)) {\n importedAll[key] = exports[key];\n }\n }\n }\n importedAll.default = exports;\n }\n\n // $FlowFixMe The metroRequire call above will throw if modules[id] is null\n return (modules[moduleIdReallyIsNumber].importedAll = importedAll);\n}\nmetroRequire.importAll = metroImportAll;\n\n// The `require.context()` syntax is never executed in the runtime because it is converted\n// to `require()` in `metro/src/ModuleGraph/worker/collectDependencies.js` after collecting\n// dependencies. If the feature flag is not enabled then the conversion never takes place and this error is thrown (development only).\nmetroRequire.context = function fallbackRequireContext() {\n if (__DEV__) {\n throw new Error(\n \"The experimental Metro feature `require.context` is not enabled in your project.\\nThis can be enabled by setting the `transformer.unstable_allowRequireContext` property to `true` in your Metro configuration.\"\n );\n }\n throw new Error(\n \"The experimental Metro feature `require.context` is not enabled in your project.\"\n );\n};\nlet inGuard = false;\nfunction guardedLoadModule(moduleId, module) {\n if (!inGuard && global.ErrorUtils) {\n inGuard = true;\n let returnValue;\n try {\n returnValue = loadModuleImplementation(moduleId, module);\n } catch (e) {\n // TODO: (moti) T48204692 Type this use of ErrorUtils.\n global.ErrorUtils.reportFatalError(e);\n }\n inGuard = false;\n return returnValue;\n } else {\n return loadModuleImplementation(moduleId, module);\n }\n}\nconst ID_MASK_SHIFT = 16;\nconst LOCAL_ID_MASK = ~0 >>> ID_MASK_SHIFT;\nfunction unpackModuleId(moduleId) {\n const segmentId = moduleId >>> ID_MASK_SHIFT;\n const localId = moduleId & LOCAL_ID_MASK;\n return {\n segmentId,\n localId,\n };\n}\nmetroRequire.unpackModuleId = unpackModuleId;\nfunction packModuleId(value) {\n return (value.segmentId << ID_MASK_SHIFT) + value.localId;\n}\nmetroRequire.packModuleId = packModuleId;\nconst moduleDefinersBySegmentID = [];\nconst definingSegmentByModuleID = new Map();\nfunction registerSegment(segmentId, moduleDefiner, moduleIds) {\n moduleDefinersBySegmentID[segmentId] = moduleDefiner;\n if (__DEV__) {\n if (segmentId === 0 && moduleIds) {\n throw new Error(\n \"registerSegment: Expected moduleIds to be null for main segment\"\n );\n }\n if (segmentId !== 0 && !moduleIds) {\n throw new Error(\n \"registerSegment: Expected moduleIds to be passed for segment #\" +\n segmentId\n );\n }\n }\n if (moduleIds) {\n moduleIds.forEach((moduleId) => {\n if (!modules[moduleId] && !definingSegmentByModuleID.has(moduleId)) {\n definingSegmentByModuleID.set(moduleId, segmentId);\n }\n });\n }\n}\nfunction loadModuleImplementation(moduleId, module) {\n if (!module && moduleDefinersBySegmentID.length > 0) {\n var _definingSegmentByMod;\n const segmentId =\n (_definingSegmentByMod = definingSegmentByModuleID.get(moduleId)) !==\n null && _definingSegmentByMod !== void 0\n ? _definingSegmentByMod\n : 0;\n const definer = moduleDefinersBySegmentID[segmentId];\n if (definer != null) {\n definer(moduleId);\n module = modules[moduleId];\n definingSegmentByModuleID.delete(moduleId);\n }\n }\n const nativeRequire = global.nativeRequire;\n if (!module && nativeRequire) {\n const { segmentId, localId } = unpackModuleId(moduleId);\n nativeRequire(localId, segmentId);\n module = modules[moduleId];\n }\n if (!module) {\n throw unknownModuleError(moduleId);\n }\n if (module.hasError) {\n throw module.error;\n }\n if (__DEV__) {\n var Systrace = requireSystrace();\n var Refresh = requireRefresh();\n }\n\n // We must optimistically mark module as initialized before running the\n // factory to keep any require cycles inside the factory from causing an\n // infinite require loop.\n module.isInitialized = true;\n const { factory, dependencyMap } = module;\n if (__DEV__) {\n initializingModuleIds.push(moduleId);\n }\n try {\n if (__DEV__) {\n // $FlowIgnore: we know that __DEV__ is const and `Systrace` exists\n Systrace.beginEvent(\"JS_require_\" + (module.verboseName || moduleId));\n }\n const moduleObject = module.publicModule;\n if (__DEV__) {\n moduleObject.hot = module.hot;\n var prevRefreshReg = global.$RefreshReg$;\n var prevRefreshSig = global.$RefreshSig$;\n if (Refresh != null) {\n const RefreshRuntime = Refresh;\n global.$RefreshReg$ = (type, id) => {\n RefreshRuntime.register(type, moduleId + \" \" + id);\n };\n global.$RefreshSig$ =\n RefreshRuntime.createSignatureFunctionForTransform;\n }\n }\n moduleObject.id = moduleId;\n\n // keep args in sync with with defineModuleCode in\n // metro/src/Resolver/index.js\n // and metro/src/ModuleGraph/worker.js\n factory(\n global,\n metroRequire,\n metroImportDefault,\n metroImportAll,\n moduleObject,\n moduleObject.exports,\n dependencyMap\n );\n\n // avoid removing factory in DEV mode as it breaks HMR\n if (!__DEV__) {\n // $FlowFixMe: This is only sound because we never access `factory` again\n module.factory = undefined;\n module.dependencyMap = undefined;\n }\n if (__DEV__) {\n // $FlowIgnore: we know that __DEV__ is const and `Systrace` exists\n Systrace.endEvent();\n if (Refresh != null) {\n registerExportsForReactRefresh(Refresh, moduleObject.exports, moduleId);\n }\n }\n return moduleObject.exports;\n } catch (e) {\n module.hasError = true;\n module.error = e;\n module.isInitialized = false;\n module.publicModule.exports = undefined;\n throw e;\n } finally {\n if (__DEV__) {\n if (initializingModuleIds.pop() !== moduleId) {\n throw new Error(\n \"initializingModuleIds is corrupt; something is terribly wrong\"\n );\n }\n global.$RefreshReg$ = prevRefreshReg;\n global.$RefreshSig$ = prevRefreshSig;\n }\n }\n}\nfunction unknownModuleError(id) {\n let message = 'Requiring unknown module \"' + id + '\".';\n if (__DEV__) {\n message +=\n \" If you are sure the module exists, try restarting Metro. \" +\n \"You may also want to run `yarn` or `npm install`.\";\n }\n return Error(message);\n}\nif (__DEV__) {\n // $FlowFixMe[prop-missing]\n metroRequire.Systrace = {\n beginEvent: () => {},\n endEvent: () => {},\n };\n // $FlowFixMe[prop-missing]\n metroRequire.getModules = () => {\n return modules;\n };\n\n // HOT MODULE RELOADING\n var createHotReloadingObject = function () {\n const hot = {\n _acceptCallback: null,\n _disposeCallback: null,\n _didAccept: false,\n accept: (callback) => {\n hot._didAccept = true;\n hot._acceptCallback = callback;\n },\n dispose: (callback) => {\n hot._disposeCallback = callback;\n },\n };\n return hot;\n };\n let reactRefreshTimeout = null;\n const metroHotUpdateModule = function (\n id,\n factory,\n dependencyMap,\n inverseDependencies\n ) {\n const mod = modules[id];\n if (!mod) {\n if (factory) {\n // New modules are going to be handled by the define() method.\n return;\n }\n throw unknownModuleError(id);\n }\n if (!mod.hasError && !mod.isInitialized) {\n // The module hasn't actually been executed yet,\n // so we can always safely replace it.\n mod.factory = factory;\n mod.dependencyMap = dependencyMap;\n return;\n }\n const Refresh = requireRefresh();\n const refreshBoundaryIDs = new Set();\n\n // In this loop, we will traverse the dependency tree upwards from the\n // changed module. Updates \"bubble\" up to the closest accepted parent.\n //\n // If we reach the module root and nothing along the way accepted the update,\n // we know hot reload is going to fail. In that case we return false.\n //\n // The main purpose of this loop is to figure out whether it's safe to apply\n // a hot update. It is only safe when the update was accepted somewhere\n // along the way upwards for each of its parent dependency module chains.\n //\n // We perform a topological sort because we may discover the same\n // module more than once in the list of things to re-execute, and\n // we want to execute modules before modules that depend on them.\n //\n // If we didn't have this check, we'd risk re-evaluating modules that\n // have side effects and lead to confusing and meaningless crashes.\n\n let didBailOut = false;\n let updatedModuleIDs;\n try {\n updatedModuleIDs = topologicalSort(\n [id],\n // Start with the changed module and go upwards\n (pendingID) => {\n const pendingModule = modules[pendingID];\n if (pendingModule == null) {\n // Nothing to do.\n return [];\n }\n const pendingHot = pendingModule.hot;\n if (pendingHot == null) {\n throw new Error(\n \"[Refresh] Expected module.hot to always exist in DEV.\"\n );\n }\n // A module can be accepted manually from within itself.\n let canAccept = pendingHot._didAccept;\n if (!canAccept && Refresh != null) {\n // Or React Refresh may mark it accepted based on exports.\n const isBoundary = isReactRefreshBoundary(\n Refresh,\n pendingModule.publicModule.exports\n );\n if (isBoundary) {\n canAccept = true;\n refreshBoundaryIDs.add(pendingID);\n }\n }\n if (canAccept) {\n // Don't look at parents.\n return [];\n }\n // If we bubble through the roof, there is no way to do a hot update.\n // Bail out altogether. This is the failure case.\n const parentIDs = inverseDependencies[pendingID];\n if (parentIDs.length === 0) {\n // Reload the app because the hot reload can't succeed.\n // This should work both on web and React Native.\n performFullRefresh(\"No root boundary\", {\n source: mod,\n failed: pendingModule,\n });\n didBailOut = true;\n return [];\n }\n // This module can't handle the update but maybe all its parents can?\n // Put them all in the queue to run the same set of checks.\n return parentIDs;\n },\n () => didBailOut // Should we stop?\n ).reverse();\n } catch (e) {\n if (e === CYCLE_DETECTED) {\n performFullRefresh(\"Dependency cycle\", {\n source: mod,\n });\n return;\n }\n throw e;\n }\n if (didBailOut) {\n return;\n }\n\n // If we reached here, it is likely that hot reload will be successful.\n // Run the actual factories.\n const seenModuleIDs = new Set();\n for (let i = 0; i < updatedModuleIDs.length; i++) {\n const updatedID = updatedModuleIDs[i];\n if (seenModuleIDs.has(updatedID)) {\n continue;\n }\n seenModuleIDs.add(updatedID);\n const updatedMod = modules[updatedID];\n if (updatedMod == null) {\n throw new Error(\"[Refresh] Expected to find the updated module.\");\n }\n const prevExports = updatedMod.publicModule.exports;\n const didError = runUpdatedModule(\n updatedID,\n updatedID === id ? factory : undefined,\n updatedID === id ? dependencyMap : undefined\n );\n const nextExports = updatedMod.publicModule.exports;\n if (didError) {\n // The user was shown a redbox about module initialization.\n // There's nothing for us to do here until it's fixed.\n return;\n }\n if (refreshBoundaryIDs.has(updatedID)) {\n // Since we just executed the code for it, it's possible\n // that the new exports make it ineligible for being a boundary.\n const isNoLongerABoundary = !isReactRefreshBoundary(\n Refresh,\n nextExports\n );\n // It can also become ineligible if its exports are incompatible\n // with the previous exports.\n // For example, if you add/remove/change exports, we'll want\n // to re-execute the importing modules, and force those components\n // to re-render. Similarly, if you convert a class component\n // to a function, we want to invalidate the boundary.\n const didInvalidate = shouldInvalidateReactRefreshBoundary(\n Refresh,\n prevExports,\n nextExports\n );\n if (isNoLongerABoundary || didInvalidate) {\n // We'll be conservative. The only case in which we won't do a full\n // reload is if all parent modules are also refresh boundaries.\n // In that case we'll add them to the current queue.\n const parentIDs = inverseDependencies[updatedID];\n if (parentIDs.length === 0) {\n // Looks like we bubbled to the root. Can't recover from that.\n performFullRefresh(\n isNoLongerABoundary\n ? \"No longer a boundary\"\n : \"Invalidated boundary\",\n {\n source: mod,\n failed: updatedMod,\n }\n );\n return;\n }\n // Schedule all parent refresh boundaries to re-run in this loop.\n for (let j = 0; j < parentIDs.length; j++) {\n const parentID = parentIDs[j];\n const parentMod = modules[parentID];\n if (parentMod == null) {\n throw new Error(\"[Refresh] Expected to find parent module.\");\n }\n const canAcceptParent = isReactRefreshBoundary(\n Refresh,\n parentMod.publicModule.exports\n );\n if (canAcceptParent) {\n // All parents will have to re-run too.\n refreshBoundaryIDs.add(parentID);\n updatedModuleIDs.push(parentID);\n } else {\n performFullRefresh(\"Invalidated boundary\", {\n source: mod,\n failed: parentMod,\n });\n return;\n }\n }\n }\n }\n }\n if (Refresh != null) {\n // Debounce a little in case there are multiple updates queued up.\n // This is also useful because __accept may be called multiple times.\n if (reactRefreshTimeout == null) {\n reactRefreshTimeout = setTimeout(() => {\n reactRefreshTimeout = null;\n // Update React components.\n Refresh.performReactRefresh();\n }, 30);\n }\n }\n };\n const topologicalSort = function (roots, getEdges, earlyStop) {\n const result = [];\n const visited = new Set();\n const stack = new Set();\n function traverseDependentNodes(node) {\n if (stack.has(node)) {\n throw CYCLE_DETECTED;\n }\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n stack.add(node);\n const dependentNodes = getEdges(node);\n if (earlyStop(node)) {\n stack.delete(node);\n return;\n }\n dependentNodes.forEach((dependent) => {\n traverseDependentNodes(dependent);\n });\n stack.delete(node);\n result.push(node);\n }\n roots.forEach((root) => {\n traverseDependentNodes(root);\n });\n return result;\n };\n const runUpdatedModule = function (id, factory, dependencyMap) {\n const mod = modules[id];\n if (mod == null) {\n throw new Error(\"[Refresh] Expected to find the module.\");\n }\n const { hot } = mod;\n if (!hot) {\n throw new Error(\"[Refresh] Expected module.hot to always exist in DEV.\");\n }\n if (hot._disposeCallback) {\n try {\n hot._disposeCallback();\n } catch (error) {\n console.error(\n `Error while calling dispose handler for module ${id}: `,\n error\n );\n }\n }\n if (factory) {\n mod.factory = factory;\n }\n if (dependencyMap) {\n mod.dependencyMap = dependencyMap;\n }\n mod.hasError = false;\n mod.error = undefined;\n mod.importedAll = EMPTY;\n mod.importedDefault = EMPTY;\n mod.isInitialized = false;\n const prevExports = mod.publicModule.exports;\n mod.publicModule.exports = {};\n hot._didAccept = false;\n hot._acceptCallback = null;\n hot._disposeCallback = null;\n metroRequire(id);\n if (mod.hasError) {\n // This error has already been reported via a redbox.\n // We know it's likely a typo or some mistake that was just introduced.\n // Our goal now is to keep the rest of the application working so that by\n // the time user fixes the error, the app isn't completely destroyed\n // underneath the redbox. So we'll revert the module object to the last\n // successful export and stop propagating this update.\n mod.hasError = false;\n mod.isInitialized = true;\n mod.error = null;\n mod.publicModule.exports = prevExports;\n // We errored. Stop the update.\n return true;\n }\n if (hot._acceptCallback) {\n try {\n hot._acceptCallback();\n } catch (error) {\n console.error(\n `Error while calling accept handler for module ${id}: `,\n error\n );\n }\n }\n // No error.\n return false;\n };\n const performFullRefresh = (reason, modules) => {\n /* global window */\n if (\n typeof window !== \"undefined\" &&\n window.location != null &&\n typeof window.location.reload === \"function\"\n ) {\n window.location.reload();\n } else {\n const Refresh = requireRefresh();\n if (Refresh != null) {\n var _modules$source$verbo,\n _modules$source,\n _modules$failed$verbo,\n _modules$failed;\n const sourceName =\n (_modules$source$verbo =\n (_modules$source = modules.source) === null ||\n _modules$source === void 0\n ? void 0\n : _modules$source.verboseName) !== null &&\n _modules$source$verbo !== void 0\n ? _modules$source$verbo\n : \"unknown\";\n const failedName =\n (_modules$failed$verbo =\n (_modules$failed = modules.failed) === null ||\n _modules$failed === void 0\n ? void 0\n : _modules$failed.verboseName) !== null &&\n _modules$failed$verbo !== void 0\n ? _modules$failed$verbo\n : \"unknown\";\n Refresh.performFullRefresh(\n `Fast Refresh - ${reason} <${sourceName}> <${failedName}>`\n );\n } else {\n console.warn(\"Could not reload the application after an edit.\");\n }\n }\n };\n\n // Modules that only export components become React Refresh boundaries.\n var isReactRefreshBoundary = function (Refresh, moduleExports) {\n if (Refresh.isLikelyComponentType(moduleExports)) {\n return true;\n }\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n return false;\n }\n let hasExports = false;\n let areAllExportsComponents = true;\n for (const key in moduleExports) {\n hasExports = true;\n if (key === \"__esModule\") {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n // Don't invoke getters as they may have side effects.\n return false;\n }\n const exportValue = moduleExports[key];\n if (!Refresh.isLikelyComponentType(exportValue)) {\n areAllExportsComponents = false;\n }\n }\n return hasExports && areAllExportsComponents;\n };\n var shouldInvalidateReactRefreshBoundary = (\n Refresh,\n prevExports,\n nextExports\n ) => {\n const prevSignature = getRefreshBoundarySignature(Refresh, prevExports);\n const nextSignature = getRefreshBoundarySignature(Refresh, nextExports);\n if (prevSignature.length !== nextSignature.length) {\n return true;\n }\n for (let i = 0; i < nextSignature.length; i++) {\n if (prevSignature[i] !== nextSignature[i]) {\n return true;\n }\n }\n return false;\n };\n\n // When this signature changes, it's unsafe to stop at this refresh boundary.\n var getRefreshBoundarySignature = (Refresh, moduleExports) => {\n const signature = [];\n signature.push(Refresh.getFamilyByType(moduleExports));\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return signature;\n }\n for (const key in moduleExports) {\n if (key === \"__esModule\") {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n continue;\n }\n const exportValue = moduleExports[key];\n signature.push(key);\n signature.push(Refresh.getFamilyByType(exportValue));\n }\n return signature;\n };\n var registerExportsForReactRefresh = (Refresh, moduleExports, moduleID) => {\n Refresh.register(moduleExports, moduleID + \" %exports%\");\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return;\n }\n for (const key in moduleExports) {\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n // Don't invoke getters as they may have side effects.\n continue;\n }\n const exportValue = moduleExports[key];\n const typeID = moduleID + \" %exports% \" + key;\n Refresh.register(exportValue, typeID);\n }\n };\n global.__accept = metroHotUpdateModule;\n}\nif (__DEV__) {\n // The metro require polyfill can not have module dependencies.\n // The Systrace and ReactRefresh dependencies are, therefore, made publicly\n // available. Ideally, the dependency would be inversed in a way that\n // Systrace / ReactRefresh could integrate into Metro rather than\n // having to make them publicly available.\n\n var requireSystrace = function requireSystrace() {\n return (\n // $FlowFixMe[prop-missing]\n global[__METRO_GLOBAL_PREFIX__ + \"__SYSTRACE\"] || metroRequire.Systrace\n );\n };\n var requireRefresh = function requireRefresh() {\n return (\n // $FlowFixMe[prop-missing]\n global[__METRO_GLOBAL_PREFIX__ + \"__ReactRefresh\"] || metroRequire.Refresh\n );\n };\n}\n","/**\n * Copyright (c) Facebook, 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 * @polyfill\n * @nolint\n * @format\n */\n\n/* eslint-disable no-shadow, eqeqeq, curly, no-unused-vars, no-void, no-control-regex */\n\n/**\n * This pipes all of our console logging functions to native logging so that\n * JavaScript errors in required modules show up in Xcode via NSLog.\n */\nconst inspect = (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 //\n // https://github.com/joyent/node/blob/master/lib/util.js\n\n function inspect(obj, opts) {\n var ctx = {\n seen: [],\n formatValueCalls: 0,\n stylize: stylizeNoColor,\n };\n return formatValue(ctx, obj, opts.depth);\n }\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n function arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n }\n\n function formatValue(ctx, value, recurseTimes) {\n ctx.formatValueCalls++;\n if (ctx.formatValueCalls > 200) {\n return `[TOO BIG formatValueCalls ${ctx.formatValueCalls} exceeded limit of 200]`;\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 // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (\n isError(value) &&\n (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)\n ) {\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 = '',\n array = false,\n 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(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n key,\n array,\n );\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n }\n\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple =\n \"'\" +\n JSON.stringify(value)\n .replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') +\n \"'\";\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value)) return ctx.stylize('null', 'null');\n }\n\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n function 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(\n formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n String(i),\n true,\n ),\n );\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(\n formatProperty(ctx, value, recurseTimes, visibleKeys, key, true),\n );\n }\n });\n return output;\n }\n\n function 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\n .split('\\n')\n .map(function(line) {\n return ' ' + line;\n })\n .join('\\n')\n .substr(2);\n } else {\n str =\n '\\n' +\n str\n .split('\\n')\n .map(function(line) {\n return ' ' + line;\n })\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\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n function 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 (\n braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1]\n );\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\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()`.\n function isArray(ar) {\n return Array.isArray(ar);\n }\n\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n\n function isNull(arg) {\n return arg === null;\n }\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n function isString(arg) {\n return typeof arg === 'string';\n }\n\n function isSymbol(arg) {\n return typeof arg === 'symbol';\n }\n\n function isUndefined(arg) {\n return arg === void 0;\n }\n\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n\n function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n }\n\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n\n function isError(e) {\n return (\n isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error)\n );\n }\n\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n return inspect;\n})();\n\nconst OBJECT_COLUMN_NAME = '(index)';\nconst LOG_LEVELS = {\n trace: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\nconst INSPECTOR_LEVELS = [];\nINSPECTOR_LEVELS[LOG_LEVELS.trace] = 'debug';\nINSPECTOR_LEVELS[LOG_LEVELS.info] = 'log';\nINSPECTOR_LEVELS[LOG_LEVELS.warn] = 'warning';\nINSPECTOR_LEVELS[LOG_LEVELS.error] = 'error';\n\n// Strip the inner function in getNativeLogFunction(), if in dev also\n// strip method printing to originalConsole.\nconst INSPECTOR_FRAMES_TO_SKIP = __DEV__ ? 2 : 1;\n\nfunction getNativeLogFunction(level) {\n return function() {\n let str;\n if (arguments.length === 1 && typeof arguments[0] === 'string') {\n str = arguments[0];\n } else {\n str = Array.prototype.map\n .call(arguments, function(arg) {\n return inspect(arg, {depth: 10});\n })\n .join(', ');\n }\n\n // TRICKY\n // If more than one argument is provided, the code above collapses them all\n // into a single formatted string. This transform wraps string arguments in\n // single quotes (e.g. \"foo\" -> \"'foo'\") which then breaks the \"Warning:\"\n // check below. So it's important that we look at the first argument, rather\n // than the formatted argument string.\n const firstArg = arguments[0];\n\n let logLevel = level;\n if (\n typeof firstArg === 'string' &&\n firstArg.slice(0, 9) === 'Warning: ' &&\n logLevel >= LOG_LEVELS.error\n ) {\n // React warnings use console.error so that a stack trace is shown,\n // but we don't (currently) want these to show a redbox\n // (Note: Logic duplicated in ExceptionsManager.js.)\n logLevel = LOG_LEVELS.warn;\n }\n if (global.__inspectorLog) {\n global.__inspectorLog(\n INSPECTOR_LEVELS[logLevel],\n str,\n [].slice.call(arguments),\n INSPECTOR_FRAMES_TO_SKIP,\n );\n }\n if (groupStack.length) {\n str = groupFormat('', str);\n }\n global.nativeLoggingHook(str, logLevel);\n };\n}\n\nfunction repeat(element, n) {\n return Array.apply(null, Array(n)).map(function() {\n return element;\n });\n}\n\nfunction consoleTablePolyfill(rows) {\n // convert object -> array\n if (!Array.isArray(rows)) {\n var data = rows;\n rows = [];\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var row = data[key];\n row[OBJECT_COLUMN_NAME] = key;\n rows.push(row);\n }\n }\n }\n if (rows.length === 0) {\n global.nativeLoggingHook('', LOG_LEVELS.info);\n return;\n }\n\n var columns = Object.keys(rows[0]).sort();\n var stringRows = [];\n var columnWidths = [];\n\n // Convert each cell to a string. Also\n // figure out max cell width for each column\n columns.forEach(function(k, i) {\n columnWidths[i] = k.length;\n for (var j = 0; j < rows.length; j++) {\n var cellStr = (rows[j][k] || '?').toString();\n stringRows[j] = stringRows[j] || [];\n stringRows[j][i] = cellStr;\n columnWidths[i] = Math.max(columnWidths[i], cellStr.length);\n }\n });\n\n // Join all elements in the row into a single string with | separators\n // (appends extra spaces to each cell to make separators | aligned)\n function joinRow(row, space) {\n var cells = row.map(function(cell, i) {\n var extraSpaces = repeat(' ', columnWidths[i] - cell.length).join('');\n return cell + extraSpaces;\n });\n space = space || ' ';\n return cells.join(space + '|' + space);\n }\n\n var separators = columnWidths.map(function(columnWidth) {\n return repeat('-', columnWidth).join('');\n });\n var separatorRow = joinRow(separators, '-');\n var header = joinRow(columns);\n var table = [header, separatorRow];\n\n for (var i = 0; i < rows.length; i++) {\n table.push(joinRow(stringRows[i]));\n }\n\n // Notice extra empty line at the beginning.\n // Native logging hook adds \"RCTLog >\" at the front of every\n // logged string, which would shift the header and screw up\n // the table\n global.nativeLoggingHook('\\n' + table.join('\\n'), LOG_LEVELS.info);\n}\n\nconst GROUP_PAD = '\\u2502'; // Box light vertical\nconst GROUP_OPEN = '\\u2510'; // Box light down+left\nconst GROUP_CLOSE = '\\u2518'; // Box light up+left\n\nconst groupStack = [];\n\nfunction groupFormat(prefix, msg) {\n // Insert group formatting before the console message\n return groupStack.join('') + prefix + ' ' + (msg || '');\n}\n\nfunction consoleGroupPolyfill(label) {\n global.nativeLoggingHook(groupFormat(GROUP_OPEN, label), LOG_LEVELS.info);\n groupStack.push(GROUP_PAD);\n}\n\nfunction consoleGroupCollapsedPolyfill(label) {\n global.nativeLoggingHook(groupFormat(GROUP_CLOSE, label), LOG_LEVELS.info);\n groupStack.push(GROUP_PAD);\n}\n\nfunction consoleGroupEndPolyfill() {\n groupStack.pop();\n global.nativeLoggingHook(groupFormat(GROUP_CLOSE), LOG_LEVELS.info);\n}\n\nfunction consoleAssertPolyfill(expression, label) {\n if (!expression) {\n global.nativeLoggingHook('Assertion failed: ' + label, LOG_LEVELS.error);\n }\n}\n\nif (global.nativeLoggingHook) {\n const originalConsole = global.console;\n // Preserve the original `console` as `originalConsole`\n if (__DEV__ && originalConsole) {\n const descriptor = Object.getOwnPropertyDescriptor(global, 'console');\n if (descriptor) {\n Object.defineProperty(global, 'originalConsole', descriptor);\n }\n }\n\n global.console = {\n error: getNativeLogFunction(LOG_LEVELS.error),\n info: getNativeLogFunction(LOG_LEVELS.info),\n log: getNativeLogFunction(LOG_LEVELS.info),\n warn: getNativeLogFunction(LOG_LEVELS.warn),\n trace: getNativeLogFunction(LOG_LEVELS.trace),\n debug: getNativeLogFunction(LOG_LEVELS.trace),\n table: consoleTablePolyfill,\n group: consoleGroupPolyfill,\n groupEnd: consoleGroupEndPolyfill,\n groupCollapsed: consoleGroupCollapsedPolyfill,\n assert: consoleAssertPolyfill,\n };\n\n Object.defineProperty(console, '_isPolyfilled', {\n value: true,\n enumerable: false,\n });\n\n // If available, also call the original `console` method since that is\n // sometimes useful. Ex: on OS X, this will let you see rich output in\n // the Safari Web Inspector console.\n if (__DEV__ && originalConsole) {\n Object.keys(console).forEach(methodName => {\n const reactNativeMethod = console[methodName];\n if (originalConsole[methodName]) {\n console[methodName] = function() {\n originalConsole[methodName](...arguments);\n reactNativeMethod.apply(console, arguments);\n };\n }\n });\n\n // The following methods are not supported by this polyfill but\n // we still should pass them to original console if they are\n // supported by it.\n ['clear', 'dir', 'dirxml', 'profile', 'profileEnd'].forEach(methodName => {\n if (typeof originalConsole[methodName] === 'function') {\n console[methodName] = function() {\n originalConsole[methodName](...arguments);\n };\n }\n });\n }\n} else if (!global.console) {\n function stub() {}\n const log = global.print || stub;\n\n global.console = {\n debug: log,\n error: log,\n info: log,\n log: log,\n trace: log,\n warn: log,\n assert(expression, label) {\n if (!expression) {\n log('Assertion failed: ' + label);\n }\n },\n clear: stub,\n dir: stub,\n dirxml: stub,\n group: stub,\n groupCollapsed: stub,\n groupEnd: stub,\n profile: stub,\n profileEnd: stub,\n table: stub,\n };\n\n Object.defineProperty(console, '_isPolyfilled', {\n value: true,\n enumerable: false,\n });\n}\n","/**\n * Copyright (c) Facebook, 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 * @format\n * @flow strict\n * @polyfill\n */\n\nlet _inGuard = 0;\n\ntype ErrorHandler = (error: mixed, isFatal: boolean) => void;\ntype Fn<Args, Return> = (...Args) => Return;\n\n/**\n * This is the error handler that is called when we encounter an exception\n * when loading a module. This will report any errors encountered before\n * ExceptionsManager is configured.\n */\nlet _globalHandler: ErrorHandler = function onError(\n e: mixed,\n isFatal: boolean,\n) {\n throw e;\n};\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n */\nconst ErrorUtils = {\n setGlobalHandler(fun: ErrorHandler): void {\n _globalHandler = fun;\n },\n getGlobalHandler(): ErrorHandler {\n return _globalHandler;\n },\n reportError(error: mixed): void {\n _globalHandler && _globalHandler(error, false);\n },\n reportFatalError(error: mixed): void {\n // NOTE: This has an untyped call site in Metro.\n _globalHandler && _globalHandler(error, true);\n },\n applyWithGuard<TArgs: $ReadOnlyArray<mixed>, TOut>(\n fun: Fn<TArgs, TOut>,\n context?: ?mixed,\n args?: ?TArgs,\n // Unused, but some code synced from www sets it to null.\n unused_onError?: null,\n // Some callers pass a name here, which we ignore.\n unused_name?: ?string,\n ): ?TOut {\n try {\n _inGuard++;\n /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n return fun.apply(context, args);\n } catch (e) {\n ErrorUtils.reportError(e);\n } finally {\n _inGuard--;\n }\n return null;\n },\n applyWithGuardIfNeeded<TArgs: $ReadOnlyArray<mixed>, TOut>(\n fun: Fn<TArgs, TOut>,\n context?: ?mixed,\n args?: ?TArgs,\n ): ?TOut {\n if (ErrorUtils.inGuard()) {\n /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n return fun.apply(context, args);\n } else {\n ErrorUtils.applyWithGuard(fun, context, args);\n }\n return null;\n },\n inGuard(): boolean {\n return !!_inGuard;\n },\n guard<TArgs: $ReadOnlyArray<mixed>, TOut>(\n fun: Fn<TArgs, TOut>,\n name?: ?string,\n context?: ?mixed,\n ): ?(...TArgs) => ?TOut {\n // TODO: (moti) T48204753 Make sure this warning is never hit and remove it - types\n // should be sufficient.\n if (typeof fun !== 'function') {\n console.warn('A function must be passed to ErrorUtils.guard, got ', fun);\n return null;\n }\n const guardName = name ?? fun.name ?? '<generated guard>';\n function guarded(...args: TArgs): ?TOut {\n return ErrorUtils.applyWithGuard(\n fun,\n context ?? this,\n args,\n null,\n guardName,\n );\n }\n\n return guarded;\n },\n};\n\nglobal.ErrorUtils = ErrorUtils;\n\nexport type ErrorUtilsT = typeof ErrorUtils;\n","/**\n * Copyright (c) Facebook, 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 * @format\n * @polyfill\n * @nolint\n */\n\n(function() {\n 'use strict';\n\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n /**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\n if (typeof Object.entries !== 'function') {\n Object.entries = function(object) {\n // `null` and `undefined` values are not allowed.\n if (object == null) {\n throw new TypeError('Object.entries called on non-object');\n }\n\n const entries = [];\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n entries.push([key, object[key]]);\n }\n }\n return entries;\n };\n }\n\n /**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n */\n if (typeof Object.values !== 'function') {\n Object.values = function(object) {\n // `null` and `undefined` values are not allowed.\n if (object == null) {\n throw new TypeError('Object.values called on non-object');\n }\n\n const values = [];\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n values.push(object[key]);\n }\n }\n return values;\n };\n }\n})();\n","import registerRootComponent from 'expo/build/launch/registerRootComponent';\n\nimport App from '../../App';\n\nregisterRootComponent(App);\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import 'expo/build/Expo.fx';\nimport * as React from 'react';\nimport { AppRegistry, Platform } from 'react-native';\nimport { createRoot } from './createRoot';\nexport default function registerRootComponent(component) {\n let qualifiedComponent = component;\n if (process.env.NODE_ENV !== 'production') {\n const { withDevTools } = require('./withDevTools');\n qualifiedComponent = withDevTools(component);\n }\n if (Platform.OS !== 'web') {\n AppRegistry.registerComponent('main', () => qualifiedComponent);\n }\n else if (\n // Skip querying the DOM if we're in a Node.js environment.\n typeof document !== 'undefined') {\n let tag = document.getElementById('root');\n if (!tag) {\n tag = document.getElementById('main');\n if (process.env.NODE_ENV !== 'production') {\n // This block will be removed in production\n if (tag) {\n console.warn('Mounting the root React component to an HTML element with id \"main\" is deprecated. Use id \"root\" instead.');\n }\n }\n }\n if (!tag) {\n throw new Error('Required HTML element with id \"root\" was not found in the document HTML. This is required for mounting the root React component.');\n }\n const rootTag = createRoot(tag);\n rootTag.render(React.createElement(qualifiedComponent));\n }\n}\n//# sourceMappingURL=registerRootComponent.js.map","import './environment/validate.fx';\n// load remote logging for compatibility with custom development clients\nimport './environment/logging.fx';\n// load expo-asset immediately to set a custom `source` transformer in React Native\nimport 'expo-asset';\nimport Constants, { ExecutionEnvironment } from 'expo-constants';\nimport * as Font from 'expo-font';\nimport { NativeModulesProxy, Platform } from 'expo-modules-core';\nimport { StyleSheet } from 'react-native';\nimport { createErrorHandler } from './errors/ExpoErrorManager';\n// If expo-font is installed and the style preprocessor is available, use it to parse fonts.\nif (StyleSheet.setStyleAttributePreprocessor) {\n StyleSheet.setStyleAttributePreprocessor('fontFamily', Font.processFontFamily);\n}\n// Asserts if bare workflow isn't setup correctly.\nif (NativeModulesProxy.ExpoUpdates?.isMissingRuntimeVersion) {\n const message = 'expo-updates is installed but there is no runtime or SDK version configured. ' +\n \"You'll need to configure one of these two properties in \" +\n Platform.select({ ios: 'Expo.plist', android: 'AndroidManifest.xml' }) +\n ' before OTA updates will work properly.';\n if (__DEV__) {\n console.warn(message);\n }\n else {\n throw new Error(message);\n }\n}\nif (Constants.executionEnvironment === ExecutionEnvironment.StoreClient) {\n // set up some improvements to commonly logged error messages stemming from react-native\n const globalHandler = ErrorUtils.getGlobalHandler();\n ErrorUtils.setGlobalHandler(createErrorHandler(globalHandler));\n}\n//# sourceMappingURL=Expo.fx.js.map","import Constants, { ExecutionEnvironment } from 'expo-constants'; // eslint-disable-line no-unused-expressions\nimport { \n// React Native's internal InitializeCore module sets up `window` but runs only when its React\n// renderer is loaded. We can cause this by loading one of its dependents.\nfindNodeHandle, } from 'react-native';\nimport { shouldThrowAnErrorOutsideOfExpo } from './validatorState';\nfindNodeHandle; // eslint-disable-line no-unused-expressions\nif (shouldThrowAnErrorOutsideOfExpo() &&\n !Constants?.expoVersion &&\n Constants?.executionEnvironment !== ExecutionEnvironment.Bare) {\n throw new Error(`Expo native runtime is not available: something went wrong and we aren't sure what it was. Please post more information and get support at https://forums.expo.dev.`);\n}\n//# sourceMappingURL=validate.fx.js.map","import { CodedError, NativeModulesProxy } from 'expo-modules-core';\nimport { Platform, NativeModules } from 'react-native';\nimport { AppOwnership, ExecutionEnvironment, UserInterfaceIdiom, } from './Constants.types';\nimport ExponentConstants from './ExponentConstants';\nexport { AppOwnership, ExecutionEnvironment, UserInterfaceIdiom, };\nif (!ExponentConstants) {\n console.warn(\"No native ExponentConstants module found, are you sure the expo-constants's module is linked properly?\");\n}\nlet rawManifest = null;\n// If expo-updates defines a non-empty manifest, prefer that one\nif (NativeModulesProxy.ExpoUpdates) {\n let updatesManifest;\n if (NativeModulesProxy.ExpoUpdates.manifest) {\n updatesManifest = NativeModulesProxy.ExpoUpdates.manifest;\n }\n else if (NativeModulesProxy.ExpoUpdates.manifestString) {\n updatesManifest = JSON.parse(NativeModulesProxy.ExpoUpdates.manifestString);\n }\n if (updatesManifest && Object.keys(updatesManifest).length > 0) {\n rawManifest = updatesManifest;\n }\n}\n// If dev-launcher defines a non-empty manifest, prefer that one\nif (NativeModules.EXDevLauncher) {\n let devLauncherManifest;\n if (NativeModules.EXDevLauncher.manifestString) {\n devLauncherManifest = JSON.parse(NativeModules.EXDevLauncher.manifestString);\n }\n if (devLauncherManifest && Object.keys(devLauncherManifest).length > 0) {\n rawManifest = devLauncherManifest;\n }\n}\n// Fall back to ExponentConstants.manifest if we don't have one from Updates\nif (!rawManifest && ExponentConstants && ExponentConstants.manifest) {\n rawManifest = ExponentConstants.manifest;\n // On Android we pass the manifest in JSON form so this step is necessary\n if (typeof rawManifest === 'string') {\n rawManifest = JSON.parse(rawManifest);\n }\n}\nconst { name, appOwnership, ...nativeConstants } = (ExponentConstants || {});\nlet warnedAboutDeviceYearClass = false;\nlet warnedAboutIosModel = false;\nconst constants = {\n ...nativeConstants,\n // Ensure this is null in bare workflow\n appOwnership: appOwnership ?? null,\n};\nObject.defineProperties(constants, {\n // Deprecated field\n deviceYearClass: {\n get() {\n if (!warnedAboutDeviceYearClass) {\n console.warn(`Constants.deviceYearClass has been deprecated in favor of expo-device's Device.deviceYearClass property. This API will be removed in SDK 45.`);\n warnedAboutDeviceYearClass = true;\n }\n return nativeConstants.deviceYearClass;\n },\n enumerable: false,\n },\n installationId: {\n get() {\n return nativeConstants.installationId;\n },\n enumerable: false,\n },\n /**\n * Use `manifest` property by default.\n * This property is only used for internal purposes.\n * It behaves similarly to the original one, but suppresses warning upon no manifest available.\n * `expo-asset` uses it to prevent users from seeing mentioned warning.\n */\n __unsafeNoWarnManifest: {\n get() {\n const maybeManifest = getManifest(true);\n if (!maybeManifest || !isAppManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: false,\n },\n __unsafeNoWarnManifest2: {\n get() {\n const maybeManifest = getManifest(true);\n if (!maybeManifest || !isManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: false,\n },\n manifest: {\n get() {\n const maybeManifest = getManifest();\n if (!maybeManifest || !isAppManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: true,\n },\n manifest2: {\n get() {\n const maybeManifest = getManifest();\n if (!maybeManifest || !isManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: true,\n },\n expoConfig: {\n get() {\n const maybeManifest = getManifest(true);\n if (!maybeManifest) {\n return null;\n }\n if (isManifest(maybeManifest)) {\n return maybeManifest.extra?.expoClient ?? null;\n }\n else if (isAppManifest(maybeManifest)) {\n return maybeManifest;\n }\n return null;\n },\n enumerable: true,\n },\n __rawManifest_TEST: {\n get() {\n return rawManifest;\n },\n set(value) {\n rawManifest = value;\n },\n enumerable: false,\n },\n});\n// Add deprecation warning for `platform.ios.model`\nif (constants?.platform?.ios) {\n const originalModel = nativeConstants.platform.ios.model;\n Object.defineProperty(constants.platform.ios, 'model', {\n get() {\n if (!warnedAboutIosModel) {\n console.warn(`Constants.platform.ios.model has been deprecated in favor of expo-device's Device.modelName property. This API will be removed in SDK 45.`);\n warnedAboutIosModel = true;\n }\n return originalModel;\n },\n enumerable: false,\n });\n}\nfunction isAppManifest(manifest) {\n return !isManifest(manifest);\n}\nfunction isManifest(manifest) {\n return 'metadata' in manifest;\n}\nfunction getManifest(suppressWarning = false) {\n if (!rawManifest) {\n const invalidManifestType = rawManifest === null ? 'null' : 'undefined';\n if (nativeConstants.executionEnvironment === ExecutionEnvironment.Bare &&\n Platform.OS !== 'web') {\n if (!suppressWarning) {\n console.warn(`Constants.manifest is ${invalidManifestType} because the embedded app.config could not be read. Ensure that you have installed the expo-constants build scripts if you need to read from Constants.manifest.`);\n }\n }\n else if (nativeConstants.executionEnvironment === ExecutionEnvironment.StoreClient ||\n nativeConstants.executionEnvironment === ExecutionEnvironment.Standalone) {\n // If we somehow get here, this is a truly exceptional state to be in.\n // Constants.manifest should *always* be defined in those contexts.\n throw new CodedError('ERR_CONSTANTS_MANIFEST_UNAVAILABLE', `Constants.manifest is ${invalidManifestType}, must be an object.`);\n }\n }\n return rawManifest;\n}\nexport default constants;\n//# sourceMappingURL=Constants.js.map","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { DeviceEventEmitter } from 'react-native';\nimport { EventEmitter } from './EventEmitter';\nimport NativeModulesProxy from './NativeModulesProxy';\nimport { requireNativeViewManager } from './NativeViewManagerAdapter';\nimport Platform from './Platform';\nimport SyntheticPlatformEmitter from './SyntheticPlatformEmitter';\nimport { CodedError } from './errors/CodedError';\nimport { UnavailabilityError } from './errors/UnavailabilityError';\nimport './sweet/setUpErrorManager.fx';\nexport { default as deprecate } from './deprecate';\nexport { DeviceEventEmitter, EventEmitter, NativeModulesProxy, Platform, SyntheticPlatformEmitter, requireNativeViewManager, \n// Errors\nCodedError, UnavailabilityError, };\nexport * from './requireNativeModule';\nexport * from './TypedArrays.types';\n/**\n * @deprecated renamed to `DeviceEventEmitter`\n */\nexport const RCTDeviceEventEmitter = DeviceEventEmitter;\nexport * from './PermissionsInterface';\nexport * from './PermissionsHook';\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 * @format\n * @flow\n */\n\n'use strict';\n\n// Components\nimport typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/AccessibilityInfo';\nimport typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';\nimport typeof Button from './Libraries/Components/Button';\nimport typeof DatePickerIOS from './Libraries/Components/DatePicker/DatePickerIOS';\nimport typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid';\nimport typeof FlatList from './Libraries/Lists/FlatList';\nimport typeof Image from './Libraries/Image/Image';\nimport typeof ImageBackground from './Libraries/Image/ImageBackground';\nimport typeof InputAccessoryView from './Libraries/Components/TextInput/InputAccessoryView';\nimport typeof KeyboardAvoidingView from './Libraries/Components/Keyboard/KeyboardAvoidingView';\nimport typeof Modal from './Libraries/Modal/Modal';\nimport typeof Pressable from './Libraries/Components/Pressable/Pressable';\nimport typeof ProgressBarAndroid from './Libraries/Components/ProgressBarAndroid/ProgressBarAndroid';\nimport typeof ProgressViewIOS from './Libraries/Components/ProgressViewIOS/ProgressViewIOS';\nimport typeof RefreshControl from './Libraries/Components/RefreshControl/RefreshControl';\nimport typeof SafeAreaView from './Libraries/Components/SafeAreaView/SafeAreaView';\nimport typeof ScrollView from './Libraries/Components/ScrollView/ScrollView';\nimport typeof SectionList from './Libraries/Lists/SectionList';\nimport typeof Slider from './Libraries/Components/Slider/Slider';\nimport typeof StatusBar from './Libraries/Components/StatusBar/StatusBar';\nimport typeof Switch from './Libraries/Components/Switch/Switch';\nimport typeof Text from './Libraries/Text/Text';\nimport typeof TextInput from './Libraries/Components/TextInput/TextInput';\nimport typeof Touchable from './Libraries/Components/Touchable/Touchable';\nimport typeof TouchableHighlight from './Libraries/Components/Touchable/TouchableHighlight';\nimport typeof TouchableNativeFeedback from './Libraries/Components/Touchable/TouchableNativeFeedback';\nimport typeof TouchableOpacity from './Libraries/Components/Touchable/TouchableOpacity';\nimport typeof TouchableWithoutFeedback from './Libraries/Components/Touchable/TouchableWithoutFeedback';\nimport typeof View from './Libraries/Components/View/View';\nimport typeof VirtualizedList from './Libraries/Lists/VirtualizedList';\nimport typeof VirtualizedSectionList from './Libraries/Lists/VirtualizedSectionList';\n\n// APIs\nimport typeof ActionSheetIOS from './Libraries/ActionSheetIOS/ActionSheetIOS';\nimport typeof Alert from './Libraries/Alert/Alert';\nimport typeof Animated from './Libraries/Animated/Animated';\nimport typeof * as AnimatedModule from './Libraries/Animated/Animated';\nimport typeof Appearance from './Libraries/Utilities/Appearance';\nimport typeof AppRegistry from './Libraries/ReactNative/AppRegistry';\nimport typeof AppState from './Libraries/AppState/AppState';\nimport typeof BackHandler from './Libraries/Utilities/BackHandler';\nimport typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';\nimport typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';\nimport typeof DevSettings from './Libraries/Utilities/DevSettings';\nimport typeof Dimensions from './Libraries/Utilities/Dimensions';\nimport typeof Easing from './Libraries/Animated/Easing';\nimport typeof ReactNative from './Libraries/Renderer/shims/ReactNative';\nimport typeof I18nManager from './Libraries/ReactNative/I18nManager';\nimport typeof InteractionManager from './Libraries/Interaction/InteractionManager';\nimport typeof Keyboard from './Libraries/Components/Keyboard/Keyboard';\nimport typeof LayoutAnimation from './Libraries/LayoutAnimation/LayoutAnimation';\nimport typeof Linking from './Libraries/Linking/Linking';\nimport typeof LogBox from './Libraries/LogBox/LogBox';\nimport typeof NativeDialogManagerAndroid from './Libraries/NativeModules/specs/NativeDialogManagerAndroid';\nimport typeof NativeEventEmitter from './Libraries/EventEmitter/NativeEventEmitter';\nimport typeof Networking from './Libraries/Network/RCTNetworking';\nimport typeof PanResponder from './Libraries/Interaction/PanResponder';\nimport typeof PermissionsAndroid from './Libraries/PermissionsAndroid/PermissionsAndroid';\nimport typeof PixelRatio from './Libraries/Utilities/PixelRatio';\nimport typeof PushNotificationIOS from './Libraries/PushNotificationIOS/PushNotificationIOS';\nimport typeof Settings from './Libraries/Settings/Settings';\nimport typeof Share from './Libraries/Share/Share';\nimport typeof StyleSheet from './Libraries/StyleSheet/StyleSheet';\nimport typeof * as Systrace from './Libraries/Performance/Systrace';\nimport typeof ToastAndroid from './Libraries/Components/ToastAndroid/ToastAndroid';\nimport typeof * as TurboModuleRegistry from './Libraries/TurboModule/TurboModuleRegistry';\nimport typeof UIManager from './Libraries/ReactNative/UIManager';\nimport typeof useAnimatedValue from './Libraries/Animated/useAnimatedValue';\nimport typeof useColorScheme from './Libraries/Utilities/useColorScheme';\nimport typeof useWindowDimensions from './Libraries/Utilities/useWindowDimensions';\nimport typeof UTFSequence from './Libraries/UTFSequence';\nimport typeof Vibration from './Libraries/Vibration/Vibration';\nimport typeof YellowBox from './Libraries/YellowBox/YellowBoxDeprecated';\n\n// Plugins\nimport typeof {DynamicColorIOS} from './Libraries/StyleSheet/PlatformColorValueTypesIOS';\nimport typeof NativeModules from './Libraries/BatchedBridge/NativeModules';\nimport typeof Platform from './Libraries/Utilities/Platform';\nimport typeof {PlatformColor} from './Libraries/StyleSheet/PlatformColorValueTypes';\nimport typeof processColor from './Libraries/StyleSheet/processColor';\nimport typeof RCTDeviceEventEmitter from './Libraries/EventEmitter/RCTDeviceEventEmitter';\nimport typeof RCTNativeAppEventEmitter from './Libraries/EventEmitter/RCTNativeAppEventEmitter';\nimport typeof {RootTagContext} from './Libraries/ReactNative/RootTag';\n\nimport type {HostComponent as _HostComponentInternal} from './Libraries/Renderer/shims/ReactNativeTypes';\n\nexport type HostComponent<T> = _HostComponentInternal<T>;\n\nconst invariant = require('invariant');\nconst warnOnce = require('./Libraries/Utilities/warnOnce');\n\nmodule.exports = {\n // Components\n get AccessibilityInfo(): AccessibilityInfo {\n return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo')\n .default;\n },\n get ActivityIndicator(): ActivityIndicator {\n return require('./Libraries/Components/ActivityIndicator/ActivityIndicator');\n },\n get Button(): Button {\n return require('./Libraries/Components/Button');\n },\n // $FlowFixMe[value-as-type]\n get DatePickerIOS(): DatePickerIOS {\n warnOnce(\n 'DatePickerIOS-merged',\n 'DatePickerIOS has been merged with DatePickerAndroid and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n return require('./Libraries/Components/DatePicker/DatePickerIOS');\n },\n // $FlowFixMe[value-as-type]\n get DrawerLayoutAndroid(): DrawerLayoutAndroid {\n return require('./Libraries/Components/DrawerAndroid/DrawerLayoutAndroid');\n },\n get FlatList(): FlatList {\n return require('./Libraries/Lists/FlatList');\n },\n get Image(): Image {\n return require('./Libraries/Image/Image');\n },\n get ImageBackground(): ImageBackground {\n return require('./Libraries/Image/ImageBackground');\n },\n get InputAccessoryView(): InputAccessoryView {\n return require('./Libraries/Components/TextInput/InputAccessoryView');\n },\n get KeyboardAvoidingView(): KeyboardAvoidingView {\n return require('./Libraries/Components/Keyboard/KeyboardAvoidingView')\n .default;\n },\n get Modal(): Modal {\n return require('./Libraries/Modal/Modal');\n },\n get Pressable(): Pressable {\n return require('./Libraries/Components/Pressable/Pressable').default;\n },\n // $FlowFixMe[value-as-type]\n get ProgressBarAndroid(): ProgressBarAndroid {\n warnOnce(\n 'progress-bar-android-moved',\n 'ProgressBarAndroid has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/progress-bar-android' instead of 'react-native'. \" +\n 'See https://github.com/react-native-progress-view/progress-bar-android',\n );\n return require('./Libraries/Components/ProgressBarAndroid/ProgressBarAndroid');\n },\n // $FlowFixMe[value-as-type]\n get ProgressViewIOS(): ProgressViewIOS {\n warnOnce(\n 'progress-view-ios-moved',\n 'ProgressViewIOS has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/progress-view' instead of 'react-native'. \" +\n 'See https://github.com/react-native-progress-view/progress-view',\n );\n return require('./Libraries/Components/ProgressViewIOS/ProgressViewIOS');\n },\n get RefreshControl(): RefreshControl {\n return require('./Libraries/Components/RefreshControl/RefreshControl');\n },\n get SafeAreaView(): SafeAreaView {\n return require('./Libraries/Components/SafeAreaView/SafeAreaView').default;\n },\n get ScrollView(): ScrollView {\n return require('./Libraries/Components/ScrollView/ScrollView');\n },\n get SectionList(): SectionList {\n return require('./Libraries/Lists/SectionList').default;\n },\n get Slider(): Slider {\n warnOnce(\n 'slider-moved',\n 'Slider has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/slider' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-slider',\n );\n return require('./Libraries/Components/Slider/Slider');\n },\n get StatusBar(): StatusBar {\n return require('./Libraries/Components/StatusBar/StatusBar');\n },\n get Switch(): Switch {\n return require('./Libraries/Components/Switch/Switch').default;\n },\n get Text(): Text {\n return require('./Libraries/Text/Text');\n },\n get TextInput(): TextInput {\n return require('./Libraries/Components/TextInput/TextInput');\n },\n get Touchable(): Touchable {\n return require('./Libraries/Components/Touchable/Touchable');\n },\n get TouchableHighlight(): TouchableHighlight {\n return require('./Libraries/Components/Touchable/TouchableHighlight');\n },\n get TouchableNativeFeedback(): TouchableNativeFeedback {\n return require('./Libraries/Components/Touchable/TouchableNativeFeedback');\n },\n get TouchableOpacity(): TouchableOpacity {\n return require('./Libraries/Components/Touchable/TouchableOpacity');\n },\n get TouchableWithoutFeedback(): TouchableWithoutFeedback {\n return require('./Libraries/Components/Touchable/TouchableWithoutFeedback');\n },\n get View(): View {\n return require('./Libraries/Components/View/View');\n },\n get VirtualizedList(): VirtualizedList {\n return require('./Libraries/Lists/VirtualizedList').default;\n },\n get VirtualizedSectionList(): VirtualizedSectionList {\n return require('./Libraries/Lists/VirtualizedSectionList');\n },\n\n // APIs\n get ActionSheetIOS(): ActionSheetIOS {\n return require('./Libraries/ActionSheetIOS/ActionSheetIOS');\n },\n get Alert(): Alert {\n return require('./Libraries/Alert/Alert');\n },\n // Include any types exported in the Animated module together with its default export, so\n // you can references types such as Animated.Numeric\n get Animated(): {...$Diff<AnimatedModule, {default: any}>, ...Animated} {\n // $FlowExpectedError[prop-missing]: we only return the default export, all other exports are types\n return require('./Libraries/Animated/Animated').default;\n },\n get Appearance(): Appearance {\n return require('./Libraries/Utilities/Appearance');\n },\n get AppRegistry(): AppRegistry {\n return require('./Libraries/ReactNative/AppRegistry');\n },\n get AppState(): AppState {\n return require('./Libraries/AppState/AppState');\n },\n get BackHandler(): BackHandler {\n return require('./Libraries/Utilities/BackHandler');\n },\n get Clipboard(): Clipboard {\n warnOnce(\n 'clipboard-moved',\n 'Clipboard has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-clipboard/clipboard' instead of 'react-native'. \" +\n 'See https://github.com/react-native-clipboard/clipboard',\n );\n return require('./Libraries/Components/Clipboard/Clipboard');\n },\n get DeviceInfo(): DeviceInfo {\n return require('./Libraries/Utilities/DeviceInfo');\n },\n get DevSettings(): DevSettings {\n return require('./Libraries/Utilities/DevSettings');\n },\n get Dimensions(): Dimensions {\n return require('./Libraries/Utilities/Dimensions');\n },\n get Easing(): Easing {\n return require('./Libraries/Animated/Easing').default;\n },\n get findNodeHandle(): $PropertyType<ReactNative, 'findNodeHandle'> {\n return require('./Libraries/ReactNative/RendererProxy').findNodeHandle;\n },\n get I18nManager(): I18nManager {\n return require('./Libraries/ReactNative/I18nManager');\n },\n get InteractionManager(): InteractionManager {\n return require('./Libraries/Interaction/InteractionManager');\n },\n get Keyboard(): Keyboard {\n return require('./Libraries/Components/Keyboard/Keyboard');\n },\n get LayoutAnimation(): LayoutAnimation {\n return require('./Libraries/LayoutAnimation/LayoutAnimation');\n },\n get Linking(): Linking {\n return require('./Libraries/Linking/Linking');\n },\n get LogBox(): LogBox {\n return require('./Libraries/LogBox/LogBox');\n },\n get NativeDialogManagerAndroid(): NativeDialogManagerAndroid {\n return require('./Libraries/NativeModules/specs/NativeDialogManagerAndroid')\n .default;\n },\n get NativeEventEmitter(): NativeEventEmitter {\n return require('./Libraries/EventEmitter/NativeEventEmitter').default;\n },\n get Networking(): Networking {\n return require('./Libraries/Network/RCTNetworking');\n },\n get PanResponder(): PanResponder {\n return require('./Libraries/Interaction/PanResponder');\n },\n get PermissionsAndroid(): PermissionsAndroid {\n return require('./Libraries/PermissionsAndroid/PermissionsAndroid');\n },\n get PixelRatio(): PixelRatio {\n return require('./Libraries/Utilities/PixelRatio');\n },\n get PushNotificationIOS(): PushNotificationIOS {\n warnOnce(\n 'pushNotificationIOS-moved',\n 'PushNotificationIOS has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/push-notification-ios' instead of 'react-native'. \" +\n 'See https://github.com/react-native-push-notification-ios/push-notification-ios',\n );\n return require('./Libraries/PushNotificationIOS/PushNotificationIOS');\n },\n get Settings(): Settings {\n return require('./Libraries/Settings/Settings');\n },\n get Share(): Share {\n return require('./Libraries/Share/Share');\n },\n get StyleSheet(): StyleSheet {\n return require('./Libraries/StyleSheet/StyleSheet');\n },\n get Systrace(): Systrace {\n return require('./Libraries/Performance/Systrace');\n },\n // $FlowFixMe[value-as-type]\n get ToastAndroid(): ToastAndroid {\n return require('./Libraries/Components/ToastAndroid/ToastAndroid');\n },\n get TurboModuleRegistry(): TurboModuleRegistry {\n return require('./Libraries/TurboModule/TurboModuleRegistry');\n },\n get UIManager(): UIManager {\n return require('./Libraries/ReactNative/UIManager');\n },\n get unstable_batchedUpdates(): $PropertyType<\n ReactNative,\n 'unstable_batchedUpdates',\n > {\n return require('./Libraries/ReactNative/RendererProxy')\n .unstable_batchedUpdates;\n },\n get useAnimatedValue(): useAnimatedValue {\n return require('./Libraries/Animated/useAnimatedValue').default;\n },\n get useColorScheme(): useColorScheme {\n return require('./Libraries/Utilities/useColorScheme').default;\n },\n get useWindowDimensions(): useWindowDimensions {\n return require('./Libraries/Utilities/useWindowDimensions').default;\n },\n get UTFSequence(): UTFSequence {\n return require('./Libraries/UTFSequence');\n },\n get Vibration(): Vibration {\n return require('./Libraries/Vibration/Vibration');\n },\n get YellowBox(): YellowBox {\n return require('./Libraries/YellowBox/YellowBoxDeprecated');\n },\n\n // Plugins\n get DeviceEventEmitter(): RCTDeviceEventEmitter {\n return require('./Libraries/EventEmitter/RCTDeviceEventEmitter').default;\n },\n get DynamicColorIOS(): DynamicColorIOS {\n return require('./Libraries/StyleSheet/PlatformColorValueTypesIOS')\n .DynamicColorIOS;\n },\n get NativeAppEventEmitter(): RCTNativeAppEventEmitter {\n return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter');\n },\n get NativeModules(): NativeModules {\n return require('./Libraries/BatchedBridge/NativeModules');\n },\n get Platform(): Platform {\n return require('./Libraries/Utilities/Platform');\n },\n get PlatformColor(): PlatformColor {\n return require('./Libraries/StyleSheet/PlatformColorValueTypes')\n .PlatformColor;\n },\n get processColor(): processColor {\n return require('./Libraries/StyleSheet/processColor');\n },\n get requireNativeComponent(): <T>(\n uiViewClassName: string,\n ) => HostComponent<T> {\n return require('./Libraries/ReactNative/requireNativeComponent');\n },\n get RootTagContext(): RootTagContext {\n return require('./Libraries/ReactNative/RootTag').RootTagContext;\n },\n get unstable_enableLogBox(): () => void {\n return () =>\n console.warn(\n 'LogBox is enabled by default so there is no need to call unstable_enableLogBox() anymore. This is a no op and will be removed in the next version.',\n );\n },\n // Deprecated Prop Types\n get ColorPropType(): $FlowFixMe {\n console.error(\n 'ColorPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using ColorPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').ColorPropType;\n },\n get EdgeInsetsPropType(): $FlowFixMe {\n console.error(\n 'EdgeInsetsPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using EdgeInsetsPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').EdgeInsetsPropType;\n },\n get PointPropType(): $FlowFixMe {\n console.error(\n 'PointPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using PointPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').PointPropType;\n },\n get ViewPropTypes(): $FlowFixMe {\n console.error(\n 'ViewPropTypes will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using ViewPropTypes, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').ViewPropTypes;\n },\n};\n\nif (__DEV__) {\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ART. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ART. */\n Object.defineProperty(module.exports, 'ART', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ART has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/art' instead of 'react-native'. \" +\n 'See https://github.com/react-native-art/art',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ListView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ListView. */\n Object.defineProperty(module.exports, 'ListView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ListView has been removed from React Native. ' +\n 'See https://fb.me/nolistview for more information or use ' +\n '`deprecated-react-native-listview`.',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access SwipeableListView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access SwipeableListView. */\n Object.defineProperty(module.exports, 'SwipeableListView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'SwipeableListView has been removed from React Native. ' +\n 'See https://fb.me/nolistview for more information or use ' +\n '`deprecated-react-native-swipeable-listview`.',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access WebView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access WebView. */\n Object.defineProperty(module.exports, 'WebView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'WebView has been removed from React Native. ' +\n \"It can now be installed and imported from 'react-native-webview' instead of 'react-native'. \" +\n 'See https://github.com/react-native-webview/react-native-webview',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access NetInfo. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access NetInfo. */\n Object.defineProperty(module.exports, 'NetInfo', {\n configurable: true,\n get() {\n invariant(\n false,\n 'NetInfo has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/netinfo' instead of 'react-native'. \" +\n 'See https://github.com/react-native-netinfo/react-native-netinfo',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access CameraRoll. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access CameraRoll. */\n Object.defineProperty(module.exports, 'CameraRoll', {\n configurable: true,\n get() {\n invariant(\n false,\n 'CameraRoll has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/cameraroll' instead of 'react-native'. \" +\n 'See https://github.com/react-native-cameraroll/react-native-cameraroll',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImageStore. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImageStore. */\n Object.defineProperty(module.exports, 'ImageStore', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImageStore has been removed from React Native. ' +\n 'To get a base64-encoded string from a local image use either of the following third-party libraries:' +\n \"* expo-file-system: `readAsStringAsync(filepath, 'base64')`\" +\n \"* react-native-fs: `readFile(filepath, 'base64')`\",\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImageEditor. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImageEditor. */\n Object.defineProperty(module.exports, 'ImageEditor', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImageEditor has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/image-editor' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-image-editor',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access TimePickerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access TimePickerAndroid. */\n Object.defineProperty(module.exports, 'TimePickerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'TimePickerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ToolbarAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ToolbarAndroid. */\n Object.defineProperty(module.exports, 'ToolbarAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ToolbarAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/toolbar-android' instead of 'react-native'. \" +\n 'See https://github.com/react-native-toolbar-android/toolbar-android',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ViewPagerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ViewPagerAndroid. */\n Object.defineProperty(module.exports, 'ViewPagerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ViewPagerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from 'react-native-pager-view' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-pager-view',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access CheckBox. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access CheckBox. */\n Object.defineProperty(module.exports, 'CheckBox', {\n configurable: true,\n get() {\n invariant(\n false,\n 'CheckBox has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/checkbox' instead of 'react-native'. \" +\n 'See https://github.com/react-native-checkbox/react-native-checkbox',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access SegmentedControlIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access SegmentedControlIOS. */\n Object.defineProperty(module.exports, 'SegmentedControlIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'SegmentedControlIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/segmented-checkbox' instead of 'react-native'.\" +\n 'See https://github.com/react-native-segmented-control/segmented-control',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access StatusBarIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access StatusBarIOS. */\n Object.defineProperty(module.exports, 'StatusBarIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'StatusBarIOS has been removed from React Native. ' +\n 'Has been merged with StatusBar. ' +\n 'See https://reactnative.dev/docs/statusbar',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access PickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access PickerIOS. */\n Object.defineProperty(module.exports, 'PickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'PickerIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-picker/picker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-picker/picker',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access Picker. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access Picker. */\n Object.defineProperty(module.exports, 'Picker', {\n configurable: true,\n get() {\n invariant(\n false,\n 'Picker has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-picker/picker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-picker/picker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access DatePickerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access DatePickerAndroid. */\n Object.defineProperty(module.exports, 'DatePickerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'DatePickerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access MaskedViewIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access MaskedViewIOS. */\n Object.defineProperty(module.exports, 'MaskedViewIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'MaskedViewIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/react-native-masked-view' instead of 'react-native'. \" +\n 'See https://github.com/react-native-masked-view/masked-view',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access AsyncStorage. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access AsyncStorage. */\n Object.defineProperty(module.exports, 'AsyncStorage', {\n configurable: true,\n get() {\n invariant(\n false,\n 'AsyncStorage has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-async-storage/async-storage' instead of 'react-native'. \" +\n 'See https://github.com/react-native-async-storage/async-storage',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImagePickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImagePickerIOS. */\n Object.defineProperty(module.exports, 'ImagePickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImagePickerIOS has been removed from React Native. ' +\n \"Please upgrade to use either '@react-native-community/react-native-image-picker' or 'expo-image-picker'. \" +\n \"If you cannot upgrade to a different library, please install the deprecated '@react-native-community/image-picker-ios' package. \" +\n 'See https://github.com/rnc-archive/react-native-image-picker-ios',\n );\n },\n });\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nconst warnedKeys: {[string]: boolean, ...} = {};\n\n/**\n * A simple function that prints a warning message once per session.\n *\n * @param {string} key - The key used to ensure the message is printed once.\n * This should be unique to the callsite.\n * @param {string} message - The message to print\n */\nfunction warnOnce(key: string, message: string) {\n if (warnedKeys[key]) {\n return;\n }\n\n console.warn(message);\n\n warnedKeys[key] = true;\n}\n\nmodule.exports = warnOnce;\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 strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport type {AccessibilityInfoType} from './AccessibilityInfo.flow';\nimport type {ElementRef} from 'react';\n\nimport RCTDeviceEventEmitter from '../../EventEmitter/RCTDeviceEventEmitter';\nimport {sendAccessibilityEvent} from '../../ReactNative/RendererProxy';\nimport Platform from '../../Utilities/Platform';\nimport legacySendAccessibilityEvent from './legacySendAccessibilityEvent';\nimport NativeAccessibilityInfoAndroid from './NativeAccessibilityInfo';\nimport NativeAccessibilityManagerIOS from './NativeAccessibilityManager';\n\n// Events that are only supported on Android.\ntype AccessibilityEventDefinitionsAndroid = {\n accessibilityServiceChanged: [boolean],\n};\n\n// Events that are only supported on iOS.\ntype AccessibilityEventDefinitionsIOS = {\n announcementFinished: [{announcement: string, success: boolean}],\n boldTextChanged: [boolean],\n grayscaleChanged: [boolean],\n invertColorsChanged: [boolean],\n reduceTransparencyChanged: [boolean],\n};\n\ntype AccessibilityEventDefinitions = {\n ...AccessibilityEventDefinitionsAndroid,\n ...AccessibilityEventDefinitionsIOS,\n change: [boolean], // screenReaderChanged\n reduceMotionChanged: [boolean],\n screenReaderChanged: [boolean],\n};\n\ntype AccessibilityEventTypes = 'click' | 'focus';\n\n// Mapping of public event names to platform-specific event names.\nconst EventNames: Map<\n $Keys<AccessibilityEventDefinitions>,\n string,\n> = Platform.OS === 'android'\n ? new Map([\n ['change', 'touchExplorationDidChange'],\n ['reduceMotionChanged', 'reduceMotionDidChange'],\n ['screenReaderChanged', 'touchExplorationDidChange'],\n ['accessibilityServiceChanged', 'accessibilityServiceDidChange'],\n ])\n : new Map([\n ['announcementFinished', 'announcementFinished'],\n ['boldTextChanged', 'boldTextChanged'],\n ['change', 'screenReaderChanged'],\n ['grayscaleChanged', 'grayscaleChanged'],\n ['invertColorsChanged', 'invertColorsChanged'],\n ['reduceMotionChanged', 'reduceMotionChanged'],\n ['reduceTransparencyChanged', 'reduceTransparencyChanged'],\n ['screenReaderChanged', 'screenReaderChanged'],\n ]);\n\n/**\n * Sometimes it's useful to know whether or not the device has a screen reader\n * that is currently active. The `AccessibilityInfo` API is designed for this\n * purpose. You can use it to query the current state of the screen reader as\n * well as to register to be notified when the state of the screen reader\n * changes.\n *\n * See https://reactnative.dev/docs/accessibilityinfo\n */\nconst AccessibilityInfo: AccessibilityInfoType = {\n /**\n * Query whether bold text is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when bold text is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isBoldTextEnabled\n */\n isBoldTextEnabled(): Promise<boolean> {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentBoldTextState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether grayscale is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when grayscale is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isGrayscaleEnabled\n */\n isGrayscaleEnabled(): Promise<boolean> {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentGrayscaleState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether inverted colors are currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when invert color is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isInvertColorsEnabled\n */\n isInvertColorsEnabled(): Promise<boolean> {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentInvertColorsState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether reduced motion is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a reduce motion is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isReduceMotionEnabled\n */\n isReduceMotionEnabled(): Promise<boolean> {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (NativeAccessibilityInfoAndroid != null) {\n NativeAccessibilityInfoAndroid.isReduceMotionEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentReduceMotionState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether reduce motion and prefer cross-fade transitions settings are currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when prefer cross-fade transitions is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#prefersCrossFadeTransitions\n */\n prefersCrossFadeTransitions(): Promise<boolean> {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n if (\n NativeAccessibilityManagerIOS?.getCurrentPrefersCrossFadeTransitionsState !=\n null\n ) {\n NativeAccessibilityManagerIOS.getCurrentPrefersCrossFadeTransitionsState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether reduced transparency is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a reduce transparency is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isReduceTransparencyEnabled\n */\n isReduceTransparencyEnabled(): Promise<boolean> {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentReduceTransparencyState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isScreenReaderEnabled\n */\n isScreenReaderEnabled(): Promise<boolean> {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (NativeAccessibilityInfoAndroid != null) {\n NativeAccessibilityInfoAndroid.isTouchExplorationEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentVoiceOverState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether Accessibility Service is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when any service is enabled and `false` otherwise.\n *\n * @platform android\n *\n * See https://reactnative.dev/docs/accessibilityinfo/#isaccessibilityserviceenabled-android\n */\n isAccessibilityServiceEnabled(): Promise<boolean> {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (\n NativeAccessibilityInfoAndroid != null &&\n NativeAccessibilityInfoAndroid.isAccessibilityServiceEnabled != null\n ) {\n NativeAccessibilityInfoAndroid.isAccessibilityServiceEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n reject(null);\n }\n });\n },\n\n /**\n * Add an event handler. Supported events:\n *\n * - `reduceMotionChanged`: Fires when the state of the reduce motion toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a reduce\n * motion is enabled (or when \"Transition Animation Scale\" in \"Developer options\" is\n * \"Animation off\") and `false` otherwise.\n * - `screenReaderChanged`: Fires when the state of the screen reader changes. The argument\n * to the event handler is a boolean. The boolean is `true` when a screen\n * reader is enabled and `false` otherwise.\n *\n * These events are only supported on iOS:\n *\n * - `boldTextChanged`: iOS-only event. Fires when the state of the bold text toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a bold text\n * is enabled and `false` otherwise.\n * - `grayscaleChanged`: iOS-only event. Fires when the state of the gray scale toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a gray scale\n * is enabled and `false` otherwise.\n * - `invertColorsChanged`: iOS-only event. Fires when the state of the invert colors toggle\n * changes. The argument to the event handler is a boolean. The boolean is `true` when a invert\n * colors is enabled and `false` otherwise.\n * - `reduceTransparencyChanged`: iOS-only event. Fires when the state of the reduce transparency\n * toggle changes. The argument to the event handler is a boolean. The boolean is `true`\n * when a reduce transparency is enabled and `false` otherwise.\n * - `announcementFinished`: iOS-only event. Fires when the screen reader has\n * finished making an announcement. The argument to the event handler is a\n * dictionary with these keys:\n * - `announcement`: The string announced by the screen reader.\n * - `success`: A boolean indicating whether the announcement was\n * successfully made.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#addeventlistener\n */\n addEventListener<K: $Keys<AccessibilityEventDefinitions>>(\n eventName: K,\n // $FlowIssue[incompatible-type] - Flow bug with unions and generics (T128099423)\n handler: (...$ElementType<AccessibilityEventDefinitions, K>) => void,\n ): EventSubscription {\n const deviceEventName = EventNames.get(eventName);\n return deviceEventName == null\n ? {remove(): void {}}\n : // $FlowFixMe[incompatible-call]\n RCTDeviceEventEmitter.addListener(deviceEventName, handler);\n },\n\n /**\n * Set accessibility focus to a React component.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#setaccessibilityfocus\n */\n setAccessibilityFocus(reactTag: number): void {\n legacySendAccessibilityEvent(reactTag, 'focus');\n },\n\n /**\n * Send a named accessibility event to a HostComponent.\n */\n sendAccessibilityEvent(\n handle: ElementRef<HostComponent<mixed>>,\n eventType: AccessibilityEventTypes,\n ) {\n // iOS only supports 'focus' event types\n if (Platform.OS === 'ios' && eventType === 'click') {\n return;\n }\n // route through React renderer to distinguish between Fabric and non-Fabric handles\n sendAccessibilityEvent(handle, eventType);\n },\n\n /**\n * Post a string to be announced by the screen reader.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#announceforaccessibility\n */\n announceForAccessibility(announcement: string): void {\n if (Platform.OS === 'android') {\n NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);\n } else {\n NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);\n }\n },\n\n /**\n * Post a string to be announced by the screen reader.\n * - `announcement`: The string announced by the screen reader.\n * - `options`: An object that configures the reading options.\n * - `queue`: The announcement will be queued behind existing announcements. iOS only.\n */\n announceForAccessibilityWithOptions(\n announcement: string,\n options: {queue?: boolean},\n ): void {\n if (Platform.OS === 'android') {\n NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);\n } else {\n if (NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions) {\n NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions(\n announcement,\n options,\n );\n } else {\n NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);\n }\n }\n },\n\n /**\n * Get the recommended timeout for changes to the UI needed by this user.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#getrecommendedtimeoutmillis\n */\n getRecommendedTimeoutMillis(originalTimeout: number): Promise<number> {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityInfoAndroid?.getRecommendedTimeoutMillis) {\n NativeAccessibilityInfoAndroid.getRecommendedTimeoutMillis(\n originalTimeout,\n resolve,\n );\n } else {\n resolve(originalTimeout);\n }\n });\n } else {\n return Promise.resolve(originalTimeout);\n }\n },\n};\n\nexport default AccessibilityInfo;\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 strict\n * @format\n */\n\nimport type {IEventEmitter} from '../vendor/emitter/EventEmitter';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\n// FIXME: use typed events\ntype RCTDeviceEventDefinitions = $FlowFixMe;\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nexport default (new EventEmitter(): IEventEmitter<RCTDeviceEventDefinitions>);\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 strict\n * @format\n */\n\nexport interface EventSubscription {\n remove(): void;\n}\n\nexport interface IEventEmitter<TEventToArgsMap: {...}> {\n addListener<TEvent: $Keys<TEventToArgsMap>>(\n eventType: TEvent,\n listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,\n context?: mixed,\n ): EventSubscription;\n\n emit<TEvent: $Keys<TEventToArgsMap>>(\n eventType: TEvent,\n ...args: $ElementType<TEventToArgsMap, TEvent>\n ): void;\n\n removeAllListeners<TEvent: $Keys<TEventToArgsMap>>(eventType?: ?TEvent): void;\n\n listenerCount<TEvent: $Keys<TEventToArgsMap>>(eventType: TEvent): number;\n}\n\ninterface Registration<TArgs> {\n +context: mixed;\n +listener: (...args: TArgs) => mixed;\n +remove: () => void;\n}\n\ntype Registry<TEventToArgsMap: {...}> = $ObjMap<\n TEventToArgsMap,\n <TArgs>(TArgs) => Set<Registration<TArgs>>,\n>;\n\n/**\n * EventEmitter manages listeners and publishes events to them.\n *\n * EventEmitter accepts a single type parameter that defines the valid events\n * and associated listener argument(s).\n *\n * @example\n *\n * const emitter = new EventEmitter<{\n * success: [number, string],\n * error: [Error],\n * }>();\n *\n * emitter.on('success', (statusCode, responseText) => {...});\n * emitter.emit('success', 200, '...');\n *\n * emitter.on('error', error => {...});\n * emitter.emit('error', new Error('Resource not found'));\n *\n */\nexport default class EventEmitter<TEventToArgsMap: {...}>\n implements IEventEmitter<TEventToArgsMap>\n{\n _registry: Registry<TEventToArgsMap> = {};\n\n /**\n * Registers a listener that is called when the supplied event is emitted.\n * Returns a subscription that has a `remove` method to undo registration.\n */\n addListener<TEvent: $Keys<TEventToArgsMap>>(\n eventType: TEvent,\n listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,\n context: mixed,\n ): EventSubscription {\n const registrations = allocate(this._registry, eventType);\n const registration: Registration<$ElementType<TEventToArgsMap, TEvent>> = {\n context,\n listener,\n remove(): void {\n registrations.delete(registration);\n },\n };\n registrations.add(registration);\n return registration;\n }\n\n /**\n * Emits the supplied event. Additional arguments supplied to `emit` will be\n * passed through to each of the registered listeners.\n *\n * If a listener modifies the listeners registered for the same event, those\n * changes will not be reflected in the current invocation of `emit`.\n */\n emit<TEvent: $Keys<TEventToArgsMap>>(\n eventType: TEvent,\n ...args: $ElementType<TEventToArgsMap, TEvent>\n ): void {\n const registrations: ?Set<\n Registration<$ElementType<TEventToArgsMap, TEvent>>,\n > = this._registry[eventType];\n if (registrations != null) {\n for (const registration of [...registrations]) {\n registration.listener.apply(registration.context, args);\n }\n }\n }\n\n /**\n * Removes all registered listeners.\n */\n removeAllListeners<TEvent: $Keys<TEventToArgsMap>>(\n eventType?: ?TEvent,\n ): void {\n if (eventType == null) {\n this._registry = {};\n } else {\n delete this._registry[eventType];\n }\n }\n\n /**\n * Returns the number of registered listeners for the supplied event.\n */\n listenerCount<TEvent: $Keys<TEventToArgsMap>>(eventType: TEvent): number {\n const registrations: ?Set<Registration<mixed>> = this._registry[eventType];\n return registrations == null ? 0 : registrations.size;\n }\n}\n\nfunction allocate<\n TEventToArgsMap: {...},\n TEvent: $Keys<TEventToArgsMap>,\n TEventArgs: $ElementType<TEventToArgsMap, TEvent>,\n>(\n registry: Registry<TEventToArgsMap>,\n eventType: TEvent,\n): Set<Registration<TEventArgs>> {\n let registrations: ?Set<Registration<TEventArgs>> = registry[eventType];\n if (registrations == null) {\n registrations = new Set();\n registry[eventType] = registrations;\n }\n return registrations;\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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 * @format\n * @flow strict-local\n */\n\n/**\n * This module exists to allow apps to select their renderer implementation\n * (e.g.: Fabric-only, Paper-only) without having to pull all the renderer\n * implementations into their app bundle, which affects app size.\n *\n * By default, the setup will be:\n * -> RendererProxy\n * -> RendererImplementation (which uses Fabric or Paper depending on a flag at runtime)\n *\n * But this will allow a setup like this without duplicating logic:\n * -> RendererProxy (fork)\n * -> RendererImplementation (which uses Fabric or Paper depending on a flag at runtime)\n * or -> OtherImplementation (which uses Fabric only)\n */\n\nexport * from './RendererImplementation';\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {Element, ElementRef, ElementType} from 'react';\n\nimport {type RootTag} from './RootTag';\n\nexport function renderElement({\n element,\n rootTag,\n useFabric,\n useConcurrentRoot,\n}: {\n element: Element<ElementType>,\n rootTag: number,\n useFabric: boolean,\n useConcurrentRoot: boolean,\n}): void {\n if (useFabric) {\n require('../Renderer/shims/ReactFabric').render(\n element,\n rootTag,\n null,\n useConcurrentRoot,\n );\n } else {\n require('../Renderer/shims/ReactNative').render(element, rootTag);\n }\n}\n\nexport function findHostInstance_DEPRECATED<TElementType: ElementType>(\n componentOrHandle: ?(ElementRef<TElementType> | number),\n): ?ElementRef<HostComponent<mixed>> {\n return require('../Renderer/shims/ReactNative').findHostInstance_DEPRECATED(\n componentOrHandle,\n );\n}\n\nexport function findNodeHandle<TElementType: ElementType>(\n componentOrHandle: ?(ElementRef<TElementType> | number),\n): ?number {\n return require('../Renderer/shims/ReactNative').findNodeHandle(\n componentOrHandle,\n );\n}\n\nexport function dispatchCommand(\n handle: ElementRef<HostComponent<mixed>>,\n command: string,\n args: Array<mixed>,\n): void {\n if (global.RN$Bridgeless === true) {\n // Note: this function has the same implementation in the legacy and new renderer.\n // However, evaluating the old renderer comes with some side effects.\n return require('../Renderer/shims/ReactFabric').dispatchCommand(\n handle,\n command,\n args,\n );\n } else {\n return require('../Renderer/shims/ReactNative').dispatchCommand(\n handle,\n command,\n args,\n );\n }\n}\n\nexport function sendAccessibilityEvent(\n handle: ElementRef<HostComponent<mixed>>,\n eventType: string,\n): void {\n return require('../Renderer/shims/ReactNative').sendAccessibilityEvent(\n handle,\n eventType,\n );\n}\n\n/**\n * This method is used by AppRegistry to unmount a root when using the old\n * React Native renderer (Paper).\n */\nexport function unmountComponentAtNodeAndRemoveContainer(rootTag: RootTag) {\n // $FlowExpectedError[incompatible-type] rootTag is an opaque type so we can't really cast it as is.\n const rootTagAsNumber: number = rootTag;\n require('../Renderer/shims/ReactNative').unmountComponentAtNodeAndRemoveContainer(\n rootTagAsNumber,\n );\n}\n\nexport function unstable_batchedUpdates<T>(\n fn: T => void,\n bookkeeping: T,\n): void {\n // This doesn't actually do anything when batching updates for a Fabric root.\n return require('../Renderer/shims/ReactNative').unstable_batchedUpdates(\n fn,\n bookkeeping,\n );\n}\n\nexport function isProfilingRenderer(): boolean {\n return Boolean(__DEV__);\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 * @noformat\n * @flow\n * @generated SignedSource<<ef2742380b2b2c69cea8618289eea086>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {BatchedBridge} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';\n\nimport type {ReactFabricType} from './ReactNativeTypes';\n\nlet ReactFabric;\n\nif (__DEV__) {\n ReactFabric = require('../implementations/ReactFabric-dev');\n} else {\n ReactFabric = require('../implementations/ReactFabric-prod');\n}\n\nif (global.RN$Bridgeless) {\n global.RN$stopSurface = ReactFabric.stopSurface;\n} else {\n BatchedBridge.registerCallableModule('ReactFabric', ReactFabric);\n}\n\nmodule.exports = (ReactFabric: ReactFabricType);\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 * @format\n * @flow strict-local\n */\n\nimport typeof BatchedBridge from '../BatchedBridge/BatchedBridge';\nimport typeof legacySendAccessibilityEvent from '../Components/AccessibilityInfo/legacySendAccessibilityEvent';\nimport typeof TextInputState from '../Components/TextInput/TextInputState';\nimport typeof ExceptionsManager from '../Core/ExceptionsManager';\nimport typeof RawEventEmitter from '../Core/RawEventEmitter';\nimport typeof ReactFiberErrorDialog from '../Core/ReactFiberErrorDialog';\nimport typeof RCTEventEmitter from '../EventEmitter/RCTEventEmitter';\nimport typeof CustomEvent from '../Events/CustomEvent';\nimport typeof UIManager from '../ReactNative/UIManager';\nimport typeof ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';\nimport typeof flattenStyle from '../StyleSheet/flattenStyle';\nimport typeof deepFreezeAndThrowOnMutationInDev from '../Utilities/deepFreezeAndThrowOnMutationInDev';\nimport typeof deepDiffer from '../Utilities/differ/deepDiffer';\nimport typeof Platform from '../Utilities/Platform';\n\nimport {type DangerouslyImpreciseStyleProp} from '../StyleSheet/StyleSheet';\n\n// flowlint unsafe-getters-setters:off\nmodule.exports = {\n get BatchedBridge(): BatchedBridge {\n return require('../BatchedBridge/BatchedBridge');\n },\n get ExceptionsManager(): ExceptionsManager {\n return require('../Core/ExceptionsManager');\n },\n get Platform(): Platform {\n return require('../Utilities/Platform');\n },\n get RCTEventEmitter(): RCTEventEmitter {\n return require('../EventEmitter/RCTEventEmitter');\n },\n get ReactNativeViewConfigRegistry(): ReactNativeViewConfigRegistry {\n return require('../Renderer/shims/ReactNativeViewConfigRegistry');\n },\n get TextInputState(): TextInputState {\n return require('../Components/TextInput/TextInputState');\n },\n get UIManager(): UIManager {\n return require('../ReactNative/UIManager');\n },\n get deepDiffer(): deepDiffer {\n return require('../Utilities/differ/deepDiffer');\n },\n get deepFreezeAndThrowOnMutationInDev(): deepFreezeAndThrowOnMutationInDev<\n {...} | Array<mixed>,\n > {\n return require('../Utilities/deepFreezeAndThrowOnMutationInDev');\n },\n get flattenStyle(): flattenStyle<DangerouslyImpreciseStyleProp> {\n return require('../StyleSheet/flattenStyle');\n },\n get ReactFiberErrorDialog(): ReactFiberErrorDialog {\n return require('../Core/ReactFiberErrorDialog').default;\n },\n get legacySendAccessibilityEvent(): legacySendAccessibilityEvent {\n return require('../Components/AccessibilityInfo/legacySendAccessibilityEvent');\n },\n get RawEventEmitter(): RawEventEmitter {\n return require('../Core/RawEventEmitter').default;\n },\n get CustomEvent(): CustomEvent {\n return require('../Events/CustomEvent').default;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nconst MessageQueue = require('./MessageQueue');\n\nconst BatchedBridge: MessageQueue = new MessageQueue();\n\n// Wire up the batched bridge on the global object so that we can call into it.\n// Ideally, this would be the inverse relationship. I.e. the native environment\n// provides this global directly with its script embedded. Then this module\n// would export it. A possible fix would be to trim the dependencies in\n// MessageQueue to its minimal features and embed that in the native runtime.\n\nObject.defineProperty(global, '__fbBatchedBridge', {\n configurable: true,\n value: BatchedBridge,\n});\n\nmodule.exports = BatchedBridge;\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 strict\n * @format\n */\n\n'use strict';\n\nconst Systrace = require('../Performance/Systrace');\nconst deepFreezeAndThrowOnMutationInDev = require('../Utilities/deepFreezeAndThrowOnMutationInDev');\nconst stringifySafe = require('../Utilities/stringifySafe').default;\nconst warnOnce = require('../Utilities/warnOnce');\nconst ErrorUtils = require('../vendor/core/ErrorUtils');\nconst invariant = require('invariant');\n\nexport type SpyData = {\n type: number,\n module: ?string,\n method: string | number,\n args: mixed[],\n ...\n};\n\nconst TO_JS = 0;\nconst TO_NATIVE = 1;\n\nconst MODULE_IDS = 0;\nconst METHOD_IDS = 1;\nconst PARAMS = 2;\nconst MIN_TIME_BETWEEN_FLUSHES_MS = 5;\n\n// eslint-disable-next-line no-bitwise\nconst TRACE_TAG_REACT_APPS = 1 << 17;\n\nconst DEBUG_INFO_LIMIT = 32;\n\nclass MessageQueue {\n _lazyCallableModules: {[key: string]: (void) => {...}, ...};\n _queue: [number[], number[], mixed[], number];\n _successCallbacks: Map<number, ?(...mixed[]) => void>;\n _failureCallbacks: Map<number, ?(...mixed[]) => void>;\n _callID: number;\n _lastFlush: number;\n _eventLoopStartTime: number;\n _reactNativeMicrotasksCallback: ?() => void;\n\n _debugInfo: {[number]: [number, number], ...};\n _remoteModuleTable: {[number]: string, ...};\n _remoteMethodTable: {[number]: $ReadOnlyArray<string>, ...};\n\n __spy: ?(data: SpyData) => void;\n\n constructor() {\n this._lazyCallableModules = {};\n this._queue = [[], [], [], 0];\n this._successCallbacks = new Map();\n this._failureCallbacks = new Map();\n this._callID = 0;\n this._lastFlush = 0;\n this._eventLoopStartTime = Date.now();\n this._reactNativeMicrotasksCallback = null;\n\n if (__DEV__) {\n this._debugInfo = {};\n this._remoteModuleTable = {};\n this._remoteMethodTable = {};\n }\n\n // $FlowFixMe[cannot-write]\n this.callFunctionReturnFlushedQueue =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.callFunctionReturnFlushedQueue.bind(this);\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.flushedQueue = this.flushedQueue.bind(this);\n\n // $FlowFixMe[cannot-write]\n this.invokeCallbackAndReturnFlushedQueue =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.invokeCallbackAndReturnFlushedQueue.bind(this);\n }\n\n /**\n * Public APIs\n */\n\n static spy(spyOrToggle: boolean | ((data: SpyData) => void)) {\n if (spyOrToggle === true) {\n MessageQueue.prototype.__spy = info => {\n console.log(\n `${info.type === TO_JS ? 'N->JS' : 'JS->N'} : ` +\n `${info.module != null ? info.module + '.' : ''}${info.method}` +\n `(${JSON.stringify(info.args)})`,\n );\n };\n } else if (spyOrToggle === false) {\n MessageQueue.prototype.__spy = null;\n } else {\n MessageQueue.prototype.__spy = spyOrToggle;\n }\n }\n\n callFunctionReturnFlushedQueue(\n module: string,\n method: string,\n args: mixed[],\n ): null | [Array<number>, Array<number>, Array<mixed>, number] {\n this.__guard(() => {\n this.__callFunction(module, method, args);\n });\n\n return this.flushedQueue();\n }\n\n invokeCallbackAndReturnFlushedQueue(\n cbID: number,\n args: mixed[],\n ): null | [Array<number>, Array<number>, Array<mixed>, number] {\n this.__guard(() => {\n this.__invokeCallback(cbID, args);\n });\n\n return this.flushedQueue();\n }\n\n flushedQueue(): null | [Array<number>, Array<number>, Array<mixed>, number] {\n this.__guard(() => {\n this.__callReactNativeMicrotasks();\n });\n\n const queue = this._queue;\n this._queue = [[], [], [], this._callID];\n return queue[0].length ? queue : null;\n }\n\n getEventLoopRunningTime(): number {\n return Date.now() - this._eventLoopStartTime;\n }\n\n registerCallableModule(name: string, module: {...}) {\n this._lazyCallableModules[name] = () => module;\n }\n\n registerLazyCallableModule(name: string, factory: void => interface {}) {\n let module: interface {};\n let getValue: ?(void) => interface {} = factory;\n this._lazyCallableModules[name] = () => {\n if (getValue) {\n module = getValue();\n getValue = null;\n }\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n return module;\n };\n }\n\n getCallableModule(name: string): {...} | null {\n const getValue = this._lazyCallableModules[name];\n return getValue ? getValue() : null;\n }\n\n callNativeSyncHook(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): mixed {\n if (__DEV__) {\n invariant(\n global.nativeCallSyncHook,\n 'Calling synchronous methods on native ' +\n 'modules is not supported in Chrome.\\n\\n Consider providing alternative ' +\n 'methods to expose this method in debug mode, e.g. by exposing constants ' +\n 'ahead-of-time.',\n );\n }\n this.processCallbacks(moduleID, methodID, params, onFail, onSucc);\n return global.nativeCallSyncHook(moduleID, methodID, params);\n }\n\n processCallbacks(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): void {\n if (onFail || onSucc) {\n if (__DEV__) {\n this._debugInfo[this._callID] = [moduleID, methodID];\n if (this._callID > DEBUG_INFO_LIMIT) {\n delete this._debugInfo[this._callID - DEBUG_INFO_LIMIT];\n }\n if (this._successCallbacks.size > 500) {\n const info: {[number]: {method: string, module: string}} = {};\n this._successCallbacks.forEach((_, callID) => {\n const debug = this._debugInfo[callID];\n const module = debug && this._remoteModuleTable[debug[0]];\n const method = debug && this._remoteMethodTable[debug[0]][debug[1]];\n info[callID] = {module, method};\n });\n warnOnce(\n 'excessive-number-of-pending-callbacks',\n `Please report: Excessive number of pending callbacks: ${\n this._successCallbacks.size\n }. Some pending callbacks that might have leaked by never being called from native code: ${stringifySafe(\n info,\n )}`,\n );\n }\n }\n // Encode callIDs into pairs of callback identifiers by shifting left and using the rightmost bit\n // to indicate fail (0) or success (1)\n // eslint-disable-next-line no-bitwise\n onFail && params.push(this._callID << 1);\n // eslint-disable-next-line no-bitwise\n onSucc && params.push((this._callID << 1) | 1);\n this._successCallbacks.set(this._callID, onSucc);\n this._failureCallbacks.set(this._callID, onFail);\n }\n if (__DEV__) {\n global.nativeTraceBeginAsyncFlow &&\n global.nativeTraceBeginAsyncFlow(\n TRACE_TAG_REACT_APPS,\n 'native',\n this._callID,\n );\n }\n this._callID++;\n }\n\n enqueueNativeCall(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): void {\n this.processCallbacks(moduleID, methodID, params, onFail, onSucc);\n\n this._queue[MODULE_IDS].push(moduleID);\n this._queue[METHOD_IDS].push(methodID);\n\n if (__DEV__) {\n // Validate that parameters passed over the bridge are\n // folly-convertible. As a special case, if a prop value is a\n // function it is permitted here, and special-cased in the\n // conversion.\n const isValidArgument = (val: mixed): boolean => {\n switch (typeof val) {\n case 'undefined':\n case 'boolean':\n case 'string':\n return true;\n case 'number':\n return isFinite(val);\n case 'object':\n if (val == null) {\n return true;\n }\n\n if (Array.isArray(val)) {\n return val.every(isValidArgument);\n }\n\n for (const k in val) {\n if (typeof val[k] !== 'function' && !isValidArgument(val[k])) {\n return false;\n }\n }\n\n return true;\n case 'function':\n return false;\n default:\n return false;\n }\n };\n\n // Replacement allows normally non-JSON-convertible values to be\n // seen. There is ambiguity with string values, but in context,\n // it should at least be a strong hint.\n const replacer = (key: string, val: $FlowFixMe) => {\n const t = typeof val;\n if (t === 'function') {\n return '<<Function ' + val.name + '>>';\n } else if (t === 'number' && !isFinite(val)) {\n return '<<' + val.toString() + '>>';\n } else {\n return val;\n }\n };\n\n // Note that JSON.stringify\n invariant(\n isValidArgument(params),\n '%s is not usable as a native method argument',\n JSON.stringify(params, replacer),\n );\n\n // The params object should not be mutated after being queued\n deepFreezeAndThrowOnMutationInDev(params);\n }\n this._queue[PARAMS].push(params);\n\n const now = Date.now();\n if (\n global.nativeFlushQueueImmediate &&\n now - this._lastFlush >= MIN_TIME_BETWEEN_FLUSHES_MS\n ) {\n const queue = this._queue;\n this._queue = [[], [], [], this._callID];\n this._lastFlush = now;\n global.nativeFlushQueueImmediate(queue);\n }\n Systrace.counterEvent('pending_js_to_native_queue', this._queue[0].length);\n if (__DEV__ && this.__spy && isFinite(moduleID)) {\n // $FlowFixMe[not-a-function]\n this.__spy({\n type: TO_NATIVE,\n module: this._remoteModuleTable[moduleID],\n method: this._remoteMethodTable[moduleID][methodID],\n args: params,\n });\n } else if (this.__spy) {\n this.__spy({\n type: TO_NATIVE,\n module: moduleID + '',\n method: methodID,\n args: params,\n });\n }\n }\n\n createDebugLookup(\n moduleID: number,\n name: string,\n methods: ?$ReadOnlyArray<string>,\n ) {\n if (__DEV__) {\n this._remoteModuleTable[moduleID] = name;\n this._remoteMethodTable[moduleID] = methods || [];\n }\n }\n\n // For JSTimers to register its callback. Otherwise a circular dependency\n // between modules is introduced. Note that only one callback may be\n // registered at a time.\n setReactNativeMicrotasksCallback(fn: () => void) {\n this._reactNativeMicrotasksCallback = fn;\n }\n\n /**\n * Private methods\n */\n\n __guard(fn: () => void) {\n if (this.__shouldPauseOnThrow()) {\n fn();\n } else {\n try {\n fn();\n } catch (error) {\n ErrorUtils.reportFatalError(error);\n }\n }\n }\n\n // MessageQueue installs a global handler to catch all exceptions where JS users can register their own behavior\n // This handler makes all exceptions to be propagated from inside MessageQueue rather than by the VM at their origin\n // This makes stacktraces to be placed at MessageQueue rather than at where they were launched\n // The parameter DebuggerInternal.shouldPauseOnThrow is used to check before catching all exceptions and\n // can be configured by the VM or any Inspector\n __shouldPauseOnThrow(): boolean {\n return (\n // $FlowFixMe[cannot-resolve-name]\n typeof DebuggerInternal !== 'undefined' &&\n DebuggerInternal.shouldPauseOnThrow === true\n );\n }\n\n __callReactNativeMicrotasks() {\n Systrace.beginEvent('JSTimers.callReactNativeMicrotasks()');\n if (this._reactNativeMicrotasksCallback != null) {\n this._reactNativeMicrotasksCallback();\n }\n Systrace.endEvent();\n }\n\n __callFunction(module: string, method: string, args: mixed[]): void {\n this._lastFlush = Date.now();\n this._eventLoopStartTime = this._lastFlush;\n if (__DEV__ || this.__spy) {\n Systrace.beginEvent(`${module}.${method}(${stringifySafe(args)})`);\n } else {\n Systrace.beginEvent(`${module}.${method}(...)`);\n }\n if (this.__spy) {\n this.__spy({type: TO_JS, module, method, args});\n }\n const moduleMethods = this.getCallableModule(module);\n if (!moduleMethods) {\n const callableModuleNames = Object.keys(this._lazyCallableModules);\n const n = callableModuleNames.length;\n const callableModuleNameList = callableModuleNames.join(', ');\n\n // TODO(T122225939): Remove after investigation: Why are we getting to this line in bridgeless mode?\n const isBridgelessMode = global.RN$Bridgeless === true ? 'true' : 'false';\n invariant(\n false,\n `Failed to call into JavaScript module method ${module}.${method}(). Module has not been registered as callable. Bridgeless Mode: ${isBridgelessMode}. Registered callable JavaScript modules (n = ${n}): ${callableModuleNameList}.\n A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.`,\n );\n }\n if (!moduleMethods[method]) {\n invariant(\n false,\n `Failed to call into JavaScript module method ${module}.${method}(). Module exists, but the method is undefined.`,\n );\n }\n moduleMethods[method].apply(moduleMethods, args);\n Systrace.endEvent();\n }\n\n __invokeCallback(cbID: number, args: mixed[]): void {\n this._lastFlush = Date.now();\n this._eventLoopStartTime = this._lastFlush;\n\n // The rightmost bit of cbID indicates fail (0) or success (1), the other bits are the callID shifted left.\n // eslint-disable-next-line no-bitwise\n const callID = cbID >>> 1;\n // eslint-disable-next-line no-bitwise\n const isSuccess = cbID & 1;\n const callback = isSuccess\n ? this._successCallbacks.get(callID)\n : this._failureCallbacks.get(callID);\n\n if (__DEV__) {\n const debug = this._debugInfo[callID];\n const module = debug && this._remoteModuleTable[debug[0]];\n const method = debug && this._remoteMethodTable[debug[0]][debug[1]];\n invariant(\n callback,\n `No callback found with cbID ${cbID} and callID ${callID} for ` +\n (method\n ? ` ${module}.${method} - most likely the callback was already invoked`\n : `module ${module || '<unknown>'}`) +\n `. Args: '${stringifySafe(args)}'`,\n );\n const profileName = debug\n ? '<callback for ' + module + '.' + method + '>'\n : cbID;\n if (callback && this.__spy) {\n this.__spy({type: TO_JS, module: null, method: profileName, args});\n }\n Systrace.beginEvent(\n `MessageQueue.invokeCallback(${profileName}, ${stringifySafe(args)})`,\n );\n }\n\n if (!callback) {\n return;\n }\n\n this._successCallbacks.delete(callID);\n this._failureCallbacks.delete(callID);\n callback(...args);\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n }\n}\n\nmodule.exports = MessageQueue;\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 strict\n * @format\n */\n\nimport typeof * as SystraceModule from './Systrace';\n\nconst TRACE_TAG_REACT_APPS = 1 << 17; // eslint-disable-line no-bitwise\n\nlet _asyncCookie = 0;\n\ntype EventName = string | (() => string);\ntype EventArgs = ?{[string]: string};\n\n/**\n * Indicates if the application is currently being traced.\n *\n * Calling methods on this module when the application isn't being traced is\n * cheap, but this method can be used to avoid computing expensive values for\n * those functions.\n *\n * @example\n * if (Systrace.isEnabled()) {\n * const expensiveArgs = computeExpensiveArgs();\n * Systrace.beginEvent('myEvent', expensiveArgs);\n * }\n */\nexport function isEnabled(): boolean {\n return global.nativeTraceIsTracing\n ? global.nativeTraceIsTracing(TRACE_TAG_REACT_APPS)\n : Boolean(global.__RCTProfileIsProfiling);\n}\n\n/**\n * @deprecated This function is now a no-op but it's left for backwards\n * compatibility. `isEnabled` will now synchronously check if we're actively\n * profiling or not. This is necessary because we don't have callbacks to know\n * when profiling has started/stopped on Android APIs.\n */\nexport function setEnabled(_doEnable: boolean): void {}\n\n/**\n * Marks the start of a synchronous event that should end in the same stack\n * frame. The end of this event should be marked using the `endEvent` function.\n */\nexport function beginEvent(eventName: EventName, args?: EventArgs): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceBeginSection(TRACE_TAG_REACT_APPS, eventNameString, args);\n }\n}\n\n/**\n * Marks the end of a synchronous event started in the same stack frame.\n */\nexport function endEvent(args?: EventArgs): void {\n if (isEnabled()) {\n global.nativeTraceEndSection(TRACE_TAG_REACT_APPS, args);\n }\n}\n\n/**\n * Marks the start of a potentially asynchronous event. The end of this event\n * should be marked calling the `endAsyncEvent` function with the cookie\n * returned by this function.\n */\nexport function beginAsyncEvent(\n eventName: EventName,\n args?: EventArgs,\n): number {\n const cookie = _asyncCookie;\n if (isEnabled()) {\n _asyncCookie++;\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceBeginAsyncSection(\n TRACE_TAG_REACT_APPS,\n eventNameString,\n cookie,\n args,\n );\n }\n return cookie;\n}\n\n/**\n * Marks the end of a potentially asynchronous event, which was started with\n * the given cookie.\n */\nexport function endAsyncEvent(\n eventName: EventName,\n cookie: number,\n args?: EventArgs,\n): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceEndAsyncSection(\n TRACE_TAG_REACT_APPS,\n eventNameString,\n cookie,\n args,\n );\n }\n}\n\n/**\n * Registers a new value for a counter event.\n */\nexport function counterEvent(eventName: EventName, value: number): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceCounter &&\n global.nativeTraceCounter(TRACE_TAG_REACT_APPS, eventNameString, value);\n }\n}\n\nif (__DEV__) {\n const Systrace: SystraceModule = {\n isEnabled,\n setEnabled,\n beginEvent,\n endEvent,\n beginAsyncEvent,\n endAsyncEvent,\n counterEvent,\n };\n\n // The metro require polyfill can not have dependencies (true for all polyfills).\n // Ensure that `Systrace` is available in polyfill by exposing it globally.\n global[(global.__METRO_GLOBAL_PREFIX__ || '') + '__SYSTRACE'] = Systrace;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * If your application is accepting different values for the same field over\n * time and is doing a diff on them, you can either (1) create a copy or\n * (2) ensure that those values are not mutated behind two passes.\n * This function helps you with (2) by freezing the object and throwing if\n * the user subsequently modifies the value.\n *\n * There are two caveats with this function:\n * - If the call site is not in strict mode, it will only throw when\n * mutating existing fields, adding a new one\n * will unfortunately fail silently :(\n * - If the object is already frozen or sealed, it will not continue the\n * deep traversal and will leave leaf nodes unfrozen.\n *\n * Freezing the object and adding the throw mechanism is expensive and will\n * only be used in DEV.\n */\nfunction deepFreezeAndThrowOnMutationInDev<T: {...} | Array<mixed>>(\n object: T,\n): T {\n if (__DEV__) {\n if (\n typeof object !== 'object' ||\n object === null ||\n Object.isFrozen(object) ||\n Object.isSealed(object)\n ) {\n return object;\n }\n\n // $FlowFixMe[not-an-object] `object` can be an array, but Object.keys works with arrays too\n const keys = Object.keys((object: {...} | Array<mixed>));\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n Object.defineProperty(object, key, {\n get: identity.bind(null, object[key]),\n });\n Object.defineProperty(object, key, {\n set: throwOnImmutableMutation.bind(null, key),\n });\n }\n }\n\n Object.freeze(object);\n Object.seal(object);\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n deepFreezeAndThrowOnMutationInDev(object[key]);\n }\n }\n }\n return object;\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction throwOnImmutableMutation(key: empty, value) {\n throw Error(\n 'You attempted to set the key `' +\n key +\n '` with the value `' +\n JSON.stringify(value) +\n '` on an object that is meant to be immutable ' +\n 'and has been frozen.',\n );\n}\n\nfunction identity(value: mixed) {\n return value;\n}\n\nmodule.exports = deepFreezeAndThrowOnMutationInDev;\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 * @format\n * @flow strict\n */\n\nimport invariant from 'invariant';\n\n/**\n * Tries to stringify with JSON.stringify and toString, but catches exceptions\n * (e.g. from circular objects) and always returns a string and never throws.\n */\nexport function createStringifySafeWithLimits(limits: {|\n maxDepth?: number,\n maxStringLimit?: number,\n maxArrayLimit?: number,\n maxObjectKeysLimit?: number,\n|}): mixed => string {\n const {\n maxDepth = Number.POSITIVE_INFINITY,\n maxStringLimit = Number.POSITIVE_INFINITY,\n maxArrayLimit = Number.POSITIVE_INFINITY,\n maxObjectKeysLimit = Number.POSITIVE_INFINITY,\n } = limits;\n const stack: Array<\n string | {+[string]: mixed} | {'...(truncated keys)...': number},\n > = [];\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n function replacer(key: string, value: mixed): mixed {\n while (stack.length && this !== stack[0]) {\n stack.shift();\n }\n\n if (typeof value === 'string') {\n const truncatedString = '...(truncated)...';\n if (value.length > maxStringLimit + truncatedString.length) {\n return value.substring(0, maxStringLimit) + truncatedString;\n }\n return value;\n }\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n\n let retval:\n | string\n | {+[string]: mixed}\n | $TEMPORARY$object<{'...(truncated keys)...': number}> = value;\n if (Array.isArray(value)) {\n if (stack.length >= maxDepth) {\n retval = `[ ... array with ${value.length} values ... ]`;\n } else if (value.length > maxArrayLimit) {\n retval = value\n .slice(0, maxArrayLimit)\n .concat([\n `... extra ${value.length - maxArrayLimit} values truncated ...`,\n ]);\n }\n } else {\n // Add refinement after Array.isArray call.\n invariant(typeof value === 'object', 'This was already found earlier');\n let keys = Object.keys(value);\n if (stack.length >= maxDepth) {\n retval = `{ ... object with ${keys.length} keys ... }`;\n } else if (keys.length > maxObjectKeysLimit) {\n // Return a sample of the keys.\n retval = ({}: {[string]: mixed});\n for (let k of keys.slice(0, maxObjectKeysLimit)) {\n retval[k] = value[k];\n }\n const truncatedKey = '...(truncated keys)...';\n retval[truncatedKey] = keys.length - maxObjectKeysLimit;\n }\n }\n stack.unshift(retval);\n return retval;\n }\n\n return function stringifySafe(arg: mixed): string {\n if (arg === undefined) {\n return 'undefined';\n } else if (arg === null) {\n return 'null';\n } else if (typeof arg === 'function') {\n try {\n return arg.toString();\n } catch (e) {\n return '[function unknown]';\n }\n } else if (arg instanceof Error) {\n return arg.name + ': ' + arg.message;\n } else {\n // Perform a try catch, just in case the object has a circular\n // reference or stringify throws for some other reason.\n try {\n const ret = JSON.stringify(arg, replacer);\n if (ret === undefined) {\n return '[\"' + typeof arg + '\" failed to stringify]';\n }\n return ret;\n } catch (e) {\n if (typeof arg.toString === 'function') {\n try {\n // $FlowFixMe[incompatible-use] : toString shouldn't take any arguments in general.\n return arg.toString();\n } catch (E) {}\n }\n }\n }\n return '[\"' + typeof arg + '\" failed to stringify]';\n };\n}\n\nconst stringifySafe: mixed => string = createStringifySafeWithLimits({\n maxDepth: 10,\n maxStringLimit: 100,\n maxArrayLimit: 50,\n maxObjectKeysLimit: 50,\n});\n\nexport default stringifySafe;\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 * @format\n * @flow strict\n */\n\nimport type {ErrorUtilsT} from '@react-native/polyfills/error-guard';\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n *\n * However, we still want to treat ErrorUtils as a module so that other modules\n * that use it aren't just using a global variable, so simply export the global\n * variable here. ErrorUtils is originally defined in a file named error-guard.js.\n */\nmodule.exports = (global.ErrorUtils: ErrorUtilsT);\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {ExtendedError} from './ExtendedError';\nimport type {ExceptionData} from './NativeExceptionsManager';\n\nclass SyntheticError extends Error {\n name: string = '';\n}\n\ntype ExceptionDecorator = ExceptionData => ExceptionData;\n\nlet userExceptionDecorator: ?ExceptionDecorator;\nlet inUserExceptionDecorator = false;\n\n// This Symbol is used to decorate an ExtendedError with extra data in select usecases.\n// Note that data passed using this method should be strictly contained,\n// as data that's not serializable/too large may cause issues with passing the error to the native code.\nconst decoratedExtraDataKey: symbol = Symbol('decoratedExtraDataKey');\n\n/**\n * Allows the app to add information to the exception report before it is sent\n * to native. This API is not final.\n */\n\nfunction unstable_setExceptionDecorator(\n exceptionDecorator: ?ExceptionDecorator,\n) {\n userExceptionDecorator = exceptionDecorator;\n}\n\nfunction preprocessException(data: ExceptionData): ExceptionData {\n if (userExceptionDecorator && !inUserExceptionDecorator) {\n inUserExceptionDecorator = true;\n try {\n return userExceptionDecorator(data);\n } catch {\n // Fall through\n } finally {\n inUserExceptionDecorator = false;\n }\n }\n return data;\n}\n\n/**\n * Handles the developer-visible aspect of errors and exceptions\n */\nlet exceptionID = 0;\nfunction reportException(\n e: ExtendedError,\n isFatal: boolean,\n reportToConsole: boolean, // only true when coming from handleException; the error has not yet been logged\n) {\n const parseErrorStack = require('./Devtools/parseErrorStack');\n const stack = parseErrorStack(e?.stack);\n const currentExceptionID = ++exceptionID;\n const originalMessage = e.message || '';\n let message = originalMessage;\n if (e.componentStack != null) {\n message += `\\n\\nThis error is located at:${e.componentStack}`;\n }\n const namePrefix = e.name == null || e.name === '' ? '' : `${e.name}: `;\n\n if (!message.startsWith(namePrefix)) {\n message = namePrefix + message;\n }\n\n message =\n e.jsEngine == null ? message : `${message}, js engine: ${e.jsEngine}`;\n\n const data = preprocessException({\n message,\n originalMessage: message === originalMessage ? null : originalMessage,\n name: e.name == null || e.name === '' ? null : e.name,\n componentStack:\n typeof e.componentStack === 'string' ? e.componentStack : null,\n stack,\n id: currentExceptionID,\n isFatal,\n extraData: {\n // $FlowFixMe[incompatible-use] we can't define a type with a Symbol-keyed field in flow\n ...e[decoratedExtraDataKey],\n jsEngine: e.jsEngine,\n rawStack: e.stack,\n },\n });\n\n if (reportToConsole) {\n // we feed back into console.error, to make sure any methods that are\n // monkey patched on top of console.error are called when coming from\n // handleException\n console.error(data.message);\n }\n\n if (__DEV__) {\n const LogBox = require('../LogBox/LogBox');\n LogBox.addException({\n ...data,\n isComponentError: !!e.isComponentError,\n });\n } else if (isFatal || e.type !== 'warn') {\n const NativeExceptionsManager =\n require('./NativeExceptionsManager').default;\n if (NativeExceptionsManager) {\n NativeExceptionsManager.reportException(data);\n }\n }\n}\n\ndeclare var console: typeof console & {\n _errorOriginal: typeof console.error,\n reportErrorsAsExceptions: boolean,\n ...\n};\n\n// If we trigger console.error _from_ handleException,\n// we do want to make sure that console.error doesn't trigger error reporting again\nlet inExceptionHandler = false;\n\n/**\n * Logs exceptions to the (native) console and displays them\n */\nfunction handleException(e: mixed, isFatal: boolean) {\n let error: Error;\n if (e instanceof Error) {\n error = e;\n } else {\n // Workaround for reporting errors caused by `throw 'some string'`\n // Unfortunately there is no way to figure out the stacktrace in this\n // case, so if you ended up here trying to trace an error, look for\n // `throw '<error message>'` somewhere in your codebase.\n error = new SyntheticError(e);\n }\n try {\n inExceptionHandler = true;\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n reportException(error, isFatal, /*reportToConsole*/ true);\n } finally {\n inExceptionHandler = false;\n }\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction reactConsoleErrorHandler(...args) {\n // bubble up to any original handlers\n console._errorOriginal(...args);\n if (!console.reportErrorsAsExceptions) {\n return;\n }\n if (inExceptionHandler) {\n // The fundamental trick here is that are multiple entry point to logging errors:\n // (see D19743075 for more background)\n //\n // 1. An uncaught exception being caught by the global handler\n // 2. An error being logged throw console.error\n //\n // However, console.error is monkey patched multiple times: by this module, and by the\n // DevTools setup that sends messages to Metro.\n // The patching order cannot be relied upon.\n //\n // So, some scenarios that are handled by this flag:\n //\n // Logging an error:\n // 1. console.error called from user code\n // 2. (possibly) arrives _first_ at DevTool handler, send to Metro\n // 3. Bubbles to here\n // 4. goes into report Exception.\n // 5. should not trigger console.error again, to avoid looping / logging twice\n // 6. should still bubble up to original console\n // (which might either be console.log, or the DevTools handler in case it patched _earlier_ and (2) didn't happen)\n //\n // Throwing an uncaught exception:\n // 1. exception thrown\n // 2. picked up by handleException\n // 3. should be send to console.error (not console._errorOriginal, as DevTools might have patched _later_ and it needs to send it to Metro)\n // 4. that _might_ bubble again to the `reactConsoleErrorHandle` defined here\n // -> should not handle exception _again_, to avoid looping / showing twice (this code branch)\n // 5. should still bubble up to original console (which might either be console.log, or the DevTools handler in case that one patched _earlier_)\n return;\n }\n\n let error;\n\n const firstArg = args[0];\n if (firstArg?.stack) {\n // reportException will console.error this with high enough fidelity.\n error = firstArg;\n } else {\n const stringifySafe = require('../Utilities/stringifySafe').default;\n if (typeof firstArg === 'string' && firstArg.startsWith('Warning: ')) {\n // React warnings use console.error so that a stack trace is shown, but\n // we don't (currently) want these to show a redbox\n // (Note: Logic duplicated in polyfills/console.js.)\n return;\n }\n const message = args\n .map(arg => (typeof arg === 'string' ? arg : stringifySafe(arg)))\n .join(' ');\n\n error = new SyntheticError(message);\n error.name = 'console.error';\n }\n\n reportException(\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n error,\n false, // isFatal\n false, // reportToConsole\n );\n}\n\n/**\n * Shows a redbox with stacktrace for all console.error messages. Disable by\n * setting `console.reportErrorsAsExceptions = false;` in your app.\n */\nfunction installConsoleErrorReporter() {\n // Enable reportErrorsAsExceptions\n if (console._errorOriginal) {\n return; // already installed\n }\n // Flow doesn't like it when you set arbitrary values on a global object\n console._errorOriginal = console.error.bind(console);\n console.error = reactConsoleErrorHandler;\n if (console.reportErrorsAsExceptions === undefined) {\n // Individual apps can disable this\n // Flow doesn't like it when you set arbitrary values on a global object\n console.reportErrorsAsExceptions = true;\n }\n}\n\nmodule.exports = {\n decoratedExtraDataKey,\n handleException,\n installConsoleErrorReporter,\n SyntheticError,\n unstable_setExceptionDecorator,\n};\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {StackFrame} from '../NativeExceptionsManager';\nimport type {HermesParsedStack} from './parseHermesStack';\n\nconst parseHermesStack = require('./parseHermesStack');\n\nfunction convertHermesStack(stack: HermesParsedStack): Array<StackFrame> {\n const frames: Array<StackFrame> = [];\n for (const entry of stack.entries) {\n if (entry.type !== 'FRAME') {\n continue;\n }\n const {location, functionName} = entry;\n if (location.type === 'NATIVE') {\n continue;\n }\n frames.push({\n methodName: functionName,\n file: location.sourceUrl,\n lineNumber: location.line1Based,\n column:\n location.type === 'SOURCE'\n ? location.column1Based - 1\n : location.virtualOffset0Based,\n });\n }\n return frames;\n}\n\nfunction parseErrorStack(errorStack?: string): Array<StackFrame> {\n if (errorStack == null) {\n return [];\n }\n\n const stacktraceParser = require('stacktrace-parser');\n const parsedStack = Array.isArray(errorStack)\n ? errorStack\n : global.HermesInternal\n ? convertHermesStack(parseHermesStack(errorStack))\n : stacktraceParser.parse(errorStack).map(frame => ({\n ...frame,\n column: frame.column != null ? frame.column - 1 : null,\n }));\n\n return parsedStack;\n}\n\nmodule.exports = parseErrorStack;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\ntype HermesStackLocationNative = {|\n +type: 'NATIVE',\n|};\n\ntype HermesStackLocationSource = {|\n +type: 'SOURCE',\n +sourceUrl: string,\n +line1Based: number,\n +column1Based: number,\n|};\n\ntype HermesStackLocationBytecode = {|\n +type: 'BYTECODE',\n +sourceUrl: string,\n +line1Based: number,\n +virtualOffset0Based: number,\n|};\n\ntype HermesStackLocation =\n | HermesStackLocationNative\n | HermesStackLocationSource\n | HermesStackLocationBytecode;\n\ntype HermesStackEntryFrame = {|\n +type: 'FRAME',\n +location: HermesStackLocation,\n +functionName: string,\n|};\n\ntype HermesStackEntrySkipped = {|\n +type: 'SKIPPED',\n +count: number,\n|};\n\ntype HermesStackEntry = HermesStackEntryFrame | HermesStackEntrySkipped;\n\nexport type HermesParsedStack = {|\n +message: string,\n +entries: $ReadOnlyArray<HermesStackEntry>,\n|};\n\n// Capturing groups:\n// 1. function name\n// 2. is this a native stack frame?\n// 3. is this a bytecode address or a source location?\n// 4. source URL (filename)\n// 5. line number (1 based)\n// 6. column number (1 based) or virtual offset (0 based)\nconst RE_FRAME =\n /^ {4}at (.+?)(?: \\((native)\\)?| \\((address at )?(.*?):(\\d+):(\\d+)\\))$/;\n\n// Capturing groups:\n// 1. count of skipped frames\nconst RE_SKIPPED = /^ {4}... skipping (\\d+) frames$/;\n\nfunction parseLine(line: string): ?HermesStackEntry {\n const asFrame = line.match(RE_FRAME);\n if (asFrame) {\n return {\n type: 'FRAME',\n functionName: asFrame[1],\n location:\n asFrame[2] === 'native'\n ? {type: 'NATIVE'}\n : asFrame[3] === 'address at '\n ? {\n type: 'BYTECODE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n virtualOffset0Based: Number.parseInt(asFrame[6], 10),\n }\n : {\n type: 'SOURCE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n column1Based: Number.parseInt(asFrame[6], 10),\n },\n };\n }\n const asSkipped = line.match(RE_SKIPPED);\n if (asSkipped) {\n return {\n type: 'SKIPPED',\n count: Number.parseInt(asSkipped[1], 10),\n };\n }\n}\n\nmodule.exports = function parseHermesStack(stack: string): HermesParsedStack {\n const lines = stack.split(/\\n/);\n let entries: Array<HermesStackEntryFrame | HermesStackEntrySkipped> = [];\n let lastMessageLine = -1;\n for (let i = 0; i < lines.length; ++i) {\n const line = lines[i];\n if (!line) {\n continue;\n }\n const entry = parseLine(line);\n if (entry) {\n entries.push(entry);\n continue;\n }\n // No match - we're still in the message\n lastMessageLine = i;\n entries = [];\n }\n const message = lines.slice(0, lastMessageLine + 1).join('\\n');\n return {message, entries};\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar UNKNOWN_FUNCTION = '<unknown>';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexports.parse = parse;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nconst Platform = require('../Utilities/Platform');\n\nexport type StackFrame = {|\n column: ?number,\n file: ?string,\n lineNumber: ?number,\n methodName: string,\n collapse?: boolean,\n|};\nexport type ExceptionData = {\n message: string,\n originalMessage: ?string,\n name: ?string,\n componentStack: ?string,\n stack: Array<StackFrame>,\n id: number,\n isFatal: boolean,\n // flowlint-next-line unclear-type:off\n extraData?: Object,\n ...\n};\nexport interface Spec extends TurboModule {\n // Deprecated: Use `reportException`\n +reportFatalException: (\n message: string,\n stack: Array<StackFrame>,\n exceptionId: number,\n ) => void;\n // Deprecated: Use `reportException`\n +reportSoftException: (\n message: string,\n stack: Array<StackFrame>,\n exceptionId: number,\n ) => void;\n +reportException?: (data: ExceptionData) => void;\n +updateExceptionMessage: (\n message: string,\n stack: Array<StackFrame>,\n exceptionId: number,\n ) => void;\n // TODO(T53311281): This is a noop on iOS now. Implement it.\n +dismissRedbox?: () => void;\n}\n\nconst NativeModule =\n TurboModuleRegistry.getEnforcing<Spec>('ExceptionsManager');\n\nconst ExceptionsManager = {\n reportFatalException(\n message: string,\n stack: Array<StackFrame>,\n exceptionId: number,\n ) {\n NativeModule.reportFatalException(message, stack, exceptionId);\n },\n reportSoftException(\n message: string,\n stack: Array<StackFrame>,\n exceptionId: number,\n ) {\n NativeModule.reportSoftException(message, stack, exceptionId);\n },\n updateExceptionMessage(\n message: string,\n stack: Array<StackFrame>,\n exceptionId: number,\n ) {\n NativeModule.updateExceptionMessage(message, stack, exceptionId);\n },\n dismissRedbox(): void {\n if (Platform.OS !== 'ios' && NativeModule.dismissRedbox) {\n // TODO(T53311281): This is a noop on iOS now. Implement it.\n NativeModule.dismissRedbox();\n }\n },\n reportException(data: ExceptionData): void {\n if (NativeModule.reportException) {\n NativeModule.reportException(data);\n return;\n }\n if (data.isFatal) {\n ExceptionsManager.reportFatalException(data.message, data.stack, data.id);\n } else {\n ExceptionsManager.reportSoftException(data.message, data.stack, data.id);\n }\n },\n};\n\nexport default ExceptionsManager;\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 strict\n * @format\n */\n\nimport type {TurboModule} from './RCTExport';\n\nimport invariant from 'invariant';\n\nconst NativeModules = require('../BatchedBridge/NativeModules');\n\nconst turboModuleProxy = global.__turboModuleProxy;\n\nfunction requireModule<T: TurboModule>(name: string): ?T {\n // Bridgeless mode requires TurboModules\n if (global.RN$Bridgeless !== true) {\n // Backward compatibility layer during migration.\n const legacyModule = NativeModules[name];\n if (legacyModule != null) {\n return ((legacyModule: $FlowFixMe): T);\n }\n }\n\n if (turboModuleProxy != null) {\n const module: ?T = turboModuleProxy(name);\n return module;\n }\n\n return null;\n}\n\nexport function get<T: TurboModule>(name: string): ?T {\n return requireModule<T>(name);\n}\n\nexport function getEnforcing<T: TurboModule>(name: string): T {\n const module = requireModule<T>(name);\n invariant(\n module != null,\n `TurboModuleRegistry.getEnforcing(...): '${name}' could not be found. ` +\n 'Verify that a module by this name is registered in the native binary.',\n );\n return module;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {ExtendedError} from '../Core/ExtendedError';\n\nconst BatchedBridge = require('./BatchedBridge');\nconst invariant = require('invariant');\n\nexport type ModuleConfig = [\n string /* name */,\n ?{...} /* constants */,\n ?$ReadOnlyArray<string> /* functions */,\n ?$ReadOnlyArray<number> /* promise method IDs */,\n ?$ReadOnlyArray<number> /* sync method IDs */,\n];\n\nexport type MethodType = 'async' | 'promise' | 'sync';\n\nfunction genModule(\n config: ?ModuleConfig,\n moduleID: number,\n): ?{\n name: string,\n module?: {...},\n ...\n} {\n if (!config) {\n return null;\n }\n\n const [moduleName, constants, methods, promiseMethods, syncMethods] = config;\n invariant(\n !moduleName.startsWith('RCT') && !moduleName.startsWith('RK'),\n \"Module name prefixes should've been stripped by the native side \" +\n \"but wasn't for \" +\n moduleName,\n );\n\n if (!constants && !methods) {\n // Module contents will be filled in lazily later\n return {name: moduleName};\n }\n\n const module: {[string]: mixed} = {};\n methods &&\n methods.forEach((methodName, methodID) => {\n const isPromise =\n (promiseMethods && arrayContains(promiseMethods, methodID)) || false;\n const isSync =\n (syncMethods && arrayContains(syncMethods, methodID)) || false;\n invariant(\n !isPromise || !isSync,\n 'Cannot have a method that is both async and a sync hook',\n );\n const methodType = isPromise ? 'promise' : isSync ? 'sync' : 'async';\n module[methodName] = genMethod(moduleID, methodID, methodType);\n });\n\n Object.assign(module, constants);\n\n if (module.getConstants == null) {\n module.getConstants = () => constants || Object.freeze({});\n } else {\n console.warn(\n `Unable to define method 'getConstants()' on NativeModule '${moduleName}'. NativeModule '${moduleName}' already has a constant or method called 'getConstants'. Please remove it.`,\n );\n }\n\n if (__DEV__) {\n BatchedBridge.createDebugLookup(moduleID, moduleName, methods);\n }\n\n return {name: moduleName, module};\n}\n\n// export this method as a global so we can call it from native\nglobal.__fbGenNativeModule = genModule;\n\nfunction loadModule(name: string, moduleID: number): ?{...} {\n invariant(\n global.nativeRequireModuleConfig,\n \"Can't lazily create module without nativeRequireModuleConfig\",\n );\n const config = global.nativeRequireModuleConfig(name);\n const info = genModule(config, moduleID);\n return info && info.module;\n}\n\nfunction genMethod(moduleID: number, methodID: number, type: MethodType) {\n let fn = null;\n if (type === 'promise') {\n fn = function promiseMethodWrapper(...args: Array<mixed>) {\n // In case we reject, capture a useful stack trace here.\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n const enqueueingFrameError: ExtendedError = new Error();\n return new Promise((resolve, reject) => {\n BatchedBridge.enqueueNativeCall(\n moduleID,\n methodID,\n args,\n data => resolve(data),\n errorData =>\n reject(\n updateErrorWithErrorData(\n (errorData: $FlowFixMe),\n enqueueingFrameError,\n ),\n ),\n );\n });\n };\n } else {\n fn = function nonPromiseMethodWrapper(...args: Array<mixed>) {\n const lastArg = args.length > 0 ? args[args.length - 1] : null;\n const secondLastArg = args.length > 1 ? args[args.length - 2] : null;\n const hasSuccessCallback = typeof lastArg === 'function';\n const hasErrorCallback = typeof secondLastArg === 'function';\n hasErrorCallback &&\n invariant(\n hasSuccessCallback,\n 'Cannot have a non-function arg after a function arg.',\n );\n // $FlowFixMe[incompatible-type]\n const onSuccess: ?(mixed) => void = hasSuccessCallback ? lastArg : null;\n // $FlowFixMe[incompatible-type]\n const onFail: ?(mixed) => void = hasErrorCallback ? secondLastArg : null;\n const callbackCount = hasSuccessCallback + hasErrorCallback;\n const newArgs = args.slice(0, args.length - callbackCount);\n if (type === 'sync') {\n return BatchedBridge.callNativeSyncHook(\n moduleID,\n methodID,\n newArgs,\n onFail,\n onSuccess,\n );\n } else {\n BatchedBridge.enqueueNativeCall(\n moduleID,\n methodID,\n newArgs,\n onFail,\n onSuccess,\n );\n }\n };\n }\n // $FlowFixMe[prop-missing]\n fn.type = type;\n return fn;\n}\n\nfunction arrayContains<T>(array: $ReadOnlyArray<T>, value: T): boolean {\n return array.indexOf(value) !== -1;\n}\n\nfunction updateErrorWithErrorData(\n errorData: {message: string, ...},\n error: ExtendedError,\n): ExtendedError {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n return Object.assign(error, errorData || {});\n}\n\nlet NativeModules: {[moduleName: string]: $FlowFixMe, ...} = {};\nif (global.nativeModuleProxy) {\n NativeModules = global.nativeModuleProxy;\n} else if (!global.nativeExtensions) {\n const bridgeConfig = global.__fbBatchedBridgeConfig;\n invariant(\n bridgeConfig,\n '__fbBatchedBridgeConfig is not set, cannot invoke native modules',\n );\n\n const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');\n (bridgeConfig.remoteModuleConfig || []).forEach(\n (config: ModuleConfig, moduleID: number) => {\n // Initially this config will only contain the module name when running in JSC. The actual\n // configuration of the module will be lazily loaded.\n const info = genModule(config, moduleID);\n if (!info) {\n return;\n }\n\n if (info.module) {\n NativeModules[info.name] = info.module;\n }\n // If there's no module config, define a lazy getter\n else {\n defineLazyObjectProperty(NativeModules, info.name, {\n get: () => loadModule(info.name, moduleID),\n });\n }\n },\n );\n}\n\nmodule.exports = NativeModules;\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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 * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Defines a lazily evaluated property on the supplied `object`.\n */\nfunction defineLazyObjectProperty<T>(\n object: interface {},\n name: string,\n descriptor: {\n get: () => T,\n enumerable?: boolean,\n writable?: boolean,\n ...\n },\n): void {\n const {get} = descriptor;\n const enumerable = descriptor.enumerable !== false;\n const writable = descriptor.writable !== false;\n\n let value;\n let valueSet = false;\n function getValue(): T {\n // WORKAROUND: A weird infinite loop occurs where calling `getValue` calls\n // `setValue` which calls `Object.defineProperty` which somehow triggers\n // `getValue` again. Adding `valueSet` breaks this loop.\n if (!valueSet) {\n // Calling `get()` here can trigger an infinite loop if it fails to\n // remove the getter on the property, which can happen when executing\n // JS in a V8 context. `valueSet = true` will break this loop, and\n // sets the value of the property to undefined, until the code in `get()`\n // finishes, at which point the property is set to the correct value.\n valueSet = true;\n setValue(get());\n }\n return value;\n }\n function setValue(newValue: T): void {\n value = newValue;\n valueSet = true;\n Object.defineProperty(object, name, {\n value: newValue,\n configurable: true,\n enumerable,\n writable,\n });\n }\n\n Object.defineProperty(object, name, {\n get: getValue,\n set: setValue,\n configurable: true,\n enumerable,\n });\n}\n\nmodule.exports = defineLazyObjectProperty;\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 * @format\n * @flow\n */\n\n'use strict';\n\nconst BatchedBridge = require('../BatchedBridge/BatchedBridge');\n\nconst RCTEventEmitter = {\n register(eventEmitter: any) {\n if (global.RN$Bridgeless) {\n global.RN$registerCallableModule('RCTEventEmitter', () => eventEmitter);\n } else {\n BatchedBridge.registerCallableModule('RCTEventEmitter', eventEmitter);\n }\n },\n};\n\nmodule.exports = RCTEventEmitter;\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 * @noformat\n * @flow strict-local\n * @generated SignedSource<<bda490a01513d4526005c1e029d5ce93>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {type ViewConfig} from './ReactNativeTypes';\nimport invariant from 'invariant';\n\n// Event configs\nconst customBubblingEventTypes: {\n [eventName: string]: $ReadOnly<{\n phasedRegistrationNames: $ReadOnly<{\n captured: string,\n bubbled: string,\n skipBubbling?: ?boolean,\n }>,\n }>,\n ...,\n} = {};\nconst customDirectEventTypes: {\n [eventName: string]: $ReadOnly<{\n registrationName: string,\n }>,\n ...,\n} = {};\n\nexports.customBubblingEventTypes = customBubblingEventTypes;\nexports.customDirectEventTypes = customDirectEventTypes;\n\nconst viewConfigCallbacks = new Map();\nconst viewConfigs = new Map();\n\nfunction processEventTypes(viewConfig: ViewConfig): void {\n const {bubblingEventTypes, directEventTypes} = viewConfig;\n\n if (__DEV__) {\n if (bubblingEventTypes != null && directEventTypes != null) {\n for (const topLevelType in directEventTypes) {\n invariant(\n bubblingEventTypes[topLevelType] == null,\n 'Event cannot be both direct and bubbling: %s',\n topLevelType,\n );\n }\n }\n }\n\n if (bubblingEventTypes != null) {\n for (const topLevelType in bubblingEventTypes) {\n if (customBubblingEventTypes[topLevelType] == null) {\n customBubblingEventTypes[topLevelType] =\n bubblingEventTypes[topLevelType];\n }\n }\n }\n\n if (directEventTypes != null) {\n for (const topLevelType in directEventTypes) {\n if (customDirectEventTypes[topLevelType] == null) {\n customDirectEventTypes[topLevelType] = directEventTypes[topLevelType];\n }\n }\n }\n}\n\n/**\n * Registers a native view/component by name.\n * A callback is provided to load the view config from UIManager.\n * The callback is deferred until the view is actually rendered.\n */\nexports.register = function(name: string, callback: () => ViewConfig): string {\n invariant(\n !viewConfigCallbacks.has(name),\n 'Tried to register two views with the same name %s',\n name,\n );\n invariant(\n typeof callback === 'function',\n 'View config getter callback for component `%s` must be a function (received `%s`)',\n name,\n callback === null ? 'null' : typeof callback,\n );\n viewConfigCallbacks.set(name, callback);\n return name;\n};\n\n/**\n * Retrieves a config for the specified view.\n * If this is the first time the view has been used,\n * This configuration will be lazy-loaded from UIManager.\n */\nexports.get = function(name: string): ViewConfig {\n let viewConfig;\n if (!viewConfigs.has(name)) {\n const callback = viewConfigCallbacks.get(name);\n if (typeof callback !== 'function') {\n invariant(\n false,\n 'View config getter callback for component `%s` must be a function (received `%s`).%s',\n name,\n callback === null ? 'null' : typeof callback,\n typeof name[0] === 'string' && /[a-z]/.test(name[0])\n ? ' Make sure to start component names with a capital letter.'\n : '',\n );\n }\n viewConfig = callback();\n processEventTypes(viewConfig);\n viewConfigs.set(name, viewConfig);\n\n // Clear the callback after the config is set so that\n // we don't mask any errors during registration.\n viewConfigCallbacks.set(name, null);\n } else {\n viewConfig = viewConfigs.get(name);\n }\n invariant(viewConfig, 'View config not found for name %s', name);\n return viewConfig;\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 * @format\n * @flow strict-local\n */\n\n// This class is responsible for coordinating the \"focused\" state for\n// TextInputs. All calls relating to the keyboard should be funneled\n// through here.\n\nimport type {\n HostComponent,\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../../Renderer/shims/ReactNativeTypes';\n\nimport {Commands as AndroidTextInputCommands} from '../../Components/TextInput/AndroidTextInputNativeComponent';\nimport {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSingelineTextInputNativeComponent';\n\nconst {findNodeHandle} = require('../../ReactNative/RendererProxy');\nconst Platform = require('../../Utilities/Platform');\nconst React = require('react');\ntype ComponentRef = React.ElementRef<HostComponent<mixed>>;\n\nlet currentlyFocusedInputRef: ?ComponentRef = null;\nconst inputs = new Set<{\n blur(): void,\n focus(): void,\n measure(callback: MeasureOnSuccessCallback): void,\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,\n measureLayout(\n relativeToNativeNode: number | React.ElementRef<HostComponent<mixed>>,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail?: () => void,\n ): void,\n setNativeProps(nativeProps: {...}): void,\n}>();\n\nfunction currentlyFocusedInput(): ?ComponentRef {\n return currentlyFocusedInputRef;\n}\n\n/**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\nfunction currentlyFocusedField(): ?number {\n if (__DEV__) {\n console.error(\n 'currentlyFocusedField is deprecated and will be removed in a future release. Use currentlyFocusedInput',\n );\n }\n\n return findNodeHandle(currentlyFocusedInputRef);\n}\n\nfunction focusInput(textField: ?ComponentRef): void {\n if (currentlyFocusedInputRef !== textField && textField != null) {\n currentlyFocusedInputRef = textField;\n }\n}\n\nfunction blurInput(textField: ?ComponentRef): void {\n if (currentlyFocusedInputRef === textField && textField != null) {\n currentlyFocusedInputRef = null;\n }\n}\n\nfunction focusField(textFieldID: ?number): void {\n if (__DEV__) {\n console.error('focusField no longer works. Use focusInput');\n }\n\n return;\n}\n\nfunction blurField(textFieldID: ?number) {\n if (__DEV__) {\n console.error('blurField no longer works. Use blurInput');\n }\n\n return;\n}\n\n/**\n * @param {number} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused or if the field is not editable\n */\nfunction focusTextInput(textField: ?ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'focusTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n if (textField != null) {\n const fieldCanBeFocused =\n currentlyFocusedInputRef !== textField &&\n // $FlowFixMe - `currentProps` is missing in `NativeMethods`\n textField.currentProps?.editable !== false;\n\n if (!fieldCanBeFocused) {\n return;\n }\n focusInput(textField);\n if (Platform.OS === 'ios') {\n // This isn't necessarily a single line text input\n // But commands don't actually care as long as the thing being passed in\n // actually has a command with that name. So this should work with single\n // and multiline text inputs. Ideally we'll merge them into one component\n // in the future.\n iOSTextInputCommands.focus(textField);\n } else if (Platform.OS === 'android') {\n AndroidTextInputCommands.focus(textField);\n }\n }\n}\n\n/**\n * @param {number} textFieldID id of the text field to unfocus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\nfunction blurTextInput(textField: ?ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'blurTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n if (currentlyFocusedInputRef === textField && textField != null) {\n blurInput(textField);\n if (Platform.OS === 'ios') {\n // This isn't necessarily a single line text input\n // But commands don't actually care as long as the thing being passed in\n // actually has a command with that name. So this should work with single\n // and multiline text inputs. Ideally we'll merge them into one component\n // in the future.\n iOSTextInputCommands.blur(textField);\n } else if (Platform.OS === 'android') {\n AndroidTextInputCommands.blur(textField);\n }\n }\n}\n\nfunction registerInput(textField: ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'registerInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n inputs.add(textField);\n}\n\nfunction unregisterInput(textField: ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'unregisterInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n inputs.delete(textField);\n}\n\nfunction isTextInput(textField: ComponentRef): boolean {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'isTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return false;\n }\n\n return inputs.has(textField);\n}\n\nmodule.exports = {\n currentlyFocusedInput,\n focusInput,\n blurInput,\n\n currentlyFocusedField,\n focusField,\n blurField,\n focusTextInput,\n blurTextInput,\n registerInput,\n unregisterInput,\n isTextInput,\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 strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {\n ColorValue,\n TextStyleProp,\n ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n DirectEventHandler,\n Double,\n Float,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\n\nexport type KeyboardType =\n // Cross Platform\n | 'default'\n | 'email-address'\n | 'numeric'\n | 'phone-pad'\n | 'number-pad'\n | 'decimal-pad'\n | 'url'\n // iOS-only\n | 'ascii-capable'\n | 'numbers-and-punctuation'\n | 'name-phone-pad'\n | 'twitter'\n | 'web-search'\n // Android-only\n | 'visible-password';\n\nexport type ReturnKeyType =\n // Cross Platform\n | 'done'\n | 'go'\n | 'next'\n | 'search'\n | 'send'\n // Android-only\n | 'none'\n | 'previous'\n // iOS-only\n | 'default'\n | 'emergency-call'\n | 'google'\n | 'join'\n | 'route'\n | 'yahoo';\n\nexport type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';\n\nexport type NativeProps = $ReadOnly<{|\n // This allows us to inherit everything from ViewProps except for style (see below)\n // This must be commented for Fabric codegen to work.\n ...$Diff<ViewProps, $ReadOnly<{|style: ?ViewStyleProp|}>>,\n\n /**\n * Android props after this\n */\n /**\n * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.\n * To disable autocomplete, set `autoComplete` to `off`.\n *\n * *Android Only*\n *\n * Possible values for `autoComplete` are:\n *\n * - `birthdate-day`\n * - `birthdate-full`\n * - `birthdate-month`\n * - `birthdate-year`\n * - `cc-csc`\n * - `cc-exp`\n * - `cc-exp-day`\n * - `cc-exp-month`\n * - `cc-exp-year`\n * - `cc-number`\n * - `email`\n * - `gender`\n * - `name`\n * - `name-family`\n * - `name-given`\n * - `name-middle`\n * - `name-middle-initial`\n * - `name-prefix`\n * - `name-suffix`\n * - `password`\n * - `password-new`\n * - `postal-address`\n * - `postal-address-country`\n * - `postal-address-extended`\n * - `postal-address-extended-postal-code`\n * - `postal-address-locality`\n * - `postal-address-region`\n * - `postal-code`\n * - `street-address`\n * - `sms-otp`\n * - `tel`\n * - `tel-country-code`\n * - `tel-national`\n * - `tel-device`\n * - `username`\n * - `username-new`\n * - `off`\n *\n * @platform android\n */\n autoComplete?: WithDefault<\n | 'birthdate-day'\n | 'birthdate-full'\n | 'birthdate-month'\n | 'birthdate-year'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-day'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-number'\n | 'email'\n | 'gender'\n | 'name'\n | 'name-family'\n | 'name-given'\n | 'name-middle'\n | 'name-middle-initial'\n | 'name-prefix'\n | 'name-suffix'\n | 'password'\n | 'password-new'\n | 'postal-address'\n | 'postal-address-country'\n | 'postal-address-extended'\n | 'postal-address-extended-postal-code'\n | 'postal-address-locality'\n | 'postal-address-region'\n | 'postal-code'\n | 'street-address'\n | 'sms-otp'\n | 'tel'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-device'\n | 'username'\n | 'username-new'\n | 'off',\n 'off',\n >,\n\n /**\n * Sets the return key to the label. Use it instead of `returnKeyType`.\n * @platform android\n */\n returnKeyLabel?: ?string,\n\n /**\n * Sets the number of lines for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n numberOfLines?: ?Int32,\n\n /**\n * When `false`, if there is a small amount of space available around a text input\n * (e.g. landscape orientation on a phone), the OS may choose to have the user edit\n * the text inside of a full screen text input mode. When `true`, this feature is\n * disabled and users will always edit the text directly inside of the text input.\n * Defaults to `false`.\n * @platform android\n */\n disableFullscreenUI?: ?boolean,\n\n /**\n * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`\n * The default value is `simple`.\n * @platform android\n */\n textBreakStrategy?: WithDefault<\n 'simple' | 'highQuality' | 'balanced',\n 'simple',\n >,\n\n /**\n * The color of the `TextInput` underline.\n * @platform android\n */\n underlineColorAndroid?: ?ColorValue,\n\n /**\n * If defined, the provided image resource will be rendered on the left.\n * The image resource must be inside `/android/app/src/main/res/drawable` and referenced\n * like\n * ```\n * <TextInput\n * inlineImageLeft='search_icon'\n * />\n * ```\n * @platform android\n */\n inlineImageLeft?: ?string,\n\n /**\n * Padding between the inline image, if any, and the text input itself.\n * @platform android\n */\n inlineImagePadding?: ?Int32,\n\n importantForAutofill?: string /*?(\n | 'auto'\n | 'no'\n | 'noExcludeDescendants'\n | 'yes'\n | 'yesExcludeDescendants'\n ),*/,\n\n /**\n * When `false`, it will prevent the soft keyboard from showing when the field is focused.\n * Defaults to `true`.\n */\n showSoftInputOnFocus?: ?boolean,\n\n /**\n * TextInput props after this\n */\n /**\n * Can tell `TextInput` to automatically capitalize certain characters.\n *\n * - `characters`: all characters.\n * - `words`: first letter of each word.\n * - `sentences`: first letter of each sentence (*default*).\n * - `none`: don't auto capitalize anything.\n */\n autoCapitalize?: WithDefault<\n 'none' | 'sentences' | 'words' | 'characters',\n 'none',\n >,\n\n /**\n * If `false`, disables auto-correct. The default value is `true`.\n */\n autoCorrect?: ?boolean,\n\n /**\n * If `true`, focuses the input on `componentDidMount`.\n * The default value is `false`.\n */\n autoFocus?: ?boolean,\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings. The\n * default is `true`.\n */\n allowFontScaling?: ?boolean,\n\n /**\n * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.\n * Possible values:\n * `null/undefined` (default): inherit from the parent node or the global default (0)\n * `0`: no max, ignore parent/global default\n * `>= 1`: sets the maxFontSizeMultiplier of this node to this value\n */\n maxFontSizeMultiplier?: ?Float,\n\n /**\n * If `false`, text is not editable. The default value is `true`.\n */\n editable?: ?boolean,\n\n /**\n * Determines which keyboard to open, e.g.`numeric`.\n *\n * The following values work across platforms:\n *\n * - `default`\n * - `numeric`\n * - `number-pad`\n * - `decimal-pad`\n * - `email-address`\n * - `phone-pad`\n * - `url`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `visible-password`\n */\n keyboardType?: WithDefault<KeyboardType, 'default'>,\n\n /**\n * Determines how the return key should look. On Android you can also use\n * `returnKeyLabel`.\n *\n * *Cross platform*\n *\n * The following values work across platforms:\n *\n * - `done`\n * - `go`\n * - `next`\n * - `search`\n * - `send`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `none`\n * - `previous`\n */\n returnKeyType?: WithDefault<ReturnKeyType, 'done'>,\n\n /**\n * Limits the maximum number of characters that can be entered. Use this\n * instead of implementing the logic in JS to avoid flicker.\n */\n maxLength?: ?Int32,\n\n /**\n * If `true`, the text input can be multiple lines.\n * The default value is `false`.\n */\n multiline?: ?boolean,\n\n /**\n * Callback that is called when the text input is blurred.\n * `target` is the reactTag of the element\n */\n onBlur?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,\n\n /**\n * Callback that is called when the text input is focused.\n * `target` is the reactTag of the element\n */\n onFocus?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,\n\n /**\n * Callback that is called when the text input's text changes.\n * `target` is the reactTag of the element\n * TODO: differentiate between onChange and onChangeText\n */\n onChange?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n * TODO: differentiate between onChange and onChangeText\n */\n onChangeText?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input's content size changes.\n * This will be called with\n * `{ nativeEvent: { contentSize: { width, height } } }`.\n *\n * Only called for multiline text inputs.\n */\n onContentSizeChange?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n contentSize: $ReadOnly<{|width: Double, height: Double|}>,\n |}>,\n >,\n\n onTextInput?: ?BubblingEventHandler<\n $ReadOnly<{|\n target: Int32,\n text: string,\n previousText: string,\n range: $ReadOnly<{|start: Double, end: Double|}>,\n |}>,\n >,\n\n /**\n * Callback that is called when text input ends.\n */\n onEndEditing?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input selection is changed.\n * This will be called with\n * `{ nativeEvent: { selection: { start, end } } }`.\n */\n onSelectionChange?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n selection: $ReadOnly<{|start: Double, end: Double|}>,\n |}>,\n >,\n\n /**\n * Callback that is called when the text input's submit button is pressed.\n * Invalid if `multiline={true}` is specified.\n */\n onSubmitEditing?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n */\n onKeyPress?: ?BubblingEventHandler<$ReadOnly<{|target: Int32, key: string|}>>,\n\n /**\n * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.\n * May also contain other properties from ScrollEvent but on Android contentSize\n * is not provided for performance reasons.\n */\n onScroll?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n responderIgnoreScroll: boolean,\n contentInset: $ReadOnly<{|\n top: Double, // always 0 on Android\n bottom: Double, // always 0 on Android\n left: Double, // always 0 on Android\n right: Double, // always 0 on Android\n |}>,\n contentOffset: $ReadOnly<{|\n x: Double,\n y: Double,\n |}>,\n contentSize: $ReadOnly<{|\n width: Double, // always 0 on Android\n height: Double, // always 0 on Android\n |}>,\n layoutMeasurement: $ReadOnly<{|\n width: Double,\n height: Double,\n |}>,\n velocity: $ReadOnly<{|\n x: Double, // always 0 on Android\n y: Double, // always 0 on Android\n |}>,\n |}>,\n >,\n\n /**\n * The string that will be rendered before text input has been entered.\n */\n placeholder?: ?Stringish,\n\n /**\n * The text color of the placeholder string.\n */\n placeholderTextColor?: ?ColorValue,\n\n /**\n * If `true`, the text input obscures the text entered so that sensitive text\n * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.\n */\n secureTextEntry?: ?boolean,\n\n /**\n * The highlight and cursor color of the text input.\n */\n selectionColor?: ?ColorValue,\n\n /**\n * The start and end of the text input's selection. Set start and end to\n * the same value to position the cursor.\n */\n selection?: ?$ReadOnly<{|\n start: Int32,\n end?: ?Int32,\n |}>,\n\n /**\n * The value to show for the text input. `TextInput` is a controlled\n * component, which means the native value will be forced to match this\n * value prop if provided. For most uses, this works great, but in some\n * cases this may cause flickering - one common cause is preventing edits\n * by keeping value the same. In addition to simply setting the same value,\n * either set `editable={false}`, or set/update `maxLength` to prevent\n * unwanted edits without flicker.\n */\n value?: ?string,\n\n /**\n * Provides an initial value that will change when the user starts typing.\n * Useful for simple use-cases where you do not want to deal with listening\n * to events and updating the value prop to keep the controlled state in sync.\n */\n defaultValue?: ?string,\n\n /**\n * If `true`, all text will automatically be selected on focus.\n */\n selectTextOnFocus?: ?boolean,\n\n /**\n * If `true`, the text field will blur when submitted.\n * The default value is true for single-line fields and false for\n * multiline fields. Note that for multiline fields, setting `blurOnSubmit`\n * to `true` means that pressing return will blur the field and trigger the\n * `onSubmitEditing` event instead of inserting a newline into the field.\n *\n * @deprecated\n * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will\n * override any behavior defined by `blurOnSubmit`.\n * @see submitBehavior\n */\n blurOnSubmit?: ?boolean,\n\n /**\n * When the return key is pressed,\n *\n * For single line inputs:\n *\n * - `'newline`' defaults to `'blurAndSubmit'`\n * - `undefined` defaults to `'blurAndSubmit'`\n *\n * For multiline inputs:\n *\n * - `'newline'` adds a newline\n * - `undefined` defaults to `'newline'`\n *\n * For both single line and multiline inputs:\n *\n * - `'submit'` will only send a submit event and not blur the input\n * - `'blurAndSubmit`' will both blur the input and send a submit event\n */\n submitBehavior?: ?SubmitBehavior,\n\n /**\n * Note that not all Text styles are supported, an incomplete list of what is not supported includes:\n *\n * - `borderLeftWidth`\n * - `borderTopWidth`\n * - `borderRightWidth`\n * - `borderBottomWidth`\n * - `borderTopLeftRadius`\n * - `borderTopRightRadius`\n * - `borderBottomRightRadius`\n * - `borderBottomLeftRadius`\n *\n * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)\n * for more detail.\n *\n * [Styles](docs/style.html)\n */\n // TODO: figure out what to do with this style prop for codegen/Fabric purposes\n // This must be commented for Fabric codegen to work; it's currently not possible\n // to override the default View style prop in codegen.\n style?: ?TextStyleProp,\n\n /**\n * If `true`, caret is hidden. The default value is `false`.\n * This property is supported only for single-line TextInput component on iOS.\n */\n caretHidden?: ?boolean,\n\n /*\n * If `true`, contextMenuHidden is hidden. The default value is `false`.\n */\n contextMenuHidden?: ?boolean,\n\n /**\n * The following are props that `BaseTextShadowNode` takes. It is unclear if they\n * are used by TextInput.\n */\n textShadowColor?: ?ColorValue,\n textShadowRadius?: ?Float,\n textDecorationLine?: ?string,\n fontStyle?: ?string,\n textShadowOffset?: ?$ReadOnly<{|width?: ?Double, height?: ?Double|}>,\n lineHeight?: ?Float,\n textTransform?: ?string,\n color?: ?Int32,\n letterSpacing?: ?Float,\n fontSize?: ?Float,\n textAlign?: ?string,\n includeFontPadding?: ?boolean,\n fontWeight?: ?string,\n fontFamily?: ?string,\n\n /**\n * I cannot find where these are defined but JS complains without them.\n */\n textAlignVertical?: ?string,\n cursorColor?: ?ColorValue,\n\n /**\n * \"Private\" fields used by TextInput.js and not users of this component directly\n */\n mostRecentEventCount: Int32,\n text?: ?string,\n|}>;\n\ntype NativeType = HostComponent<NativeProps>;\n\ntype NativeCommands = TextInputNativeCommands<NativeType>;\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'AndroidTextInput',\n bubblingEventTypes: {\n topBlur: {\n phasedRegistrationNames: {\n bubbled: 'onBlur',\n captured: 'onBlurCapture',\n },\n },\n topEndEditing: {\n phasedRegistrationNames: {\n bubbled: 'onEndEditing',\n captured: 'onEndEditingCapture',\n },\n },\n topFocus: {\n phasedRegistrationNames: {\n bubbled: 'onFocus',\n captured: 'onFocusCapture',\n },\n },\n topKeyPress: {\n phasedRegistrationNames: {\n bubbled: 'onKeyPress',\n captured: 'onKeyPressCapture',\n },\n },\n topSubmitEditing: {\n phasedRegistrationNames: {\n bubbled: 'onSubmitEditing',\n captured: 'onSubmitEditingCapture',\n },\n },\n topTextInput: {\n phasedRegistrationNames: {\n bubbled: 'onTextInput',\n captured: 'onTextInputCapture',\n },\n },\n },\n directEventTypes: {\n topScroll: {\n registrationName: 'onScroll',\n },\n },\n validAttributes: {\n maxFontSizeMultiplier: true,\n adjustsFontSizeToFit: true,\n minimumFontScale: true,\n autoFocus: true,\n placeholder: true,\n inlineImagePadding: true,\n contextMenuHidden: true,\n textShadowColor: {process: require('../../StyleSheet/processColor')},\n maxLength: true,\n selectTextOnFocus: true,\n textShadowRadius: true,\n underlineColorAndroid: {\n process: require('../../StyleSheet/processColor'),\n },\n textDecorationLine: true,\n submitBehavior: true,\n textAlignVertical: true,\n fontStyle: true,\n textShadowOffset: true,\n selectionColor: {process: require('../../StyleSheet/processColor')},\n selection: true,\n placeholderTextColor: {process: require('../../StyleSheet/processColor')},\n importantForAutofill: true,\n lineHeight: true,\n textTransform: true,\n returnKeyType: true,\n keyboardType: true,\n multiline: true,\n color: {process: require('../../StyleSheet/processColor')},\n autoComplete: true,\n numberOfLines: true,\n letterSpacing: true,\n returnKeyLabel: true,\n fontSize: true,\n onKeyPress: true,\n cursorColor: {process: require('../../StyleSheet/processColor')},\n text: true,\n showSoftInputOnFocus: true,\n textAlign: true,\n autoCapitalize: true,\n autoCorrect: true,\n caretHidden: true,\n secureTextEntry: true,\n textBreakStrategy: true,\n onScroll: true,\n onContentSizeChange: true,\n disableFullscreenUI: true,\n includeFontPadding: true,\n fontWeight: true,\n fontFamily: true,\n allowFontScaling: true,\n onSelectionChange: true,\n mostRecentEventCount: true,\n inlineImageLeft: true,\n editable: true,\n fontVariant: true,\n borderBottomRightRadius: true,\n borderBottomColor: {process: require('../../StyleSheet/processColor')},\n borderRadius: true,\n borderRightColor: {process: require('../../StyleSheet/processColor')},\n borderColor: {process: require('../../StyleSheet/processColor')},\n borderTopRightRadius: true,\n borderStyle: true,\n borderBottomLeftRadius: true,\n borderLeftColor: {process: require('../../StyleSheet/processColor')},\n borderTopLeftRadius: true,\n borderTopColor: {process: require('../../StyleSheet/processColor')},\n },\n};\n\nlet AndroidTextInputNativeComponent = NativeComponentRegistry.get<NativeProps>(\n 'AndroidTextInput',\n () => __INTERNAL_VIEW_CONFIG,\n);\n\n// flowlint-next-line unclear-type:off\nexport default ((AndroidTextInputNativeComponent: any): HostComponent<NativeProps>);\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 strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport getNativeComponentAttributes from '../ReactNative/getNativeComponentAttributes';\nimport UIManager from '../ReactNative/UIManager';\nimport ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';\nimport verifyComponentAttributeEquivalence from '../Utilities/verifyComponentAttributeEquivalence';\nimport * as StaticViewConfigValidator from './StaticViewConfigValidator';\nimport {createViewConfig} from './ViewConfig';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nlet getRuntimeConfig;\n\n/**\n * Configures a function that is called to determine whether a given component\n * should be registered using reflection of the native component at runtime.\n *\n * The provider should return null if the native component is unavailable in\n * the current environment.\n */\nexport function setRuntimeConfigProvider(\n runtimeConfigProvider: (name: string) => ?{\n native: boolean,\n strict: boolean,\n verify: boolean,\n },\n): void {\n invariant(\n getRuntimeConfig == null,\n 'NativeComponentRegistry.setRuntimeConfigProvider() called more than once.',\n );\n getRuntimeConfig = runtimeConfigProvider;\n}\n\n/**\n * Gets a `NativeComponent` that can be rendered by React Native.\n *\n * The supplied `viewConfigProvider` may or may not be invoked and utilized,\n * depending on how `setRuntimeConfigProvider` is configured.\n */\nexport function get<Config>(\n name: string,\n viewConfigProvider: () => PartialViewConfig,\n): HostComponent<Config> {\n ReactNativeViewConfigRegistry.register(name, () => {\n const {native, strict, verify} = getRuntimeConfig?.(name) ?? {\n native: true,\n strict: false,\n verify: false,\n };\n\n const viewConfig = native\n ? getNativeComponentAttributes(name)\n : createViewConfig(viewConfigProvider());\n\n if (verify) {\n const nativeViewConfig = native\n ? viewConfig\n : getNativeComponentAttributes(name);\n const staticViewConfig = native\n ? createViewConfig(viewConfigProvider())\n : viewConfig;\n\n if (strict) {\n const validationOutput = StaticViewConfigValidator.validate(\n name,\n nativeViewConfig,\n staticViewConfig,\n );\n\n if (validationOutput.type === 'invalid') {\n console.error(\n StaticViewConfigValidator.stringifyValidationResult(\n name,\n validationOutput,\n ),\n );\n }\n } else {\n verifyComponentAttributeEquivalence(nativeViewConfig, staticViewConfig);\n }\n }\n\n return viewConfig;\n });\n\n // $FlowFixMe[incompatible-return] `NativeComponent` is actually string!\n return name;\n}\n\n/**\n * Same as `NativeComponentRegistry.get(...)`, except this will check either\n * the `setRuntimeConfigProvider` configuration or use native reflection (slow)\n * to determine whether this native component is available.\n *\n * If the native component is not available, a stub component is returned. Note\n * that the return value of this is not `HostComponent` because the returned\n * component instance is not guaranteed to have native methods.\n */\nexport function getWithFallback_DEPRECATED<Config>(\n name: string,\n viewConfigProvider: () => PartialViewConfig,\n): React.AbstractComponent<Config> {\n if (getRuntimeConfig == null) {\n // `getRuntimeConfig == null` when static view configs are disabled\n // If `setRuntimeConfigProvider` is not configured, use native reflection.\n if (hasNativeViewConfig(name)) {\n return get<Config>(name, viewConfigProvider);\n }\n } else {\n // If there is no runtime config, then the native component is unavailable.\n if (getRuntimeConfig(name) != null) {\n return get<Config>(name, viewConfigProvider);\n }\n }\n\n const FallbackNativeComponent = function (props: Config): React.Node {\n return null;\n };\n FallbackNativeComponent.displayName = `Fallback(${name})`;\n return FallbackNativeComponent;\n}\n\nfunction hasNativeViewConfig(name: string): boolean {\n invariant(getRuntimeConfig == null, 'Unexpected invocation!');\n return UIManager.getViewManagerConfig(name) != null;\n}\n\n/**\n * Unstable API. Do not use!\n *\n * This method returns if there is a StaticViewConfig registered for the\n * component name received as a parameter.\n */\nexport function unstable_hasStaticViewConfig(name: string): boolean {\n const {native} = getRuntimeConfig?.(name) ?? {\n native: true,\n };\n return !native;\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 * @format\n */\n\n'use strict';\n\nconst ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');\nconst resolveAssetSource = require('../Image/resolveAssetSource');\nconst processColor = require('../StyleSheet/processColor');\nconst processColorArray = require('../StyleSheet/processColorArray');\nconst insetsDiffer = require('../Utilities/differ/insetsDiffer');\nconst matricesDiffer = require('../Utilities/differ/matricesDiffer');\nconst pointsDiffer = require('../Utilities/differ/pointsDiffer');\nconst sizesDiffer = require('../Utilities/differ/sizesDiffer');\nconst UIManager = require('./UIManager');\nconst invariant = require('invariant');\n\nfunction getNativeComponentAttributes(uiViewClassName: string): any {\n const viewConfig = UIManager.getViewManagerConfig(uiViewClassName);\n\n invariant(\n viewConfig != null && viewConfig.NativeProps != null,\n 'requireNativeComponent: \"%s\" was not found in the UIManager.',\n uiViewClassName,\n );\n\n // TODO: This seems like a whole lot of runtime initialization for every\n // native component that can be either avoided or simplified.\n let {baseModuleName, bubblingEventTypes, directEventTypes} = viewConfig;\n let nativeProps = viewConfig.NativeProps;\n\n bubblingEventTypes = bubblingEventTypes ?? {};\n directEventTypes = directEventTypes ?? {};\n\n while (baseModuleName) {\n const baseModule = UIManager.getViewManagerConfig(baseModuleName);\n if (!baseModule) {\n baseModuleName = null;\n } else {\n bubblingEventTypes = {\n ...baseModule.bubblingEventTypes,\n ...bubblingEventTypes,\n };\n directEventTypes = {\n ...baseModule.directEventTypes,\n ...directEventTypes,\n };\n nativeProps = {\n ...baseModule.NativeProps,\n ...nativeProps,\n };\n baseModuleName = baseModule.baseModuleName;\n }\n }\n\n const validAttributes: {[string]: mixed} = {};\n\n for (const key in nativeProps) {\n const typeName = nativeProps[key];\n const diff = getDifferForType(typeName);\n const process = getProcessorForType(typeName);\n\n // If diff or process == null, omit the corresponding property from the Attribute\n // Why:\n // 1. Consistency with AttributeType flow type\n // 2. Consistency with Static View Configs, which omit the null properties\n validAttributes[key] =\n diff == null\n ? process == null\n ? true\n : {process}\n : process == null\n ? {diff}\n : {diff, process};\n }\n\n // Unfortunately, the current setup declares style properties as top-level\n // props. This makes it so we allow style properties in the `style` prop.\n // TODO: Move style properties into a `style` prop and disallow them as\n // top-level props on the native side.\n validAttributes.style = ReactNativeStyleAttributes;\n\n Object.assign(viewConfig, {\n uiViewClassName,\n validAttributes,\n bubblingEventTypes,\n directEventTypes,\n });\n\n attachDefaultEventTypes(viewConfig);\n\n return viewConfig;\n}\n\nfunction attachDefaultEventTypes(viewConfig: any) {\n // This is supported on UIManager platforms (ex: Android),\n // as lazy view managers are not implemented for all platforms.\n // See [UIManager] for details on constants and implementations.\n const constants = UIManager.getConstants();\n if (constants.ViewManagerNames || constants.LazyViewManagersEnabled) {\n // Lazy view managers enabled.\n viewConfig = merge(viewConfig, UIManager.getDefaultEventTypes());\n } else {\n viewConfig.bubblingEventTypes = merge(\n viewConfig.bubblingEventTypes,\n constants.genericBubblingEventTypes,\n );\n viewConfig.directEventTypes = merge(\n viewConfig.directEventTypes,\n constants.genericDirectEventTypes,\n );\n }\n}\n\n// TODO: Figure out how to avoid all this runtime initialization cost.\nfunction merge(destination: ?Object, source: ?Object): ?Object {\n if (!source) {\n return destination;\n }\n if (!destination) {\n return source;\n }\n\n for (const key in source) {\n if (!source.hasOwnProperty(key)) {\n continue;\n }\n\n let sourceValue = source[key];\n if (destination.hasOwnProperty(key)) {\n const destinationValue = destination[key];\n if (\n typeof sourceValue === 'object' &&\n typeof destinationValue === 'object'\n ) {\n sourceValue = merge(destinationValue, sourceValue);\n }\n }\n destination[key] = sourceValue;\n }\n return destination;\n}\n\nfunction getDifferForType(\n typeName: string,\n): ?(prevProp: any, nextProp: any) => boolean {\n switch (typeName) {\n // iOS Types\n case 'CATransform3D':\n return matricesDiffer;\n case 'CGPoint':\n return pointsDiffer;\n case 'CGSize':\n return sizesDiffer;\n case 'UIEdgeInsets':\n return insetsDiffer;\n // Android Types\n case 'Point':\n return pointsDiffer;\n case 'EdgeInsets':\n return insetsDiffer;\n }\n return null;\n}\n\nfunction getProcessorForType(typeName: string): ?(nextProp: any) => any {\n switch (typeName) {\n // iOS Types\n case 'CGColor':\n case 'UIColor':\n return processColor;\n case 'CGColorArray':\n case 'UIColorArray':\n return processColorArray;\n case 'CGImage':\n case 'UIImage':\n case 'RCTImageSource':\n return resolveAssetSource;\n // Android Types\n case 'Color':\n return processColor;\n case 'ColorArray':\n return processColorArray;\n case 'ImageSource':\n return resolveAssetSource;\n }\n return null;\n}\n\nmodule.exports = getNativeComponentAttributes;\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 * @format strict-local\n * @flow\n */\n\nimport type {AnyAttributeType} from '../../Renderer/shims/ReactNativeTypes';\n\nimport processAspectRatio from '../../StyleSheet/processAspectRatio';\nimport processColor from '../../StyleSheet/processColor';\nimport processFontVariant from '../../StyleSheet/processFontVariant';\nimport processTransform from '../../StyleSheet/processTransform';\nimport sizesDiffer from '../../Utilities/differ/sizesDiffer';\n\nconst colorAttributes = {process: processColor};\n\nconst ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {\n /**\n * Layout\n */\n alignContent: true,\n alignItems: true,\n alignSelf: true,\n aspectRatio: {process: processAspectRatio},\n borderBottomWidth: true,\n borderEndWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderStartWidth: true,\n borderTopWidth: true,\n columnGap: true,\n borderWidth: true,\n bottom: true,\n direction: true,\n display: true,\n end: true,\n flex: true,\n flexBasis: true,\n flexDirection: true,\n flexGrow: true,\n flexShrink: true,\n flexWrap: true,\n gap: true,\n height: true,\n justifyContent: true,\n left: true,\n margin: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n maxHeight: true,\n maxWidth: true,\n minHeight: true,\n minWidth: true,\n overflow: true,\n padding: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n position: true,\n right: true,\n rowGap: true,\n start: true,\n top: true,\n width: true,\n zIndex: true,\n\n /**\n * Shadow\n */\n elevation: true,\n shadowColor: colorAttributes,\n shadowOffset: {diff: sizesDiffer},\n shadowOpacity: true,\n shadowRadius: true,\n\n /**\n * Transform\n */\n transform: {process: processTransform},\n\n /**\n * View\n */\n backfaceVisibility: true,\n backgroundColor: colorAttributes,\n borderBottomColor: colorAttributes,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderColor: colorAttributes,\n borderCurve: true,\n borderEndColor: colorAttributes,\n borderLeftColor: colorAttributes,\n borderRadius: true,\n borderRightColor: colorAttributes,\n borderStartColor: colorAttributes,\n borderStyle: true,\n borderTopColor: colorAttributes,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n opacity: true,\n pointerEvents: true,\n\n /**\n * Text\n */\n color: colorAttributes,\n fontFamily: true,\n fontSize: true,\n fontStyle: true,\n fontVariant: {process: processFontVariant},\n fontWeight: true,\n includeFontPadding: true,\n letterSpacing: true,\n lineHeight: true,\n textAlign: true,\n textAlignVertical: true,\n textDecorationColor: colorAttributes,\n textDecorationLine: true,\n textDecorationStyle: true,\n textShadowColor: colorAttributes,\n textShadowOffset: true,\n textShadowRadius: true,\n textTransform: true,\n userSelect: true,\n verticalAlign: true,\n writingDirection: true,\n\n /**\n * Image\n */\n overlayColor: colorAttributes,\n resizeMode: true,\n tintColor: colorAttributes,\n objectFit: true,\n};\n\nmodule.exports = ReactNativeStyleAttributes;\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 * @format\n * @flow\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nfunction processAspectRatio(aspectRatio?: number | string): ?number {\n if (typeof aspectRatio === 'number') {\n return aspectRatio;\n }\n if (typeof aspectRatio !== 'string') {\n if (__DEV__) {\n invariant(\n !aspectRatio,\n 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',\n aspectRatio,\n );\n }\n return;\n }\n\n const matches = aspectRatio.split('/').map(s => s.trim());\n\n if (matches.includes('auto')) {\n if (__DEV__) {\n invariant(\n matches.length,\n 'aspectRatio does not support `auto <ratio>`. You passed: %s',\n aspectRatio,\n );\n }\n return;\n }\n\n const hasNonNumericValues = matches.some(n => Number.isNaN(Number(n)));\n if (__DEV__) {\n invariant(\n !hasNonNumericValues && (matches.length === 1 || matches.length === 2),\n 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',\n aspectRatio,\n );\n }\n\n if (hasNonNumericValues) {\n return;\n }\n\n if (matches.length === 2) {\n return Number(matches[0]) / Number(matches[1]);\n }\n\n return Number(matches[0]);\n}\n\nmodule.exports = processAspectRatio;\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 * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {NativeColorValue} from './PlatformColorValueTypes';\nimport type {ColorValue} from './StyleSheet';\n\nconst Platform = require('../Utilities/Platform');\nconst normalizeColor = require('./normalizeColor');\n\nexport type ProcessedColorValue = number | NativeColorValue;\n\n/* eslint no-bitwise: 0 */\nfunction processColor(color?: ?(number | ColorValue)): ?ProcessedColorValue {\n if (color === undefined || color === null) {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor === 'object') {\n const processColorObject =\n require('./PlatformColorValueTypes').processColorObject;\n\n const processedColorObj = processColorObject(normalizedColor);\n\n if (processedColorObj != null) {\n return processedColorObj;\n }\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n // Converts 0xrrggbbaa into 0xaarrggbb\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0;\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n return normalizedColor;\n}\n\nmodule.exports = processColor;\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 * @format\n * @flow\n */\n\n/* eslint no-bitwise: 0 */\n\nimport type {ProcessedColorValue} from './processColor';\nimport type {ColorValue} from './StyleSheet';\n\nimport _normalizeColor from '@react-native/normalize-color';\n\nfunction normalizeColor(\n color: ?(ColorValue | ProcessedColorValue),\n): ?ProcessedColorValue {\n if (typeof color === 'object' && color != null) {\n const {normalizeColorObject} = require('./PlatformColorValueTypes');\n const normalizedColor = normalizeColorObject(color);\n if (normalizedColor != null) {\n return normalizedColor;\n }\n }\n\n if (typeof color === 'string' || typeof color === 'number') {\n return _normalizeColor(color);\n }\n}\n\nmodule.exports = normalizeColor;\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 * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\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 * @format\n * @flow\n */\n\n'use strict';\n\nimport type {____FontVariantArray_Internal} from './StyleSheetTypes';\n\nfunction processFontVariant(\n fontVariant: ____FontVariantArray_Internal | string,\n): ?____FontVariantArray_Internal {\n if (Array.isArray(fontVariant)) {\n return fontVariant;\n }\n\n // $FlowFixMe[incompatible-type]\n const match: ?____FontVariantArray_Internal = fontVariant\n .split(' ')\n .filter(Boolean);\n\n return match;\n}\n\nmodule.exports = processFontVariant;\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 * @format\n * @flow\n */\n\n'use strict';\n\nconst stringifySafe = require('../Utilities/stringifySafe').default;\nconst invariant = require('invariant');\n\n/**\n * Generate a transform matrix based on the provided transforms, and use that\n * within the style object instead.\n *\n * This allows us to provide an API that is similar to CSS, where transforms may\n * be applied in an arbitrary order, and yet have a universal, singular\n * interface to native code.\n */\nfunction processTransform(\n transform: Array<Object> | string,\n): Array<Object> | Array<number> {\n if (typeof transform === 'string') {\n const regex = new RegExp(/(\\w+)\\(([^)]+)\\)/g);\n let transformArray: Array<Object> = [];\n let matches;\n\n while ((matches = regex.exec(transform))) {\n const {key, value} = _getKeyAndValueFromCSSTransform(\n matches[1],\n matches[2],\n );\n\n if (value !== undefined) {\n transformArray.push({[key]: value});\n }\n }\n transform = transformArray;\n }\n\n if (__DEV__) {\n _validateTransforms(transform);\n }\n\n return transform;\n}\n\nconst _getKeyAndValueFromCSSTransform: (\n key:\n | string\n | $TEMPORARY$string<'matrix'>\n | $TEMPORARY$string<'perspective'>\n | $TEMPORARY$string<'rotate'>\n | $TEMPORARY$string<'rotateX'>\n | $TEMPORARY$string<'rotateY'>\n | $TEMPORARY$string<'rotateZ'>\n | $TEMPORARY$string<'scale'>\n | $TEMPORARY$string<'scaleX'>\n | $TEMPORARY$string<'scaleY'>\n | $TEMPORARY$string<'skewX'>\n | $TEMPORARY$string<'skewY'>\n | $TEMPORARY$string<'translate'>\n | $TEMPORARY$string<'translate3d'>\n | $TEMPORARY$string<'translateX'>\n | $TEMPORARY$string<'translateY'>,\n args: string,\n) => {key: string, value?: number[] | number | string} = (key, args) => {\n const argsWithUnitsRegex = new RegExp(/([+-]?\\d+(\\.\\d+)?)([a-zA-Z]+)?/g);\n\n switch (key) {\n case 'matrix':\n return {key, value: args.match(/[+-]?\\d+(\\.\\d+)?/g)?.map(Number)};\n case 'translate':\n case 'translate3d':\n const parsedArgs = [];\n let missingUnitOfMeasurement = false;\n\n let matches;\n while ((matches = argsWithUnitsRegex.exec(args))) {\n const value = Number(matches[1]);\n const unitOfMeasurement = matches[3];\n\n if (value !== 0 && !unitOfMeasurement) {\n missingUnitOfMeasurement = true;\n }\n\n parsedArgs.push(value);\n }\n\n if (__DEV__) {\n invariant(\n !missingUnitOfMeasurement,\n `Transform with key ${key} must have units unless the provided value is 0, found %s`,\n `${key}(${args})`,\n );\n\n if (key === 'translate') {\n invariant(\n parsedArgs?.length === 1 || parsedArgs?.length === 2,\n 'Transform with key translate must be an string with 1 or 2 parameters, found %s: %s',\n parsedArgs?.length,\n `${key}(${args})`,\n );\n } else {\n invariant(\n parsedArgs?.length === 3,\n 'Transform with key translate3d must be an string with 3 parameters, found %s: %s',\n parsedArgs?.length,\n `${key}(${args})`,\n );\n }\n }\n\n if (parsedArgs?.length === 1) {\n parsedArgs.push(0);\n }\n\n return {key: 'translate', value: parsedArgs};\n case 'translateX':\n case 'translateY':\n case 'perspective':\n const argMatches = argsWithUnitsRegex.exec(args);\n\n if (!argMatches?.length) {\n return {key, value: undefined};\n }\n\n const value = Number(argMatches[1]);\n const unitOfMeasurement = argMatches[3];\n\n if (__DEV__) {\n invariant(\n value === 0 || unitOfMeasurement,\n `Transform with key ${key} must have units unless the provided value is 0, found %s`,\n `${key}(${args})`,\n );\n }\n\n return {key, value};\n\n default:\n return {key, value: !isNaN(args) ? Number(args) : args};\n }\n};\n\nfunction _validateTransforms(transform: Array<Object>): void {\n transform.forEach(transformation => {\n const keys = Object.keys(transformation);\n invariant(\n keys.length === 1,\n 'You must specify exactly one property per transform object. Passed properties: %s',\n stringifySafe(transformation),\n );\n const key = keys[0];\n const value = transformation[key];\n _validateTransform(key, value, transformation);\n });\n}\n\nfunction _validateTransform(\n key:\n | string\n | $TEMPORARY$string<'matrix'>\n | $TEMPORARY$string<'perspective'>\n | $TEMPORARY$string<'rotate'>\n | $TEMPORARY$string<'rotateX'>\n | $TEMPORARY$string<'rotateY'>\n | $TEMPORARY$string<'rotateZ'>\n | $TEMPORARY$string<'scale'>\n | $TEMPORARY$string<'scaleX'>\n | $TEMPORARY$string<'scaleY'>\n | $TEMPORARY$string<'skewX'>\n | $TEMPORARY$string<'skewY'>\n | $TEMPORARY$string<'translate'>\n | $TEMPORARY$string<'translateX'>\n | $TEMPORARY$string<'translateY'>,\n value: any | number | string,\n transformation: any,\n) {\n invariant(\n !value.getValue,\n 'You passed an Animated.Value to a normal component. ' +\n 'You need to wrap that component in an Animated. For example, ' +\n 'replace <View /> by <Animated.View />.',\n );\n\n const multivalueTransforms = ['matrix', 'translate'];\n if (multivalueTransforms.indexOf(key) !== -1) {\n invariant(\n Array.isArray(value),\n 'Transform with key of %s must have an array as the value: %s',\n key,\n stringifySafe(transformation),\n );\n }\n switch (key) {\n case 'matrix':\n invariant(\n value.length === 9 || value.length === 16,\n 'Matrix transform must have a length of 9 (2d) or 16 (3d). ' +\n 'Provided matrix has a length of %s: %s',\n /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.84 was deployed. To\n * see the error, delete this comment and run Flow. */\n value.length,\n stringifySafe(transformation),\n );\n break;\n case 'translate':\n invariant(\n value.length === 2 || value.length === 3,\n 'Transform with key translate must be an array of length 2 or 3, found %s: %s',\n /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.84 was deployed. To\n * see the error, delete this comment and run Flow. */\n value.length,\n stringifySafe(transformation),\n );\n break;\n case 'rotateX':\n case 'rotateY':\n case 'rotateZ':\n case 'rotate':\n case 'skewX':\n case 'skewY':\n invariant(\n typeof value === 'string',\n 'Transform with key of \"%s\" must be a string: %s',\n key,\n stringifySafe(transformation),\n );\n invariant(\n value.indexOf('deg') > -1 || value.indexOf('rad') > -1,\n 'Rotate transform must be expressed in degrees (deg) or radians ' +\n '(rad): %s',\n stringifySafe(transformation),\n );\n break;\n case 'perspective':\n invariant(\n typeof value === 'number',\n 'Transform with key of \"%s\" must be a number: %s',\n key,\n stringifySafe(transformation),\n );\n invariant(\n value !== 0,\n 'Transform with key of \"%s\" cannot be zero: %s',\n key,\n stringifySafe(transformation),\n );\n break;\n case 'translateX':\n case 'translateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n invariant(\n typeof value === 'number',\n 'Transform with key of \"%s\" must be a number: %s',\n key,\n stringifySafe(transformation),\n );\n break;\n default:\n invariant(\n false,\n 'Invalid transform %s: %s',\n key,\n stringifySafe(transformation),\n );\n }\n}\n\nmodule.exports = processTransform;\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 strict\n * @format\n */\n\n'use strict';\n\nconst dummySize = {width: undefined, height: undefined};\ntype Size = {width: ?number, height: ?number};\n\nconst sizesDiffer = function (one: Size, two: Size): boolean {\n const defaultedOne = one || dummySize;\n const defaultedTwo = two || dummySize;\n return (\n defaultedOne !== defaultedTwo &&\n (defaultedOne.width !== defaultedTwo.width ||\n defaultedOne.height !== defaultedTwo.height)\n );\n};\n\nmodule.exports = sizesDiffer;\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 * @format\n * @flow\n */\n\n// Resolves an asset into a `source` for `Image`.\n\n'use strict';\n\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\n\nconst AssetSourceResolver = require('./AssetSourceResolver');\nconst {pickScale} = require('./AssetUtils');\nconst AssetRegistry = require('@react-native/assets/registry');\n\nlet _customSourceTransformer, _serverURL, _scriptURL;\n\nlet _sourceCodeScriptURL: ?string;\nfunction getSourceCodeScriptURL(): ?string {\n if (_sourceCodeScriptURL) {\n return _sourceCodeScriptURL;\n }\n\n let sourceCode =\n global.nativeExtensions && global.nativeExtensions.SourceCode;\n if (!sourceCode) {\n sourceCode = require('../NativeModules/specs/NativeSourceCode').default;\n }\n _sourceCodeScriptURL = sourceCode.getConstants().scriptURL;\n return _sourceCodeScriptURL;\n}\n\nfunction getDevServerURL(): ?string {\n if (_serverURL === undefined) {\n const sourceCodeScriptURL = getSourceCodeScriptURL();\n const match =\n sourceCodeScriptURL && sourceCodeScriptURL.match(/^https?:\\/\\/.*?\\//);\n if (match) {\n // jsBundle was loaded from network\n _serverURL = match[0];\n } else {\n // jsBundle was loaded from file\n _serverURL = null;\n }\n }\n return _serverURL;\n}\n\nfunction _coerceLocalScriptURL(scriptURL: ?string): ?string {\n if (scriptURL) {\n if (scriptURL.startsWith('assets://')) {\n // android: running from within assets, no offline path to use\n return null;\n }\n scriptURL = scriptURL.substring(0, scriptURL.lastIndexOf('/') + 1);\n if (!scriptURL.includes('://')) {\n // Add file protocol in case we have an absolute file path and not a URL.\n // This shouldn't really be necessary. scriptURL should be a URL.\n scriptURL = 'file://' + scriptURL;\n }\n }\n return scriptURL;\n}\n\nfunction getScriptURL(): ?string {\n if (_scriptURL === undefined) {\n _scriptURL = _coerceLocalScriptURL(getSourceCodeScriptURL());\n }\n return _scriptURL;\n}\n\nfunction setCustomSourceTransformer(\n transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource,\n): void {\n _customSourceTransformer = transformer;\n}\n\n/**\n * `source` is either a number (opaque type returned by require('./foo.png'))\n * or an `ImageSource` like { uri: '<http location || file path>' }\n */\nfunction resolveAssetSource(source: any): ?ResolvedAssetSource {\n if (typeof source === 'object') {\n return source;\n }\n\n const asset = AssetRegistry.getAssetByID(source);\n if (!asset) {\n return null;\n }\n\n const resolver = new AssetSourceResolver(\n getDevServerURL(),\n getScriptURL(),\n asset,\n );\n if (_customSourceTransformer) {\n return _customSourceTransformer(resolver);\n }\n return resolver.defaultAsset();\n}\n\nresolveAssetSource.pickScale = pickScale;\nresolveAssetSource.setCustomSourceTransformer = setCustomSourceTransformer;\nmodule.exports = resolveAssetSource;\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 * @format\n */\n\n'use strict';\n\nexport type ResolvedAssetSource = {|\n +__packager_asset: boolean,\n +width: ?number,\n +height: ?number,\n +uri: string,\n +scale: number,\n|};\n\nimport type {PackagerAsset} from '@react-native/assets/registry';\n\nconst PixelRatio = require('../Utilities/PixelRatio');\nconst Platform = require('../Utilities/Platform');\nconst {pickScale} = require('./AssetUtils');\nconst {\n getAndroidResourceFolderName,\n getAndroidResourceIdentifier,\n getBasePath,\n} = require('@react-native/assets/path-support');\nconst invariant = require('invariant');\n\n/**\n * Returns a path like 'assets/AwesomeModule/icon@2x.png'\n */\nfunction getScaledAssetPath(asset: PackagerAsset): string {\n const scale = pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const assetDir = getBasePath(asset);\n return assetDir + '/' + asset.name + scaleSuffix + '.' + asset.type;\n}\n\n/**\n * Returns a path like 'drawable-mdpi/icon.png'\n */\nfunction getAssetPathInDrawableFolder(asset: PackagerAsset): string {\n const scale = pickScale(asset.scales, PixelRatio.get());\n const drawableFolder = getAndroidResourceFolderName(asset, scale);\n const fileName = getAndroidResourceIdentifier(asset);\n return drawableFolder + '/' + fileName + '.' + asset.type;\n}\n\nclass AssetSourceResolver {\n serverUrl: ?string;\n // where the jsbundle is being run from\n jsbundleUrl: ?string;\n // the asset to resolve\n asset: PackagerAsset;\n\n constructor(serverUrl: ?string, jsbundleUrl: ?string, asset: PackagerAsset) {\n this.serverUrl = serverUrl;\n this.jsbundleUrl = jsbundleUrl;\n this.asset = asset;\n }\n\n isLoadedFromServer(): boolean {\n return !!this.serverUrl;\n }\n\n isLoadedFromFileSystem(): boolean {\n return !!(this.jsbundleUrl && this.jsbundleUrl.startsWith('file://'));\n }\n\n defaultAsset(): ResolvedAssetSource {\n if (this.isLoadedFromServer()) {\n return this.assetServerURL();\n }\n\n if (Platform.OS === 'android') {\n return this.isLoadedFromFileSystem()\n ? this.drawableFolderInBundle()\n : this.resourceIdentifierWithoutScale();\n } else {\n return this.scaledAssetURLNearBundle();\n }\n }\n\n /**\n * Returns an absolute URL which can be used to fetch the asset\n * from the devserver\n */\n assetServerURL(): ResolvedAssetSource {\n invariant(!!this.serverUrl, 'need server to load from');\n return this.fromSource(\n this.serverUrl +\n getScaledAssetPath(this.asset) +\n '?platform=' +\n Platform.OS +\n '&hash=' +\n this.asset.hash,\n );\n }\n\n /**\n * Resolves to just the scaled asset filename\n * E.g. 'assets/AwesomeModule/icon@2x.png'\n */\n scaledAssetPath(): ResolvedAssetSource {\n return this.fromSource(getScaledAssetPath(this.asset));\n }\n\n /**\n * Resolves to where the bundle is running from, with a scaled asset filename\n * E.g. 'file:///sdcard/bundle/assets/AwesomeModule/icon@2x.png'\n */\n scaledAssetURLNearBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || 'file://';\n return this.fromSource(\n // Assets can have relative paths outside of the project root.\n // When bundling them we replace `../` with `_` to make sure they\n // don't end up outside of the expected assets directory.\n path + getScaledAssetPath(this.asset).replace(/\\.\\.\\//g, '_'),\n );\n }\n\n /**\n * The default location of assets bundled with the app, located by\n * resource identifier\n * The Android resource system picks the correct scale.\n * E.g. 'assets_awesomemodule_icon'\n */\n resourceIdentifierWithoutScale(): ResolvedAssetSource {\n invariant(\n Platform.OS === 'android',\n 'resource identifiers work on Android',\n );\n return this.fromSource(getAndroidResourceIdentifier(this.asset));\n }\n\n /**\n * If the jsbundle is running from a sideload location, this resolves assets\n * relative to its location\n * E.g. 'file:///sdcard/AwesomeModule/drawable-mdpi/icon.png'\n */\n drawableFolderInBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || 'file://';\n return this.fromSource(path + getAssetPathInDrawableFolder(this.asset));\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width,\n height: this.asset.height,\n uri: source,\n scale: pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale: (scales: Array<number>, deviceScale?: number) => number =\n pickScale;\n}\n\nmodule.exports = AssetSourceResolver;\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 * @format\n * @flow strict-local\n */\n\n'use strict';\n\nconst Dimensions = require('./Dimensions');\n\n/**\n * PixelRatio class gives access to the device pixel density.\n *\n * ## Fetching a correctly sized image\n *\n * You should get a higher resolution image if you are on a high pixel density\n * device. A good rule of thumb is to multiply the size of the image you display\n * by the pixel ratio.\n *\n * ```\n * var image = getImage({\n * width: PixelRatio.getPixelSizeForLayoutSize(200),\n * height: PixelRatio.getPixelSizeForLayoutSize(100),\n * });\n * <Image source={image} style={{width: 200, height: 100}} />\n * ```\n *\n * ## Pixel grid snapping\n *\n * In iOS, you can specify positions and dimensions for elements with arbitrary\n * precision, for example 29.674825. But, ultimately the physical display only\n * have a fixed number of pixels, for example 640×960 for iPhone 4 or 750×1334\n * for iPhone 6. iOS tries to be as faithful as possible to the user value by\n * spreading one original pixel into multiple ones to trick the eye. The\n * downside of this technique is that it makes the resulting element look\n * blurry.\n *\n * In practice, we found out that developers do not want this feature and they\n * have to work around it by doing manual rounding in order to avoid having\n * blurry elements. In React Native, we are rounding all the pixels\n * automatically.\n *\n * We have to be careful when to do this rounding. You never want to work with\n * rounded and unrounded values at the same time as you're going to accumulate\n * rounding errors. Having even one rounding error is deadly because a one\n * pixel border may vanish or be twice as big.\n *\n * In React Native, everything in JavaScript and within the layout engine works\n * with arbitrary precision numbers. It's only when we set the position and\n * dimensions of the native element on the main thread that we round. Also,\n * rounding is done relative to the root rather than the parent, again to avoid\n * accumulating rounding errors.\n *\n */\nclass PixelRatio {\n /**\n * Returns the device pixel density. Some examples:\n *\n * - PixelRatio.get() === 1\n * - mdpi Android devices (160 dpi)\n * - PixelRatio.get() === 1.5\n * - hdpi Android devices (240 dpi)\n * - PixelRatio.get() === 2\n * - iPhone 4, 4S\n * - iPhone 5, 5c, 5s\n * - iPhone 6\n * - iPhone 7\n * - iPhone 8\n * - iPhone SE\n * - xhdpi Android devices (320 dpi)\n * - PixelRatio.get() === 3\n * - iPhone 6 Plus\n * - iPhone 7 Plus\n * - iPhone 8 Plus\n * - iPhone X\n * - xxhdpi Android devices (480 dpi)\n * - PixelRatio.get() === 3.5\n * - Nexus 6\n */\n static get(): number {\n return Dimensions.get('window').scale;\n }\n\n /**\n * Returns the scaling factor for font sizes. This is the ratio that is used to calculate the\n * absolute font size, so any elements that heavily depend on that should use this to do\n * calculations.\n *\n * If a font scale is not set, this returns the device pixel ratio.\n *\n * This reflects the user preference set in:\n * - Settings > Display > Font size on Android,\n * - Settings > Display & Brightness > Text Size on iOS.\n */\n static getFontScale(): number {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n\n /**\n * Converts a layout size (dp) to pixel size (px).\n *\n * Guaranteed to return an integer number.\n */\n static getPixelSizeForLayoutSize(layoutSize: number): number {\n return Math.round(layoutSize * PixelRatio.get());\n }\n\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n static roundToNearestPixel(layoutSize: number): number {\n const ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n\n // No-op for iOS, but used on the web. Should not be documented.\n static startDetecting() {}\n}\n\nmodule.exports = PixelRatio;\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 * @format\n * @flow\n */\n\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport EventEmitter, {\n type EventSubscription,\n} from '../vendor/emitter/EventEmitter';\nimport NativeDeviceInfo, {\n type DimensionsPayload,\n type DisplayMetrics,\n type DisplayMetricsAndroid,\n} from './NativeDeviceInfo';\nimport invariant from 'invariant';\n\nconst eventEmitter = new EventEmitter<{\n change: [DimensionsPayload],\n}>();\nlet dimensionsInitialized = false;\nlet dimensions: DimensionsPayload;\n\nclass Dimensions {\n /**\n * NOTE: `useWindowDimensions` is the preferred API for React components.\n *\n * Initial dimensions are set before `runApplication` is called so they should\n * be available before any other require's are run, but may be updated later.\n *\n * Note: Although dimensions are available immediately, they may change (e.g\n * due to device rotation) so any rendering logic or styles that depend on\n * these constants should try to call this function on every render, rather\n * than caching the value (for example, using inline styles rather than\n * setting a value in a `StyleSheet`).\n *\n * Example: `const {height, width} = Dimensions.get('window');`\n *\n * @param {string} dim Name of dimension as defined when calling `set`.\n * @returns {DisplayMetrics? | DisplayMetricsAndroid?} Value for the dimension.\n */\n static get(dim: string): DisplayMetrics | DisplayMetricsAndroid {\n invariant(dimensions[dim], 'No dimension set for key ' + dim);\n return dimensions[dim];\n }\n\n /**\n * This should only be called from native code by sending the\n * didUpdateDimensions event.\n *\n * @param {DimensionsPayload} dims Simple string-keyed object of dimensions to set\n */\n static set(dims: $ReadOnly<DimensionsPayload>): void {\n // We calculate the window dimensions in JS so that we don't encounter loss of\n // precision in transferring the dimensions (which could be non-integers) over\n // the bridge.\n let {screen, window} = dims;\n const {windowPhysicalPixels} = dims;\n if (windowPhysicalPixels) {\n window = {\n width: windowPhysicalPixels.width / windowPhysicalPixels.scale,\n height: windowPhysicalPixels.height / windowPhysicalPixels.scale,\n scale: windowPhysicalPixels.scale,\n fontScale: windowPhysicalPixels.fontScale,\n };\n }\n const {screenPhysicalPixels} = dims;\n if (screenPhysicalPixels) {\n screen = {\n width: screenPhysicalPixels.width / screenPhysicalPixels.scale,\n height: screenPhysicalPixels.height / screenPhysicalPixels.scale,\n scale: screenPhysicalPixels.scale,\n fontScale: screenPhysicalPixels.fontScale,\n };\n } else if (screen == null) {\n screen = window;\n }\n\n dimensions = {window, screen};\n if (dimensionsInitialized) {\n // Don't fire 'change' the first time the dimensions are set.\n eventEmitter.emit('change', dimensions);\n } else {\n dimensionsInitialized = true;\n }\n }\n\n /**\n * Add an event handler. Supported events:\n *\n * - `change`: Fires when a property within the `Dimensions` object changes. The argument\n * to the event handler is an object with `window` and `screen` properties whose values\n * are the same as the return values of `Dimensions.get('window')` and\n * `Dimensions.get('screen')`, respectively.\n */\n static addEventListener(\n type: 'change',\n handler: Function,\n ): EventSubscription {\n invariant(\n type === 'change',\n 'Trying to subscribe to unknown event: \"%s\"',\n type,\n );\n return eventEmitter.addListener(type, handler);\n }\n}\n\nlet initialDims: ?$ReadOnly<DimensionsPayload> =\n global.nativeExtensions &&\n global.nativeExtensions.DeviceInfo &&\n global.nativeExtensions.DeviceInfo.Dimensions;\nif (!initialDims) {\n // Subscribe before calling getConstants to make sure we don't miss any updates in between.\n RCTDeviceEventEmitter.addListener(\n 'didUpdateDimensions',\n (update: DimensionsPayload) => {\n Dimensions.set(update);\n },\n );\n initialDims = NativeDeviceInfo.getConstants().Dimensions;\n}\n\nDimensions.set(initialDims);\n\nmodule.exports = Dimensions;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type DisplayMetricsAndroid = {|\n width: number,\n height: number,\n scale: number,\n fontScale: number,\n densityDpi: number,\n|};\n\nexport type DisplayMetrics = {|\n width: number,\n height: number,\n scale: number,\n fontScale: number,\n|};\n\nexport type DimensionsPayload = {|\n window?: DisplayMetrics,\n screen?: DisplayMetrics,\n windowPhysicalPixels?: DisplayMetricsAndroid,\n screenPhysicalPixels?: DisplayMetricsAndroid,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +Dimensions: DimensionsPayload,\n +isIPhoneX_deprecated?: boolean,\n |};\n}\n\nconst NativeModule: Spec = TurboModuleRegistry.getEnforcing<Spec>('DeviceInfo');\nlet constants = null;\n\nconst NativeDeviceInfo = {\n getConstants(): {|\n +Dimensions: DimensionsPayload,\n +isIPhoneX_deprecated?: boolean,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n};\n\nexport default NativeDeviceInfo;\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 * @format\n */\n\nimport PixelRatio from '../Utilities/PixelRatio';\n\nlet cacheBreaker;\nlet warnIfCacheBreakerUnset = true;\n\nexport function pickScale(scales: Array<number>, deviceScale?: number): number {\n if (deviceScale == null) {\n deviceScale = PixelRatio.get();\n }\n // Packager guarantees that `scales` array is sorted\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n\n // If nothing matches, device scale is larger than any available\n // scales, so we return the biggest one. Unless the array is empty,\n // in which case we default to 1\n return scales[scales.length - 1] || 1;\n}\n\nexport function setUrlCacheBreaker(appendage: string) {\n cacheBreaker = appendage;\n}\n\nexport function getUrlCacheBreaker(): string {\n if (cacheBreaker == null) {\n if (__DEV__ && warnIfCacheBreakerUnset) {\n warnIfCacheBreakerUnset = false;\n console.warn(\n 'AssetUtils.getUrlCacheBreaker: Cache breaker value is unset',\n );\n }\n return '';\n }\n return cacheBreaker;\n}\n","/**\n * Copyright (c) Facebook, 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 * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {PackagerAsset} from './registry.js';\n\nconst androidScaleSuffix = {\n '0.75': 'ldpi',\n '1': 'mdpi',\n '1.5': 'hdpi',\n '2': 'xhdpi',\n '3': 'xxhdpi',\n '4': 'xxxhdpi',\n};\n\n/**\n * FIXME: using number to represent discrete scale numbers is fragile in essence because of\n * floating point numbers imprecision.\n */\nfunction getAndroidAssetSuffix(scale: number): string {\n if (scale.toString() in androidScaleSuffix) {\n return androidScaleSuffix[scale.toString()];\n }\n\n throw new Error('no such scale ' + scale.toString());\n}\n\n// See https://developer.android.com/guide/topics/resources/drawable-resource.html\nconst drawableFileTypes = new Set([\n 'gif',\n 'jpeg',\n 'jpg',\n 'png',\n 'svg',\n 'webp',\n 'xml',\n]);\n\nfunction getAndroidResourceFolderName(\n asset: PackagerAsset,\n scale: number,\n): string | $TEMPORARY$string<'raw'> {\n if (!drawableFileTypes.has(asset.type)) {\n return 'raw';\n }\n const suffix = getAndroidAssetSuffix(scale);\n if (!suffix) {\n throw new Error(\n \"Don't know which android drawable suffix to use for scale: \" +\n scale +\n '\\nAsset: ' +\n JSON.stringify(asset, null, '\\t') +\n '\\nPossible scales are:' +\n JSON.stringify(androidScaleSuffix, null, '\\t'),\n );\n }\n return 'drawable-' + suffix;\n}\n\nfunction getAndroidResourceIdentifier(asset: PackagerAsset): string {\n return (getBasePath(asset) + '/' + asset.name)\n .toLowerCase()\n .replace(/\\//g, '_') // Encode folder structure in file name\n .replace(/([^a-z0-9_])/g, '') // Remove illegal chars\n .replace(/^assets_/, ''); // Remove \"assets_\" prefix\n}\n\nfunction getBasePath(asset: PackagerAsset): string {\n const basePath = asset.httpServerLocation;\n return basePath.startsWith('/') ? basePath.substr(1) : basePath;\n}\n\nmodule.exports = {\n getAndroidResourceFolderName,\n getAndroidResourceIdentifier,\n getBasePath,\n};\n","/**\n * Copyright (c) Facebook, 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 strict\n * @format\n */\n\n'use strict';\n\nexport type PackagerAsset = {\n +__packager_asset: boolean,\n +fileSystemLocation: string,\n +httpServerLocation: string,\n +width: ?number,\n +height: ?number,\n +scales: Array<number>,\n +hash: string,\n +name: string,\n +type: string,\n ...\n};\n\nconst assets: Array<PackagerAsset> = [];\n\nfunction registerAsset(asset: PackagerAsset): number {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\n\nfunction getAssetByID(assetId: number): PackagerAsset {\n return assets[assetId - 1];\n}\n\nmodule.exports = {registerAsset, getAssetByID};\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n scriptURL: string,\n |};\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing<Spec>('SourceCode');\nlet constants = null;\n\nconst NativeSourceCode = {\n getConstants(): {|\n scriptURL: string,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n\n return constants;\n },\n};\n\nexport default NativeSourceCode;\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 * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ColorValue} from './StyleSheet';\n\nimport processColor, {type ProcessedColorValue} from './processColor';\n\nconst TRANSPARENT = 0; // rgba(0, 0, 0, 0)\n\nfunction processColorArray(\n colors: ?$ReadOnlyArray<ColorValue>,\n): ?$ReadOnlyArray<ProcessedColorValue> {\n return colors == null ? null : colors.map(processColorElement);\n}\n\nfunction processColorElement(color: ColorValue): ProcessedColorValue {\n const value = processColor(color);\n // For invalid colors, fallback to transparent.\n if (value == null) {\n console.error('Invalid value in color array:', color);\n return TRANSPARENT;\n }\n return value;\n}\n\nmodule.exports = processColorArray;\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 * @format\n * @flow\n */\n\n'use strict';\n\ntype Inset = {\n top: ?number,\n left: ?number,\n right: ?number,\n bottom: ?number,\n ...\n};\n\nconst dummyInsets = {\n top: undefined,\n left: undefined,\n right: undefined,\n bottom: undefined,\n};\n\nconst insetsDiffer = function (one: Inset, two: Inset): boolean {\n one = one || dummyInsets;\n two = two || dummyInsets;\n return (\n one !== two &&\n (one.top !== two.top ||\n one.left !== two.left ||\n one.right !== two.right ||\n one.bottom !== two.bottom)\n );\n};\n\nmodule.exports = insetsDiffer;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Unrolls an array comparison specially for matrices. Prioritizes\n * checking of indices that are most likely to change so that the comparison\n * bails as early as possible.\n *\n * @param {MatrixMath.Matrix} one First matrix.\n * @param {MatrixMath.Matrix} two Second matrix.\n * @return {boolean} Whether or not the two matrices differ.\n */\nconst matricesDiffer = function (\n one: ?Array<number>,\n two: ?Array<number>,\n): boolean {\n if (one === two) {\n return false;\n }\n return (\n !one ||\n !two ||\n one[12] !== two[12] ||\n one[13] !== two[13] ||\n one[14] !== two[14] ||\n one[5] !== two[5] ||\n one[10] !== two[10] ||\n one[0] !== two[0] ||\n one[1] !== two[1] ||\n one[2] !== two[2] ||\n one[3] !== two[3] ||\n one[4] !== two[4] ||\n one[6] !== two[6] ||\n one[7] !== two[7] ||\n one[8] !== two[8] ||\n one[9] !== two[9] ||\n one[11] !== two[11] ||\n one[15] !== two[15]\n );\n};\n\nmodule.exports = matricesDiffer;\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 * @format\n * @flow\n */\n\n'use strict';\n\ntype Point = {\n x: ?number,\n y: ?number,\n ...\n};\n\nconst dummyPoint = {x: undefined, y: undefined};\n\nconst pointsDiffer = function (one: ?Point, two: ?Point): boolean {\n one = one || dummyPoint;\n two = two || dummyPoint;\n return one !== two && (one.x !== two.x || one.y !== two.y);\n};\n\nmodule.exports = pointsDiffer;\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 * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {Spec} from './NativeUIManager';\n\nexport interface UIManagerJSInterface extends Spec {\n +getViewManagerConfig: (viewManagerName: string) => Object;\n +hasViewManagerConfig: (viewManagerName: string) => boolean;\n +createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ) => void;\n +updateView: (reactTag: number, viewName: string, props: Object) => void;\n +manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array<number>,\n moveToIndices: Array<number>,\n addChildReactTags: Array<number>,\n addAtIndices: Array<number>,\n removeAtIndices: Array<number>,\n ) => void;\n}\n\nconst UIManager: UIManagerJSInterface =\n global.RN$Bridgeless === true\n ? require('./BridgelessUIManager')\n : require('./PaperUIManager');\n\nmodule.exports = UIManager;\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 * @format\n */\n\n'use strict';\n\nimport type {RootTag} from '../Types/RootTagTypes';\n\nimport {unstable_hasComponent} from '../NativeComponent/NativeComponentRegistryUnstable';\n\nconst errorMessageForMethod = (methodName: string): string =>\n \"[ReactNative Architecture][JS] '\" +\n methodName +\n \"' is not available in the new React Native architecture.\";\n\nmodule.exports = {\n getViewManagerConfig: (viewManagerName: string): mixed => {\n console.error(\n errorMessageForMethod('getViewManagerConfig') +\n 'Use hasViewManagerConfig instead. viewManagerName: ' +\n viewManagerName,\n );\n return null;\n },\n hasViewManagerConfig: (viewManagerName: string): boolean => {\n return unstable_hasComponent(viewManagerName);\n },\n getConstants: (): Object => {\n console.error(errorMessageForMethod('getConstants'));\n return {};\n },\n getConstantsForViewManager: (viewManagerName: string): Object => {\n console.error(errorMessageForMethod('getConstantsForViewManager'));\n return {};\n },\n getDefaultEventTypes: (): Array<string> => {\n console.error(errorMessageForMethod('getDefaultEventTypes'));\n return [];\n },\n lazilyLoadView: (name: string): Object => {\n console.error(errorMessageForMethod('lazilyLoadView'));\n return {};\n },\n createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ): void => console.error(errorMessageForMethod('createView')),\n updateView: (reactTag: number, viewName: string, props: Object): void =>\n console.error(errorMessageForMethod('updateView')),\n focus: (reactTag: ?number): void =>\n console.error(errorMessageForMethod('focus')),\n blur: (reactTag: ?number): void =>\n console.error(errorMessageForMethod('blur')),\n findSubviewIn: (\n reactTag: ?number,\n point: Array<number>,\n callback: (\n nativeViewTag: number,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('findSubviewIn')),\n dispatchViewManagerCommand: (\n reactTag: ?number,\n commandID: number,\n commandArgs: ?Array<string | number | boolean>,\n ): void => console.error(errorMessageForMethod('dispatchViewManagerCommand')),\n measure: (\n reactTag: ?number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('measure')),\n measureInWindow: (\n reactTag: ?number,\n callback: (x: number, y: number, width: number, height: number) => void,\n ): void => console.error(errorMessageForMethod('measureInWindow')),\n viewIsDescendantOf: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n callback: (result: Array<boolean>) => void,\n ): void => console.error(errorMessageForMethod('viewIsDescendantOf')),\n measureLayout: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('measureLayout')),\n measureLayoutRelativeToParent: (\n reactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void =>\n console.error(errorMessageForMethod('measureLayoutRelativeToParent')),\n setJSResponder: (reactTag: ?number, blockNativeResponder: boolean): void =>\n console.error(errorMessageForMethod('setJSResponder')),\n clearJSResponder: (): void => {}, // Don't log error here because we're aware it gets called\n configureNextLayoutAnimation: (\n config: Object,\n callback: () => void,\n errorCallback: (error: Object) => void,\n ): void =>\n console.error(errorMessageForMethod('configureNextLayoutAnimation')),\n removeSubviewsFromContainerWithID: (containerID: number): void =>\n console.error(errorMessageForMethod('removeSubviewsFromContainerWithID')),\n replaceExistingNonRootView: (reactTag: ?number, newReactTag: ?number): void =>\n console.error(errorMessageForMethod('replaceExistingNonRootView')),\n setChildren: (containerTag: ?number, reactTags: Array<number>): void =>\n console.error(errorMessageForMethod('setChildren')),\n manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array<number>,\n moveToIndices: Array<number>,\n addChildReactTags: Array<number>,\n addAtIndices: Array<number>,\n removeAtIndices: Array<number>,\n ): void => console.error(errorMessageForMethod('manageChildren')),\n\n // Android only\n setLayoutAnimationEnabledExperimental: (enabled: boolean): void => {\n console.error(\n errorMessageForMethod('setLayoutAnimationEnabledExperimental'),\n );\n },\n // Please use AccessibilityInfo.sendAccessibilityEvent instead.\n // See SetAccessibilityFocusExample in AccessibilityExample.js for a migration example.\n sendAccessibilityEvent: (reactTag: ?number, eventType: number): void =>\n console.error(errorMessageForMethod('sendAccessibilityEvent')),\n showPopupMenu: (\n reactTag: ?number,\n items: Array<string>,\n error: (error: Object) => void,\n success: (event: string, selected?: number) => void,\n ): void => console.error(errorMessageForMethod('showPopupMenu')),\n dismissPopupMenu: (): void =>\n console.error(errorMessageForMethod('dismissPopupMenu')),\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\nlet componentNameToExists: Map<string, boolean> = new Map();\n\n/**\n * Unstable API. Do not use!\n *\n * This method returns if the component with name received as a parameter\n * is registed in the native platform.\n */\nexport function unstable_hasComponent(name: string): boolean {\n let hasNativeComponent = componentNameToExists.get(name);\n if (hasNativeComponent == null) {\n if (global.__nativeComponentRegistry__hasComponent) {\n hasNativeComponent = global.__nativeComponentRegistry__hasComponent(name);\n componentNameToExists.set(name, hasNativeComponent);\n } else {\n throw `unstable_hasComponent('${name}'): Global function is not registered`;\n }\n }\n return hasNativeComponent;\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 * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\n\nimport NativeUIManager from './NativeUIManager';\n\nconst NativeModules = require('../BatchedBridge/NativeModules');\nconst defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');\nconst Platform = require('../Utilities/Platform');\nconst UIManagerProperties = require('./UIManagerProperties');\n\nconst viewManagerConfigs: {[string]: any | null} = {};\n\nconst triedLoadingConfig = new Set<string>();\n\nlet NativeUIManagerConstants = {};\nlet isNativeUIManagerConstantsSet = false;\nfunction getConstants(): Object {\n if (!isNativeUIManagerConstantsSet) {\n NativeUIManagerConstants = NativeUIManager.getConstants();\n isNativeUIManagerConstantsSet = true;\n }\n return NativeUIManagerConstants;\n}\n\nfunction getViewManagerConfig(viewManagerName: string): any {\n if (\n viewManagerConfigs[viewManagerName] === undefined &&\n global.nativeCallSyncHook && // If we're in the Chrome Debugger, let's not even try calling the sync method\n NativeUIManager.getConstantsForViewManager\n ) {\n try {\n viewManagerConfigs[viewManagerName] =\n NativeUIManager.getConstantsForViewManager(viewManagerName);\n } catch (e) {\n console.error(\n \"NativeUIManager.getConstantsForViewManager('\" +\n viewManagerName +\n \"') threw an exception.\",\n e,\n );\n viewManagerConfigs[viewManagerName] = null;\n }\n }\n\n const config = viewManagerConfigs[viewManagerName];\n if (config) {\n return config;\n }\n\n // If we're in the Chrome Debugger, let's not even try calling the sync\n // method.\n if (!global.nativeCallSyncHook) {\n return config;\n }\n\n if (\n NativeUIManager.lazilyLoadView &&\n !triedLoadingConfig.has(viewManagerName)\n ) {\n const result = NativeUIManager.lazilyLoadView(viewManagerName);\n triedLoadingConfig.add(viewManagerName);\n if (result != null && result.viewConfig != null) {\n getConstants()[viewManagerName] = result.viewConfig;\n lazifyViewManagerConfig(viewManagerName);\n }\n }\n\n return viewManagerConfigs[viewManagerName];\n}\n\n/* $FlowFixMe[cannot-spread-interface] (>=0.123.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.123.0 was deployed. To see\n * the error, delete this comment and run Flow. */\nconst UIManagerJS = {\n ...NativeUIManager,\n createView(\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ): void {\n if (Platform.OS === 'ios' && viewManagerConfigs[viewName] === undefined) {\n // This is necessary to force the initialization of native viewManager\n // classes in iOS when using static ViewConfigs\n getViewManagerConfig(viewName);\n }\n\n NativeUIManager.createView(reactTag, viewName, rootTag, props);\n },\n getConstants(): Object {\n return getConstants();\n },\n getViewManagerConfig(viewManagerName: string): any {\n return getViewManagerConfig(viewManagerName);\n },\n hasViewManagerConfig(viewManagerName: string): boolean {\n return getViewManagerConfig(viewManagerName) != null;\n },\n};\n\n// TODO (T45220498): Remove this.\n// 3rd party libs may be calling `NativeModules.UIManager.getViewManagerConfig()`\n// instead of `UIManager.getViewManagerConfig()` off UIManager.js.\n// This is a workaround for now.\n// $FlowFixMe[prop-missing]\nNativeUIManager.getViewManagerConfig = UIManagerJS.getViewManagerConfig;\n\nfunction lazifyViewManagerConfig(viewName: string) {\n const viewConfig = getConstants()[viewName];\n viewManagerConfigs[viewName] = viewConfig;\n if (viewConfig.Manager) {\n defineLazyObjectProperty(viewConfig, 'Constants', {\n get: () => {\n const viewManager = NativeModules[viewConfig.Manager];\n const constants: {[string]: mixed} = {};\n viewManager &&\n Object.keys(viewManager).forEach(key => {\n const value = viewManager[key];\n if (typeof value !== 'function') {\n constants[key] = value;\n }\n });\n return constants;\n },\n });\n defineLazyObjectProperty(viewConfig, 'Commands', {\n get: () => {\n const viewManager = NativeModules[viewConfig.Manager];\n const commands: {[string]: number} = {};\n let index = 0;\n viewManager &&\n Object.keys(viewManager).forEach(key => {\n const value = viewManager[key];\n if (typeof value === 'function') {\n commands[key] = index++;\n }\n });\n return commands;\n },\n });\n }\n}\n\n/**\n * Copies the ViewManager constants and commands into UIManager. This is\n * only needed for iOS, which puts the constants in the ViewManager\n * namespace instead of UIManager, unlike Android.\n */\nif (Platform.OS === 'ios') {\n Object.keys(getConstants()).forEach(viewName => {\n lazifyViewManagerConfig(viewName);\n });\n} else if (getConstants().ViewManagerNames) {\n NativeUIManager.getConstants().ViewManagerNames.forEach(viewManagerName => {\n defineLazyObjectProperty(NativeUIManager, viewManagerName, {\n get: () => NativeUIManager.getConstantsForViewManager(viewManagerName),\n });\n });\n}\n\nif (!global.nativeCallSyncHook) {\n Object.keys(getConstants()).forEach(viewManagerName => {\n if (!UIManagerProperties.includes(viewManagerName)) {\n if (!viewManagerConfigs[viewManagerName]) {\n viewManagerConfigs[viewManagerName] = getConstants()[viewManagerName];\n }\n defineLazyObjectProperty(NativeUIManager, viewManagerName, {\n get: () => {\n console.warn(\n `Accessing view manager configs directly off UIManager via UIManager['${viewManagerName}'] ` +\n `is no longer supported. Use UIManager.getViewManagerConfig('${viewManagerName}') instead.`,\n );\n\n return UIManagerJS.getViewManagerConfig(viewManagerName);\n },\n });\n }\n });\n}\n\nmodule.exports = UIManagerJS;\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 * @format\n */\n\nimport type {RootTag} from '../TurboModule/RCTExport';\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => Object;\n +getConstantsForViewManager: (viewManagerName: string) => Object;\n +getDefaultEventTypes: () => Array<string>;\n +lazilyLoadView: (name: string) => Object; // revisit return\n +createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ) => void;\n +updateView: (reactTag: number, viewName: string, props: Object) => void;\n +focus: (reactTag: ?number) => void;\n +blur: (reactTag: ?number) => void;\n +findSubviewIn: (\n reactTag: ?number,\n point: Array<number>,\n callback: (\n nativeViewTag: number,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +dispatchViewManagerCommand: (\n reactTag: ?number,\n commandID: number,\n commandArgs: ?Array<any>,\n ) => void;\n +measure: (\n reactTag: ?number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ) => void;\n +measureInWindow: (\n reactTag: ?number,\n callback: (x: number, y: number, width: number, height: number) => void,\n ) => void;\n +viewIsDescendantOf: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n callback: (result: Array<boolean>) => void,\n ) => void;\n +measureLayout: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +measureLayoutRelativeToParent: (\n reactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +setJSResponder: (reactTag: ?number, blockNativeResponder: boolean) => void;\n +clearJSResponder: () => void;\n +configureNextLayoutAnimation: (\n config: Object,\n callback: () => void, // check what is returned here\n errorCallback: (error: Object) => void,\n ) => void;\n +removeSubviewsFromContainerWithID: (containerID: number) => void;\n +replaceExistingNonRootView: (\n reactTag: ?number,\n newReactTag: ?number,\n ) => void;\n +setChildren: (containerTag: ?number, reactTags: Array<number>) => void;\n +manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array<number>,\n moveToIndices: Array<number>,\n addChildReactTags: Array<number>,\n addAtIndices: Array<number>,\n removeAtIndices: Array<number>,\n ) => void;\n\n // Android only\n +setLayoutAnimationEnabledExperimental: (enabled: boolean) => void;\n +sendAccessibilityEvent: (reactTag: ?number, eventType: number) => void;\n +showPopupMenu: (\n reactTag: ?number,\n items: Array<string>,\n error: (error: Object) => void,\n success: (event: string, selected?: number) => void,\n ) => void;\n +dismissPopupMenu: () => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('UIManager'): Spec);\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 strict\n * @format\n */\n\n'use strict';\n\n/**\n * The list of non-ViewManager related UIManager properties.\n *\n * In an effort to improve startup performance by lazily loading view managers,\n * the interface to access view managers will change from\n * UIManager['viewManagerName'] to UIManager.getViewManagerConfig('viewManagerName').\n * By using a function call instead of a property access, the UIManager will\n * be able to initialize and load the required view manager from native\n * synchronously. All of React Native's core components have been updated to\n * use getViewManagerConfig(). For the next few releases, any usage of\n * UIManager['viewManagerName'] will result in a warning. Because React Native\n * does not support Proxy objects, a view manager access is implied if any of\n * UIManager's properties that are not one of the properties below is being\n * accessed. Once UIManager property accesses for view managers has been fully\n * deprecated, this file will also be removed.\n */\nmodule.exports = [\n 'clearJSResponder',\n 'configureNextLayoutAnimation',\n 'createView',\n 'dismissPopupMenu',\n 'dispatchViewManagerCommand',\n 'findSubviewIn',\n 'getConstantsForViewManager',\n 'getDefaultEventTypes',\n 'manageChildren',\n 'measure',\n 'measureInWindow',\n 'measureLayout',\n 'measureLayoutRelativeToParent',\n 'removeRootView',\n 'removeSubviewsFromContainerWithID',\n 'replaceExistingNonRootView',\n 'sendAccessibilityEvent',\n 'setChildren',\n 'setJSResponder',\n 'setLayoutAnimationEnabledExperimental',\n 'showPopupMenu',\n 'updateView',\n 'viewIsDescendantOf',\n 'PopupMenu',\n 'LazyViewManagersEnabled',\n 'ViewManagerNames',\n 'StyleConstants',\n 'AccessibilityEventTypes',\n 'UIView',\n 'getViewManagerConfig',\n 'hasViewManagerConfig',\n 'blur',\n 'focus',\n 'genericBubblingEventTypes',\n 'genericDirectEventTypes',\n 'lazilyLoadView',\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 * @format\n * @flow\n */\n\nimport PlatformBaseViewConfig from '../NativeComponent/PlatformBaseViewConfig';\nimport {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';\n\nconst IGNORED_KEYS = ['transform', 'hitSlop'];\n\n/**\n * The purpose of this function is to validate that the view config that\n * native exposes for a given view manager is the same as the view config\n * that is specified for that view manager in JS.\n *\n * In order to improve perf, we want to avoid calling into native to get\n * the view config when each view manager is used. To do this, we are moving\n * the configs to JS. In the future we will use these JS based view configs\n * to codegen the view manager on native to ensure they stay in sync without\n * this runtime check.\n *\n * If this function fails, that likely means a change was made to the native\n * view manager without updating the JS config as well. Ideally you can make\n * that direct change to the JS config. If you don't know what the differences\n * are, the best approach I've found is to create a view that prints\n * the return value of getNativeComponentAttributes, and then copying that\n * text and pasting it back into JS:\n * <Text selectable={true}>{JSON.stringify(getNativeComponentAttributes('RCTView'))}</Text>\n *\n * This is meant to be a stopgap until the time comes when we only have a\n * single source of truth. I wonder if this message will still be here two\n * years from now...\n */\nexport default function verifyComponentAttributeEquivalence(\n nativeViewConfig: ViewConfig,\n staticViewConfig: ViewConfig,\n) {\n for (const prop of [\n 'validAttributes',\n 'bubblingEventTypes',\n 'directEventTypes',\n ]) {\n const diff = Object.keys(\n lefthandObjectDiff(nativeViewConfig[prop], staticViewConfig[prop]),\n );\n\n if (diff.length > 0) {\n const name =\n staticViewConfig.uiViewClassName ?? nativeViewConfig.uiViewClassName;\n console.error(\n `'${name}' has a view config that does not match native. ` +\n `'${prop}' is missing: ${diff.join(', ')}`,\n );\n }\n }\n}\n\n// Return the different key-value pairs of the right object, by iterating through the keys in the left object\n// Note it won't return a difference where a key is missing in the left but exists the right.\nfunction lefthandObjectDiff(leftObj: Object, rightObj: Object): Object {\n const differentKeys: {[string]: any | {...}} = {};\n\n function compare(leftItem: any, rightItem: any, key: string) {\n if (typeof leftItem !== typeof rightItem && leftItem != null) {\n differentKeys[key] = rightItem;\n return;\n }\n\n if (typeof leftItem === 'object') {\n const objDiff = lefthandObjectDiff(leftItem, rightItem);\n if (Object.keys(objDiff).length > 1) {\n differentKeys[key] = objDiff;\n }\n return;\n }\n\n if (leftItem !== rightItem) {\n differentKeys[key] = rightItem;\n return;\n }\n }\n\n for (const key in leftObj) {\n if (IGNORED_KEYS.includes(key)) {\n continue;\n }\n\n if (!rightObj) {\n differentKeys[key] = {};\n } else if (leftObj.hasOwnProperty(key)) {\n compare(leftObj[key], rightObj[key], key);\n }\n }\n\n return differentKeys;\n}\n\nexport function getConfigWithoutViewProps(\n viewConfig: ViewConfig,\n propName: string,\n): {...} {\n if (!viewConfig[propName]) {\n return {};\n }\n\n return Object.keys(viewConfig[propName])\n .filter(prop => !PlatformBaseViewConfig[propName][prop])\n .reduce<{[string]: any}>((obj, prop) => {\n obj[prop] = viewConfig[propName][prop];\n return obj;\n }, {});\n}\n\nexport function stringifyViewConfig(viewConfig: any): string {\n return JSON.stringify(\n viewConfig,\n (key, val) => {\n if (typeof val === 'function') {\n return `ƒ ${val.name}`;\n }\n return val;\n },\n 2,\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 * @format\n * @flow strict-local\n */\n\nimport type {PartialViewConfig} from '../Renderer/shims/ReactNativeTypes';\n\nimport BaseViewConfig from './BaseViewConfig';\n\nexport type PartialViewConfigWithoutName = $Rest<\n PartialViewConfig,\n {uiViewClassName: string},\n>;\n\nconst PlatformBaseViewConfig: PartialViewConfigWithoutName = BaseViewConfig;\n\n// In Wilde/FB4A, use RNHostComponentListRoute in Bridge mode to verify\n// whether the JS props defined here match the native props defined\n// in RCTViewManagers in iOS, and ViewManagers in Android.\nexport default PlatformBaseViewConfig;\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 strict\n * @format\n */\n\nimport Platform from '../Utilities/Platform';\n\nconst ignoredViewConfigProps = new WeakSet<{...}>();\n\n/**\n * Decorates ViewConfig values that are dynamically injected by the library,\n * react-native-gesture-handler. (T45765076)\n */\nexport function DynamicallyInjectedByGestureHandler<T: {...}>(object: T): T {\n ignoredViewConfigProps.add(object);\n return object;\n}\n\n/**\n * On iOS, ViewManager event declarations generate {eventName}: true entries\n * in ViewConfig valueAttributes. These entries aren't generated for Android.\n * This annotation allows Static ViewConfigs to insert these entries into\n * iOS but not Android.\n *\n * In the future, we want to remove this platform-inconsistency. We want\n * to set RN$ViewConfigEventValidAttributesDisabled = true server-side,\n * so that iOS does not generate validAttributes from event props in iOS RCTViewManager,\n * since Android does not generate validAttributes from events props in Android ViewManager.\n *\n * TODO(T110872225): Remove this logic, after achieving platform-consistency\n */\nexport function ConditionallyIgnoredEventHandlers<T: {[name: string]: true}>(\n value: T,\n): T | void {\n if (\n Platform.OS === 'ios' &&\n !(global.RN$ViewConfigEventValidAttributesDisabled === true)\n ) {\n return value;\n }\n return undefined;\n}\n\nexport function isIgnored(value: mixed): boolean {\n if (typeof value === 'object' && value != null) {\n return ignoredViewConfigProps.has(value);\n }\n return false;\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 strict\n * @format\n */\n\nimport {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';\nimport {isIgnored} from './ViewConfigIgnore';\n\nexport type Difference =\n | {\n type: 'missing',\n path: Array<string>,\n nativeValue: mixed,\n }\n | {\n type: 'unequal',\n path: Array<string>,\n nativeValue: mixed,\n staticValue: mixed,\n }\n | {\n type: 'unexpected',\n path: Array<string>,\n staticValue: mixed,\n };\n\nexport type ValidationResult = ValidResult | InvalidResult;\ntype ValidResult = {\n type: 'valid',\n};\ntype InvalidResult = {\n type: 'invalid',\n differences: Array<Difference>,\n};\n\n/**\n * During the migration from native view configs to static view configs, this is\n * used to validate that the two are equivalent.\n */\nexport function validate(\n name: string,\n nativeViewConfig: ViewConfig,\n staticViewConfig: ViewConfig,\n): ValidationResult {\n const differences: Array<Difference> = [];\n accumulateDifferences(\n differences,\n [],\n {\n bubblingEventTypes: nativeViewConfig.bubblingEventTypes,\n directEventTypes: nativeViewConfig.directEventTypes,\n uiViewClassName: nativeViewConfig.uiViewClassName,\n validAttributes: nativeViewConfig.validAttributes,\n },\n {\n bubblingEventTypes: staticViewConfig.bubblingEventTypes,\n directEventTypes: staticViewConfig.directEventTypes,\n uiViewClassName: staticViewConfig.uiViewClassName,\n validAttributes: staticViewConfig.validAttributes,\n },\n );\n\n if (differences.length === 0) {\n return {type: 'valid'};\n }\n\n return {\n type: 'invalid',\n differences,\n };\n}\n\nexport function stringifyValidationResult(\n name: string,\n validationResult: InvalidResult,\n): string {\n const {differences} = validationResult;\n return [\n `StaticViewConfigValidator: Invalid static view config for '${name}'.`,\n '',\n ...differences.map(difference => {\n const {type, path} = difference;\n switch (type) {\n case 'missing':\n return `- '${path.join('.')}' is missing.`;\n case 'unequal':\n return `- '${path.join('.')}' is the wrong value.`;\n case 'unexpected':\n return `- '${path.join('.')}' is present but not expected to be.`;\n }\n }),\n '',\n ].join('\\n');\n}\n\nfunction accumulateDifferences(\n differences: Array<Difference>,\n path: Array<string>,\n nativeObject: {...},\n staticObject: {...},\n): void {\n for (const nativeKey in nativeObject) {\n const nativeValue = nativeObject[nativeKey];\n\n if (!staticObject.hasOwnProperty(nativeKey)) {\n differences.push({\n path: [...path, nativeKey],\n type: 'missing',\n nativeValue,\n });\n continue;\n }\n\n const staticValue = staticObject[nativeKey];\n\n const nativeValueIfObject = ifObject(nativeValue);\n if (nativeValueIfObject != null) {\n const staticValueIfObject = ifObject(staticValue);\n if (staticValueIfObject != null) {\n path.push(nativeKey);\n accumulateDifferences(\n differences,\n path,\n nativeValueIfObject,\n staticValueIfObject,\n );\n path.pop();\n continue;\n }\n }\n\n if (nativeValue !== staticValue) {\n differences.push({\n path: [...path, nativeKey],\n type: 'unequal',\n nativeValue,\n staticValue,\n });\n }\n }\n\n for (const staticKey in staticObject) {\n if (\n !nativeObject.hasOwnProperty(staticKey) &&\n !isIgnored(staticObject[staticKey])\n ) {\n differences.push({\n path: [...path, staticKey],\n type: 'unexpected',\n staticValue: staticObject[staticKey],\n });\n }\n }\n}\n\nfunction ifObject(value: mixed): ?{...} {\n return typeof value === 'object' && !Array.isArray(value) ? value : 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 strict-local\n * @format\n */\n\nimport type {\n PartialViewConfig,\n ViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport PlatformBaseViewConfig from './PlatformBaseViewConfig';\n\n/**\n * Creates a complete `ViewConfig` from a `PartialViewConfig`.\n */\nexport function createViewConfig(\n partialViewConfig: PartialViewConfig,\n): ViewConfig {\n return {\n uiViewClassName: partialViewConfig.uiViewClassName,\n Commands: {},\n bubblingEventTypes: composeIndexers(\n PlatformBaseViewConfig.bubblingEventTypes,\n partialViewConfig.bubblingEventTypes,\n ),\n directEventTypes: composeIndexers(\n PlatformBaseViewConfig.directEventTypes,\n partialViewConfig.directEventTypes,\n ),\n validAttributes: composeIndexers(\n // $FlowFixMe[incompatible-call] `style` property confuses Flow.\n PlatformBaseViewConfig.validAttributes,\n // $FlowFixMe[incompatible-call] `style` property confuses Flow.\n partialViewConfig.validAttributes,\n ),\n };\n}\n\nfunction composeIndexers<T>(\n maybeA: ?{+[string]: T},\n maybeB: ?{+[string]: T},\n): {+[string]: T} {\n return maybeA == null || maybeB == null\n ? maybeA ?? maybeB ?? {}\n : {...maybeA, ...maybeB};\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, 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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\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 * @format\n * @flow\n */\n\nconst {dispatchCommand} = require('../ReactNative/RendererProxy');\n\ntype Options<T = string> = $ReadOnly<{|\n supportedCommands: $ReadOnlyArray<T>,\n|}>;\n\nfunction codegenNativeCommands<T: interface {}>(options: Options<$Keys<T>>): T {\n const commandObj: {[$Keys<T>]: (...$ReadOnlyArray<mixed>) => void} = {};\n\n options.supportedCommands.forEach(command => {\n commandObj[command] = (ref, ...args) => {\n dispatchCommand(ref, command, args);\n };\n });\n\n return ((commandObj: any): T);\n}\n\nexport default codegenNativeCommands;\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 strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport RCTTextInputViewConfig from './RCTTextInputViewConfig';\n\ntype NativeType = HostComponent<mixed>;\n\ntype NativeCommands = TextInputNativeCommands<NativeType>;\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTSinglelineTextInputView',\n ...RCTTextInputViewConfig,\n};\n\nconst SinglelineTextInputNativeComponent: HostComponent<mixed> =\n NativeComponentRegistry.get<mixed>(\n 'RCTSinglelineTextInputView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\n// flowlint-next-line unclear-type:off\nexport default ((SinglelineTextInputNativeComponent: any): HostComponent<mixed>);\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 strict-local\n * @format\n */\n\nimport type {PartialViewConfig} from '../../Renderer/shims/ReactNativeTypes';\n\nimport {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';\n\ntype PartialViewConfigWithoutName = $Rest<\n PartialViewConfig,\n {uiViewClassName: string},\n>;\n\nconst RCTTextInputViewConfig = {\n bubblingEventTypes: {\n topBlur: {\n phasedRegistrationNames: {\n bubbled: 'onBlur',\n captured: 'onBlurCapture',\n },\n },\n topChange: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture',\n },\n },\n topContentSizeChange: {\n phasedRegistrationNames: {\n captured: 'onContentSizeChangeCapture',\n bubbled: 'onContentSizeChange',\n },\n },\n topEndEditing: {\n phasedRegistrationNames: {\n bubbled: 'onEndEditing',\n captured: 'onEndEditingCapture',\n },\n },\n topFocus: {\n phasedRegistrationNames: {\n bubbled: 'onFocus',\n captured: 'onFocusCapture',\n },\n },\n topKeyPress: {\n phasedRegistrationNames: {\n bubbled: 'onKeyPress',\n captured: 'onKeyPressCapture',\n },\n },\n topSubmitEditing: {\n phasedRegistrationNames: {\n bubbled: 'onSubmitEditing',\n captured: 'onSubmitEditingCapture',\n },\n },\n topTouchCancel: {\n phasedRegistrationNames: {\n bubbled: 'onTouchCancel',\n captured: 'onTouchCancelCapture',\n },\n },\n topTouchEnd: {\n phasedRegistrationNames: {\n bubbled: 'onTouchEnd',\n captured: 'onTouchEndCapture',\n },\n },\n\n topTouchMove: {\n phasedRegistrationNames: {\n bubbled: 'onTouchMove',\n captured: 'onTouchMoveCapture',\n },\n },\n },\n directEventTypes: {\n topTextInput: {\n registrationName: 'onTextInput',\n },\n topKeyPressSync: {\n registrationName: 'onKeyPressSync',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topSelectionChange: {\n registrationName: 'onSelectionChange',\n },\n topChangeSync: {\n registrationName: 'onChangeSync',\n },\n },\n validAttributes: {\n fontSize: true,\n fontWeight: true,\n fontVariant: true,\n // flowlint-next-line untyped-import:off\n textShadowOffset: {diff: require('../../Utilities/differ/sizesDiffer')},\n allowFontScaling: true,\n fontStyle: true,\n textTransform: true,\n textAlign: true,\n fontFamily: true,\n lineHeight: true,\n isHighlighted: true,\n writingDirection: true,\n textDecorationLine: true,\n textShadowRadius: true,\n letterSpacing: true,\n textDecorationStyle: true,\n textDecorationColor: {process: require('../../StyleSheet/processColor')},\n color: {process: require('../../StyleSheet/processColor')},\n maxFontSizeMultiplier: true,\n textShadowColor: {process: require('../../StyleSheet/processColor')},\n editable: true,\n inputAccessoryViewID: true,\n caretHidden: true,\n enablesReturnKeyAutomatically: true,\n placeholderTextColor: {process: require('../../StyleSheet/processColor')},\n clearButtonMode: true,\n keyboardType: true,\n selection: true,\n returnKeyType: true,\n submitBehavior: true,\n mostRecentEventCount: true,\n scrollEnabled: true,\n selectionColor: {process: require('../../StyleSheet/processColor')},\n contextMenuHidden: true,\n secureTextEntry: true,\n placeholder: true,\n autoCorrect: true,\n multiline: true,\n textContentType: true,\n maxLength: true,\n autoCapitalize: true,\n keyboardAppearance: true,\n passwordRules: true,\n spellCheck: true,\n selectTextOnFocus: true,\n text: true,\n clearTextOnFocus: true,\n showSoftInputOnFocus: true,\n autoFocus: true,\n lineBreakStrategyIOS: true,\n ...ConditionallyIgnoredEventHandlers({\n onChange: true,\n onSelectionChange: true,\n onContentSizeChange: true,\n onScroll: true,\n onChangeSync: true,\n onKeyPressSync: true,\n onTextInput: true,\n }),\n },\n};\n\nmodule.exports = (RCTTextInputViewConfig: PartialViewConfigWithoutName);\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 * @format\n * @flow\n */\n\n'use strict';\n\nlet logListeners;\n\ntype LogListeners = {|\n +onDifferentFunctionsIgnored: (nameOne: ?string, nameTwo: ?string) => void,\n|};\n\ntype Options = {|+unsafelyIgnoreFunctions?: boolean|};\n\nfunction unstable_setLogListeners(listeners: ?LogListeners) {\n logListeners = listeners;\n}\n\n/*\n * @returns {bool} true if different, false if equal\n */\nconst deepDiffer = function (\n one: any,\n two: any,\n maxDepthOrOptions: Options | number = -1,\n maybeOptions?: Options,\n): boolean {\n const options =\n typeof maxDepthOrOptions === 'number' ? maybeOptions : maxDepthOrOptions;\n const maxDepth =\n typeof maxDepthOrOptions === 'number' ? maxDepthOrOptions : -1;\n if (maxDepth === 0) {\n return true;\n }\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal unless explicitly configured otherwise\n let unsafelyIgnoreFunctions = options?.unsafelyIgnoreFunctions;\n if (unsafelyIgnoreFunctions == null) {\n if (\n logListeners &&\n logListeners.onDifferentFunctionsIgnored &&\n (!options || !('unsafelyIgnoreFunctions' in options))\n ) {\n logListeners.onDifferentFunctionsIgnored(one.name, two.name);\n }\n unsafelyIgnoreFunctions = true;\n }\n return !unsafelyIgnoreFunctions;\n }\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n if (one.constructor !== two.constructor) {\n return true;\n }\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n const len = one.length;\n if (two.length !== len) {\n return true;\n }\n for (let ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1, options)) {\n return true;\n }\n }\n } else {\n for (const key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1, options)) {\n return true;\n }\n }\n for (const twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n return false;\n};\n\ndeepDiffer.unstable_setLogListeners = unstable_setLogListeners;\nmodule.exports = deepDiffer;\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 strict-local\n * @format\n */\n\n'use strict';\n\nimport type {DangerouslyImpreciseStyleProp} from './StyleSheet';\nimport type {____FlattenStyleProp_Internal} from './StyleSheetTypes';\n\nfunction flattenStyle<+TStyleProp: DangerouslyImpreciseStyleProp>(\n style: ?TStyleProp,\n): ?____FlattenStyleProp_Internal<TStyleProp> {\n if (style === null || typeof style !== 'object') {\n return undefined;\n }\n\n if (!Array.isArray(style)) {\n return style;\n }\n\n const result: {[string]: $FlowFixMe} = {};\n for (let i = 0, styleLength = style.length; i < styleLength; ++i) {\n const computedStyle = flattenStyle(style[i]);\n if (computedStyle) {\n for (const key in computedStyle) {\n result[key] = computedStyle[key];\n }\n }\n }\n return result;\n}\n\nmodule.exports = flattenStyle;\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 * @format\n * @flow strict-local\n */\n\nimport type {ExtendedError} from './ExtendedError';\n\nimport {SyntheticError, handleException} from './ExceptionsManager';\n\nexport type CapturedError = {\n +componentStack: string,\n +error: mixed,\n +errorBoundary: ?{...},\n ...\n};\n\nconst ReactFiberErrorDialog = {\n /**\n * Intercept lifecycle errors and ensure they are shown with the correct stack\n * trace within the native redbox component.\n */\n showErrorDialog({componentStack, error: errorValue}: CapturedError): boolean {\n let error: ?ExtendedError;\n\n // Typically, `errorValue` should be an error. However, other values such as\n // strings (or even null) are sometimes thrown.\n if (errorValue instanceof Error) {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (errorValue: ExtendedError);\n } else if (typeof errorValue === 'string') {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (new SyntheticError(errorValue): ExtendedError);\n } else {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (new SyntheticError('Unspecified error'): ExtendedError);\n }\n try {\n error.componentStack = componentStack;\n error.isComponentError = true;\n } catch {\n // Ignored.\n }\n\n handleException(error, false);\n\n // Return false here to prevent ReactFiberErrorLogger default behavior of\n // logging error details to console.error. Calls to console.error are\n // automatically routed to the native redbox controller, which we've already\n // done above by calling ExceptionsManager.\n return false;\n },\n};\n\nexport default ReactFiberErrorDialog;\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 * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getCurrentBoldTextState: (\n onSuccess: (isBoldTextEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentGrayscaleState: (\n onSuccess: (isGrayscaleEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentInvertColorsState: (\n onSuccess: (isInvertColorsEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentReduceMotionState: (\n onSuccess: (isReduceMotionEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentPrefersCrossFadeTransitionsState?: (\n onSuccess: (prefersCrossFadeTransitions: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentReduceTransparencyState: (\n onSuccess: (isReduceTransparencyEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentVoiceOverState: (\n onSuccess: (isScreenReaderEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +setAccessibilityContentSizeMultipliers: (JSMultipliers: {|\n +extraSmall?: ?number,\n +small?: ?number,\n +medium?: ?number,\n +large?: ?number,\n +extraLarge?: ?number,\n +extraExtraLarge?: ?number,\n +extraExtraExtraLarge?: ?number,\n +accessibilityMedium?: ?number,\n +accessibilityLarge?: ?number,\n +accessibilityExtraLarge?: ?number,\n +accessibilityExtraExtraLarge?: ?number,\n +accessibilityExtraExtraExtraLarge?: ?number,\n |}) => void;\n +setAccessibilityFocus: (reactTag: number) => void;\n +announceForAccessibility: (announcement: string) => void;\n +announceForAccessibilityWithOptions?: (\n announcement: string,\n options: {queue?: boolean},\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('AccessibilityManager'): ?Spec);\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 strict-local\n * @format\n */\n\nimport type {IEventEmitter} from '../vendor/emitter/EventEmitter';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\nexport type RawEventEmitterEvent = $ReadOnly<{|\n eventName: string,\n // We expect, but do not/cannot require, that nativeEvent is an object\n // with the properties: key, elementType (string), type (string), tag (numeric),\n // and a stateNode of the native element/Fiber the event was emitted to.\n nativeEvent: {[string]: mixed},\n|}>;\n\ntype RawEventDefinitions = {\n [eventChannel: string]: [RawEventEmitterEvent],\n};\n\nconst RawEventEmitter: IEventEmitter<RawEventDefinitions> =\n new EventEmitter<RawEventDefinitions>();\n\n// See the React renderer / react repo for how this is used.\n// Raw events are emitted here when they are received in JS\n// and before any event Plugins process them or before components\n// have a chance to respond to them. This allows you to implement\n// app-specific perf monitoring, which is unimplemented by default,\n// making this entire RawEventEmitter do nothing by default until\n// *you* add listeners for your own app.\n// Besides perf monitoring and maybe debugging, this RawEventEmitter\n// should not be used.\nexport default RawEventEmitter;\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 * @format\n * @flow strict-local\n */\n\n// Make sure global Event is defined\nimport EventPolyfill from './EventPolyfill';\n\ntype CustomEvent$Options = $ReadOnly<{|\n bubbles?: boolean,\n cancelable?: boolean,\n composed?: boolean,\n detail?: {...},\n|}>;\n\nclass CustomEvent extends EventPolyfill {\n detail: ?{...};\n\n constructor(typeArg: string, options: CustomEvent$Options) {\n const {bubbles, cancelable, composed} = options;\n super(typeArg, {bubbles, cancelable, composed});\n\n this.detail = options.detail; // this would correspond to `NativeEvent` in SyntheticEvent\n }\n}\n\nexport default CustomEvent;\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 * @format\n * @flow strict-local\n */\n\n// https://dom.spec.whatwg.org/#dictdef-eventinit\ntype Event$Init = {\n bubbles?: boolean,\n cancelable?: boolean,\n composed?: boolean,\n /** Non-standard. See `composed` instead. */\n scoped?: boolean,\n ...\n};\n\n/**\n * This is a copy of the Event interface defined in Flow:\n * https://github.com/facebook/flow/blob/741104e69c43057ebd32804dd6bcc1b5e97548ea/lib/dom.js\n * which is itself a faithful interface of the W3 spec:\n * https://dom.spec.whatwg.org/#interface-event\n *\n * Since Flow assumes that Event is provided and is on the global object,\n * we must provide an implementation of Event for CustomEvent (and future\n * alignment of React Native's event system with the W3 spec).\n */\ninterface IEvent {\n constructor(type: string, eventInitDict?: Event$Init): void;\n /**\n * Returns the type of event, e.g. \"click\", \"hashchange\", or \"submit\".\n */\n +type: string;\n /**\n * Returns the object to which event is dispatched (its target).\n */\n +target: EventTarget; // TODO: nullable\n /** @deprecated */\n +srcElement: Element; // TODO: nullable\n /**\n * Returns the object whose event listener's callback is currently being invoked.\n */\n +currentTarget: EventTarget; // TODO: nullable\n /**\n * Returns the invocation target objects of event's path (objects on which\n * listeners will be invoked), except for any nodes in shadow trees of which\n * the shadow root's mode is \"closed\" that are not reachable from event's\n * currentTarget.\n */\n composedPath(): Array<EventTarget>;\n\n +NONE: number;\n +AT_TARGET: number;\n +BUBBLING_PHASE: number;\n +CAPTURING_PHASE: number;\n /**\n * Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET,\n * and BUBBLING_PHASE.\n */\n +eventPhase: number;\n\n /**\n * When dispatched in a tree, invoking this method prevents event from reaching\n * any objects other than the current object.\n */\n stopPropagation(): void;\n /**\n * Invoking this method prevents event from reaching any registered event\n * listeners after the current one finishes running and, when dispatched in a\n * tree, also prevents event from reaching any other objects.\n */\n stopImmediatePropagation(): void;\n\n /**\n * Returns true or false depending on how event was initialized. True if\n * event goes through its target's ancestors in reverse tree order, and\n * false otherwise.\n */\n +bubbles: boolean;\n /**\n * Returns true or false depending on how event was initialized. Its\n * return value does not always carry meaning, but true can indicate\n * that part of the operation during which event was dispatched, can\n * be canceled by invoking the preventDefault() method.\n */\n +cancelable: boolean;\n // returnValue: boolean; // legacy, and some subclasses still define it as a string!\n /**\n * If invoked when the cancelable attribute value is true, and while\n * executing a listener for the event with passive set to false, signals to\n * the operation that caused event to be dispatched that it needs to be\n * canceled.\n */\n preventDefault(): void;\n /**\n * Returns true if preventDefault() was invoked successfully to indicate\n * cancelation, and false otherwise.\n */\n +defaultPrevented: boolean;\n /**\n * Returns true or false depending on how event was initialized. True if\n * event invokes listeners past a ShadowRoot node that is the root of its\n * target, and false otherwise.\n */\n +composed: boolean;\n\n /**\n * Returns true if event was dispatched by the user agent, and false otherwise.\n */\n +isTrusted: boolean;\n /**\n * Returns the event's timestamp as the number of milliseconds measured relative\n * to the time origin.\n */\n +timeStamp: number;\n\n /** Non-standard. See Event.prototype.composedPath */\n +deepPath?: () => EventTarget[];\n /** Non-standard. See Event.prototype.composed */\n +scoped: boolean;\n\n /**\n * @deprecated\n */\n initEvent(type: string, bubbles: boolean, cancelable: boolean): void;\n}\n\nclass EventPolyfill implements IEvent {\n type: string;\n bubbles: boolean;\n cancelable: boolean;\n composed: boolean;\n // Non-standard. See `composed` instead.\n scoped: boolean;\n isTrusted: boolean;\n defaultPrevented: boolean;\n timeStamp: number;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n NONE: number;\n AT_TARGET: number;\n BUBBLING_PHASE: number;\n CAPTURING_PHASE: number;\n\n eventPhase: number;\n\n currentTarget: EventTarget; // TODO: nullable\n target: EventTarget; // TODO: nullable\n /** @deprecated */\n srcElement: Element; // TODO: nullable\n\n // React Native-specific: proxy data to a SyntheticEvent when\n // certain methods are called.\n // SyntheticEvent will also have a reference to this instance -\n // it is circular - and both classes use this reference to keep\n // data with the other in sync.\n _syntheticEvent: mixed;\n\n constructor(type: string, eventInitDict?: Event$Init): void {\n this.type = type;\n this.bubbles = !!(eventInitDict?.bubbles || false);\n this.cancelable = !!(eventInitDict?.cancelable || false);\n this.composed = !!(eventInitDict?.composed || false);\n this.scoped = !!(eventInitDict?.scoped || false);\n\n // TODO: somehow guarantee that only \"private\" instantiations of Event\n // can set this to true\n this.isTrusted = false;\n\n // TODO: in the future we'll want to make sure this has the same\n // time-basis as events originating from native\n this.timeStamp = Date.now();\n\n this.defaultPrevented = false;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n this.NONE = 0;\n this.AT_TARGET = 1;\n this.BUBBLING_PHASE = 2;\n this.CAPTURING_PHASE = 3;\n this.eventPhase = this.NONE;\n\n // $FlowFixMe\n this.currentTarget = null;\n // $FlowFixMe\n this.target = null;\n // $FlowFixMe\n this.srcElement = null;\n }\n\n composedPath(): Array<EventTarget> {\n throw new Error('TODO: not yet implemented');\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n\n if (this._syntheticEvent != null) {\n // $FlowFixMe\n this._syntheticEvent.preventDefault();\n }\n }\n\n initEvent(type: string, bubbles: boolean, cancelable: boolean): void {\n throw new Error(\n 'TODO: not yet implemented. This method is also deprecated.',\n );\n }\n\n stopImmediatePropagation(): void {\n throw new Error('TODO: not yet implemented');\n }\n\n stopPropagation(): void {\n if (this._syntheticEvent != null) {\n // $FlowFixMe\n this._syntheticEvent.stopPropagation();\n }\n }\n\n setSyntheticEvent(value: mixed): void {\n this._syntheticEvent = value;\n }\n}\n\n// Assertion magic for polyfill follows.\ndeclare var checkEvent: Event; // eslint-disable-line no-unused-vars\n\n/*::\n// This can be a strict mode error at runtime so put it in a Flow comment.\n(checkEvent: IEvent);\n*/\n\nglobal.Event = EventPolyfill;\n\nexport default EventPolyfill;\n","/**\n * Copyright (c) Facebook, 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 * @noflow\n * @nolint\n * @providesModule ReactFabric-prod\n * @preventMunge\n * @generated SignedSource<<fd9d50d45a1497af23e636e66fa0284b>>\n */\n\n\"use strict\";\nrequire(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore\");\nvar ReactNativePrivateInterface = require(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInterface\"),\n React = require(\"react\"),\n Scheduler = require(\"scheduler\");\nfunction invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\nvar hasError = !1,\n caughtError = null,\n hasRethrowError = !1,\n rethrowError = null,\n reporter = {\n onError: function(error) {\n hasError = !0;\n caughtError = error;\n }\n };\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = !1;\n caughtError = null;\n invokeGuardedCallbackImpl.apply(reporter, arguments);\n}\nfunction invokeGuardedCallbackAndCatchFirstError(\n name,\n func,\n context,\n a,\n b,\n c,\n d,\n e,\n f\n) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n if (hasError) {\n var error = caughtError;\n hasError = !1;\n caughtError = null;\n } else\n throw Error(\n \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\"\n );\n hasRethrowError || ((hasRethrowError = !0), (rethrowError = error));\n }\n}\nvar isArrayImpl = Array.isArray,\n getFiberCurrentPropsFromNode = null,\n getInstanceFromNode = null,\n getNodeFromInstance = null;\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || \"unknown-event\";\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, void 0, event);\n event.currentTarget = null;\n}\nfunction executeDirectDispatch(event) {\n var dispatchListener = event._dispatchListeners,\n dispatchInstance = event._dispatchInstances;\n if (isArrayImpl(dispatchListener))\n throw Error(\"executeDirectDispatch(...): Invalid `event`.\");\n event.currentTarget = dispatchListener\n ? getNodeFromInstance(dispatchInstance)\n : null;\n dispatchListener = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return dispatchListener;\n}\nvar assign = Object.assign;\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction SyntheticEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n) {\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n this._dispatchInstances = this._dispatchListeners = null;\n dispatchConfig = this.constructor.Interface;\n for (var propName in dispatchConfig)\n dispatchConfig.hasOwnProperty(propName) &&\n ((targetInst = dispatchConfig[propName])\n ? (this[propName] = targetInst(nativeEvent))\n : \"target\" === propName\n ? (this.target = nativeEventTarget)\n : (this[propName] = nativeEvent[propName]));\n this.isDefaultPrevented = (null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue)\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n}\nassign(SyntheticEvent.prototype, {\n preventDefault: function() {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble && (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function() {\n this.isPersistent = functionThatReturnsTrue;\n },\n isPersistent: functionThatReturnsFalse,\n destructor: function() {\n var Interface = this.constructor.Interface,\n propName;\n for (propName in Interface) this[propName] = null;\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\nSyntheticEvent.Interface = {\n type: null,\n target: null,\n currentTarget: function() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\nSyntheticEvent.extend = function(Interface) {\n function E() {}\n function Class() {\n return Super.apply(this, arguments);\n }\n var Super = this;\n E.prototype = Super.prototype;\n var prototype = new E();\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.extend = Super.extend;\n addEventPoolingTo(Class);\n return Class;\n};\naddEventPoolingTo(SyntheticEvent);\nfunction createOrGetPooledEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeInst\n) {\n if (this.eventPool.length) {\n var instance = this.eventPool.pop();\n this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new this(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\nfunction releasePooledEvent(event) {\n if (!(event instanceof this))\n throw Error(\n \"Trying to release an event instance into a pool of a different type.\"\n );\n event.destructor();\n 10 > this.eventPool.length && this.eventPool.push(event);\n}\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.getPooled = createOrGetPooledEvent;\n EventConstructor.eventPool = [];\n EventConstructor.release = releasePooledEvent;\n}\nvar ResponderSyntheticEvent = SyntheticEvent.extend({\n touchHistory: function() {\n return null;\n }\n});\nfunction isStartish(topLevelType) {\n return \"topTouchStart\" === topLevelType;\n}\nfunction isMoveish(topLevelType) {\n return \"topTouchMove\" === topLevelType;\n}\nvar startDependencies = [\"topTouchStart\"],\n moveDependencies = [\"topTouchMove\"],\n endDependencies = [\"topTouchCancel\", \"topTouchEnd\"],\n touchBank = [],\n touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\nfunction timestampForTouch(touch) {\n return touch.timeStamp || touch.timestamp;\n}\nfunction getTouchIdentifier(_ref) {\n _ref = _ref.identifier;\n if (null == _ref) throw Error(\"Touch object is missing identifier.\");\n return _ref;\n}\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch),\n touchRecord = touchBank[identifier];\n touchRecord\n ? ((touchRecord.touchActive = !0),\n (touchRecord.startPageX = touch.pageX),\n (touchRecord.startPageY = touch.pageY),\n (touchRecord.startTimeStamp = timestampForTouch(touch)),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchRecord.previousPageX = touch.pageX),\n (touchRecord.previousPageY = touch.pageY),\n (touchRecord.previousTimeStamp = timestampForTouch(touch)))\n : ((touchRecord = {\n touchActive: !0,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n }),\n (touchBank[identifier] = touchRecord));\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !0),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !1),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nvar instrumentationCallback,\n ResponderTouchHistoryStore = {\n instrument: function(callback) {\n instrumentationCallback = callback;\n },\n recordTouchTrack: function(topLevelType, nativeEvent) {\n null != instrumentationCallback &&\n instrumentationCallback(topLevelType, nativeEvent);\n if (isMoveish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchMove);\n else if (isStartish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchStart),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches &&\n (touchHistory.indexOfSingleActiveTouch =\n nativeEvent.touches[0].identifier);\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (\n (nativeEvent.changedTouches.forEach(recordTouchEnd),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches)\n )\n for (\n topLevelType = 0;\n topLevelType < touchBank.length;\n topLevelType++\n )\n if (\n ((nativeEvent = touchBank[topLevelType]),\n null != nativeEvent && nativeEvent.touchActive)\n ) {\n touchHistory.indexOfSingleActiveTouch = topLevelType;\n break;\n }\n },\n touchHistory: touchHistory\n };\nfunction accumulate(current, next) {\n if (null == next)\n throw Error(\n \"accumulate(...): Accumulated items must not be null or undefined.\"\n );\n return null == current\n ? next\n : isArrayImpl(current)\n ? current.concat(next)\n : isArrayImpl(next)\n ? [current].concat(next)\n : [current, next];\n}\nfunction accumulateInto(current, next) {\n if (null == next)\n throw Error(\n \"accumulateInto(...): Accumulated items must not be null or undefined.\"\n );\n if (null == current) return next;\n if (isArrayImpl(current)) {\n if (isArrayImpl(next)) return current.push.apply(current, next), current;\n current.push(next);\n return current;\n }\n return isArrayImpl(next) ? [current].concat(next) : [current, next];\n}\nfunction forEachAccumulated(arr, cb, scope) {\n Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr);\n}\nvar responderInst = null,\n trackedTouchCount = 0;\nfunction changeResponder(nextResponderInst, blockHostResponder) {\n var oldResponderInst = responderInst;\n responderInst = nextResponderInst;\n if (null !== ResponderEventPlugin.GlobalResponderHandler)\n ResponderEventPlugin.GlobalResponderHandler.onChange(\n oldResponderInst,\n nextResponderInst,\n blockHostResponder\n );\n}\nvar eventTypes = {\n startShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onStartShouldSetResponder\",\n captured: \"onStartShouldSetResponderCapture\"\n },\n dependencies: startDependencies\n },\n scrollShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onScrollShouldSetResponder\",\n captured: \"onScrollShouldSetResponderCapture\"\n },\n dependencies: [\"topScroll\"]\n },\n selectionChangeShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onSelectionChangeShouldSetResponder\",\n captured: \"onSelectionChangeShouldSetResponderCapture\"\n },\n dependencies: [\"topSelectionChange\"]\n },\n moveShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onMoveShouldSetResponder\",\n captured: \"onMoveShouldSetResponderCapture\"\n },\n dependencies: moveDependencies\n },\n responderStart: {\n registrationName: \"onResponderStart\",\n dependencies: startDependencies\n },\n responderMove: {\n registrationName: \"onResponderMove\",\n dependencies: moveDependencies\n },\n responderEnd: {\n registrationName: \"onResponderEnd\",\n dependencies: endDependencies\n },\n responderRelease: {\n registrationName: \"onResponderRelease\",\n dependencies: endDependencies\n },\n responderTerminationRequest: {\n registrationName: \"onResponderTerminationRequest\",\n dependencies: []\n },\n responderGrant: { registrationName: \"onResponderGrant\", dependencies: [] },\n responderReject: { registrationName: \"onResponderReject\", dependencies: [] },\n responderTerminate: {\n registrationName: \"onResponderTerminate\",\n dependencies: []\n }\n};\nfunction getParent(inst) {\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n return inst ? inst : null;\n}\nfunction traverseTwoPhase(inst, fn, arg) {\n for (var path = []; inst; ) path.push(inst), (inst = getParent(inst));\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction getListener(inst, registrationName) {\n inst = inst.stateNode;\n if (null === inst) return null;\n inst = getFiberCurrentPropsFromNode(inst);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n return inst;\n}\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (\n (phase = getListener(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase]\n ))\n )\n (event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n phase\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n ));\n}\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listener = getListener(inst, event.dispatchConfig.registrationName);\n listener &&\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listener\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n )));\n }\n }\n}\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n targetInst = targetInst ? getParent(targetInst) : null;\n traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event);\n }\n}\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n}\nvar ResponderEventPlugin = {\n _getResponder: function() {\n return responderInst;\n },\n eventTypes: eventTypes,\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (isStartish(topLevelType)) trackedTouchCount += 1;\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (0 <= trackedTouchCount) --trackedTouchCount;\n else return null;\n ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent);\n if (\n targetInst &&\n ((\"topScroll\" === topLevelType && !nativeEvent.responderIgnoreScroll) ||\n (0 < trackedTouchCount && \"topSelectionChange\" === topLevelType) ||\n isStartish(topLevelType) ||\n isMoveish(topLevelType))\n ) {\n var shouldSetEventType = isStartish(topLevelType)\n ? eventTypes.startShouldSetResponder\n : isMoveish(topLevelType)\n ? eventTypes.moveShouldSetResponder\n : \"topSelectionChange\" === topLevelType\n ? eventTypes.selectionChangeShouldSetResponder\n : eventTypes.scrollShouldSetResponder;\n if (responderInst)\n b: {\n var JSCompiler_temp = responderInst;\n for (\n var depthA = 0, tempA = JSCompiler_temp;\n tempA;\n tempA = getParent(tempA)\n )\n depthA++;\n tempA = 0;\n for (var tempB = targetInst; tempB; tempB = getParent(tempB))\n tempA++;\n for (; 0 < depthA - tempA; )\n (JSCompiler_temp = getParent(JSCompiler_temp)), depthA--;\n for (; 0 < tempA - depthA; )\n (targetInst = getParent(targetInst)), tempA--;\n for (; depthA--; ) {\n if (\n JSCompiler_temp === targetInst ||\n JSCompiler_temp === targetInst.alternate\n )\n break b;\n JSCompiler_temp = getParent(JSCompiler_temp);\n targetInst = getParent(targetInst);\n }\n JSCompiler_temp = null;\n }\n else JSCompiler_temp = targetInst;\n targetInst = JSCompiler_temp;\n JSCompiler_temp = targetInst === responderInst;\n shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory;\n JSCompiler_temp\n ? forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingleSkipTarget\n )\n : forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingle\n );\n b: {\n JSCompiler_temp = shouldSetEventType._dispatchListeners;\n targetInst = shouldSetEventType._dispatchInstances;\n if (isArrayImpl(JSCompiler_temp))\n for (\n depthA = 0;\n depthA < JSCompiler_temp.length &&\n !shouldSetEventType.isPropagationStopped();\n depthA++\n ) {\n if (\n JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])\n ) {\n JSCompiler_temp = targetInst[depthA];\n break b;\n }\n }\n else if (\n JSCompiler_temp &&\n JSCompiler_temp(shouldSetEventType, targetInst)\n ) {\n JSCompiler_temp = targetInst;\n break b;\n }\n JSCompiler_temp = null;\n }\n shouldSetEventType._dispatchInstances = null;\n shouldSetEventType._dispatchListeners = null;\n shouldSetEventType.isPersistent() ||\n shouldSetEventType.constructor.release(shouldSetEventType);\n if (JSCompiler_temp && JSCompiler_temp !== responderInst)\n if (\n ((shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderGrant,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (targetInst = !0 === executeDirectDispatch(shouldSetEventType)),\n responderInst)\n )\n if (\n ((depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminationRequest,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (depthA.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle),\n (tempA =\n !depthA._dispatchListeners || executeDirectDispatch(depthA)),\n depthA.isPersistent() || depthA.constructor.release(depthA),\n tempA)\n ) {\n depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminate,\n responderInst,\n nativeEvent,\n nativeEventTarget\n );\n depthA.touchHistory = ResponderTouchHistoryStore.touchHistory;\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle);\n var JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n [shouldSetEventType, depthA]\n );\n changeResponder(JSCompiler_temp, targetInst);\n } else\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderReject,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n else\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n )),\n changeResponder(JSCompiler_temp, targetInst);\n else JSCompiler_temp$jscomp$0 = null;\n } else JSCompiler_temp$jscomp$0 = null;\n shouldSetEventType = responderInst && isStartish(topLevelType);\n JSCompiler_temp = responderInst && isMoveish(topLevelType);\n targetInst =\n responderInst &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType);\n if (\n (shouldSetEventType = shouldSetEventType\n ? eventTypes.responderStart\n : JSCompiler_temp\n ? eventTypes.responderMove\n : targetInst\n ? eventTypes.responderEnd\n : null)\n )\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n shouldSetEventType = responderInst && \"topTouchCancel\" === topLevelType;\n if (\n (topLevelType =\n responderInst &&\n !shouldSetEventType &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType))\n )\n a: {\n if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length)\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < topLevelType.length;\n JSCompiler_temp++\n )\n if (\n ((targetInst = topLevelType[JSCompiler_temp].target),\n null !== targetInst &&\n void 0 !== targetInst &&\n 0 !== targetInst)\n ) {\n depthA = getInstanceFromNode(targetInst);\n b: {\n for (targetInst = responderInst; depthA; ) {\n if (\n targetInst === depthA ||\n targetInst === depthA.alternate\n ) {\n targetInst = !0;\n break b;\n }\n depthA = getParent(depthA);\n }\n targetInst = !1;\n }\n if (targetInst) {\n topLevelType = !1;\n break a;\n }\n }\n topLevelType = !0;\n }\n if (\n (topLevelType = shouldSetEventType\n ? eventTypes.responderTerminate\n : topLevelType\n ? eventTypes.responderRelease\n : null)\n )\n (nativeEvent = ResponderSyntheticEvent.getPooled(\n topLevelType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n nativeEvent\n )),\n changeResponder(null);\n return JSCompiler_temp$jscomp$0;\n },\n GlobalResponderHandler: null,\n injection: {\n injectGlobalResponderHandler: function(GlobalResponderHandler) {\n ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;\n }\n }\n },\n eventPluginOrder = null,\n namesToPlugins = {};\nfunction recomputePluginOrdering() {\n if (eventPluginOrder)\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName],\n pluginIndex = eventPluginOrder.indexOf(pluginName);\n if (-1 >= pluginIndex)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" +\n (pluginName + \"`.\")\n );\n if (!plugins[pluginIndex]) {\n if (!pluginModule.extractEvents)\n throw Error(\n \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" +\n (pluginName + \"` does not.\")\n );\n plugins[pluginIndex] = pluginModule;\n pluginIndex = pluginModule.eventTypes;\n for (var eventName in pluginIndex) {\n var JSCompiler_inline_result = void 0;\n var dispatchConfig = pluginIndex[eventName],\n eventName$jscomp$0 = eventName;\n if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0))\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" +\n (eventName$jscomp$0 + \"`.\")\n );\n eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (JSCompiler_inline_result in phasedRegistrationNames)\n phasedRegistrationNames.hasOwnProperty(\n JSCompiler_inline_result\n ) &&\n publishRegistrationName(\n phasedRegistrationNames[JSCompiler_inline_result],\n pluginModule,\n eventName$jscomp$0\n );\n JSCompiler_inline_result = !0;\n } else\n dispatchConfig.registrationName\n ? (publishRegistrationName(\n dispatchConfig.registrationName,\n pluginModule,\n eventName$jscomp$0\n ),\n (JSCompiler_inline_result = !0))\n : (JSCompiler_inline_result = !1);\n if (!JSCompiler_inline_result)\n throw Error(\n \"EventPluginRegistry: Failed to publish event `\" +\n eventName +\n \"` for plugin `\" +\n pluginName +\n \"`.\"\n );\n }\n }\n }\n}\nfunction publishRegistrationName(registrationName, pluginModule) {\n if (registrationNameModules[registrationName])\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" +\n (registrationName + \"`.\")\n );\n registrationNameModules[registrationName] = pluginModule;\n}\nvar plugins = [],\n eventNameDispatchConfigs = {},\n registrationNameModules = {};\nfunction getListeners(\n inst,\n registrationName,\n phase,\n dispatchToImperativeListeners\n) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n inst = getFiberCurrentPropsFromNode(stateNode);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n if (\n !(\n dispatchToImperativeListeners &&\n stateNode.canonical &&\n stateNode.canonical._eventListeners\n )\n )\n return inst;\n var listeners = [];\n inst && listeners.push(inst);\n var requestedPhaseIsCapture = \"captured\" === phase,\n mangledImperativeRegistrationName = requestedPhaseIsCapture\n ? \"rn:\" + registrationName.replace(/Capture$/, \"\")\n : \"rn:\" + registrationName;\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName] &&\n 0 <\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName]\n .length &&\n stateNode.canonical._eventListeners[\n mangledImperativeRegistrationName\n ].forEach(function(listenerObj) {\n if (\n (null != listenerObj.options.capture && listenerObj.options.capture) ===\n requestedPhaseIsCapture\n ) {\n var listenerFnWrapper = function(syntheticEvent) {\n var eventInst = new ReactNativePrivateInterface.CustomEvent(\n mangledImperativeRegistrationName,\n { detail: syntheticEvent.nativeEvent }\n );\n eventInst.isTrusted = !0;\n eventInst.setSyntheticEvent(syntheticEvent);\n for (\n var _len = arguments.length,\n args = Array(1 < _len ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n )\n args[_key - 1] = arguments[_key];\n listenerObj.listener.apply(listenerObj, [eventInst].concat(args));\n };\n listenerObj.options.once\n ? listeners.push(function() {\n stateNode.canonical.removeEventListener_unstable(\n mangledImperativeRegistrationName,\n listenerObj.listener,\n listenerObj.capture\n );\n listenerObj.invalidated ||\n ((listenerObj.invalidated = !0),\n listenerObj.listener.apply(listenerObj, arguments));\n })\n : listeners.push(listenerFnWrapper);\n }\n });\n return 0 === listeners.length\n ? null\n : 1 === listeners.length\n ? listeners[0]\n : listeners;\n}\nvar customBubblingEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customBubblingEventTypes,\n customDirectEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customDirectEventTypes;\nfunction accumulateListenersAndInstances(inst, event, listeners) {\n var listenersLength = listeners\n ? isArrayImpl(listeners)\n ? listeners.length\n : 1\n : 0;\n if (0 < listenersLength)\n if (\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listeners\n )),\n null == event._dispatchInstances && 1 === listenersLength)\n )\n event._dispatchInstances = inst;\n else\n for (\n event._dispatchInstances = event._dispatchInstances || [],\n isArrayImpl(event._dispatchInstances) ||\n (event._dispatchInstances = [event._dispatchInstances]),\n listeners = 0;\n listeners < listenersLength;\n listeners++\n )\n event._dispatchInstances.push(inst);\n}\nfunction accumulateDirectionalDispatches$1(inst, phase, event) {\n phase = getListeners(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase],\n phase,\n !0\n );\n accumulateListenersAndInstances(inst, event, phase);\n}\nfunction traverseTwoPhase$1(inst, fn, arg, skipBubbling) {\n for (var path = []; inst; ) {\n path.push(inst);\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n inst = inst ? inst : null;\n }\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n if (skipBubbling) fn(path[0], \"bubbled\", arg);\n else\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction accumulateTwoPhaseDispatchesSingle$1(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n event._targetInst,\n accumulateDirectionalDispatches$1,\n event,\n !1\n );\n}\nfunction accumulateDirectDispatchesSingle$1(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listeners = getListeners(\n inst,\n event.dispatchConfig.registrationName,\n \"bubbled\",\n !1\n );\n accumulateListenersAndInstances(inst, event, listeners);\n }\n }\n}\nif (eventPluginOrder)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\"\n );\neventPluginOrder = Array.prototype.slice.call([\n \"ResponderEventPlugin\",\n \"ReactNativeBridgeEventPlugin\"\n]);\nrecomputePluginOrdering();\nvar injectedNamesToPlugins$jscomp$inline_223 = {\n ResponderEventPlugin: ResponderEventPlugin,\n ReactNativeBridgeEventPlugin: {\n eventTypes: {},\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (null == targetInst) return null;\n var bubbleDispatchConfig = customBubblingEventTypes[topLevelType],\n directDispatchConfig = customDirectEventTypes[topLevelType];\n if (!bubbleDispatchConfig && !directDispatchConfig)\n throw Error(\n 'Unsupported top level event type \"' + topLevelType + '\" dispatched'\n );\n topLevelType = SyntheticEvent.getPooled(\n bubbleDispatchConfig || directDispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n if (bubbleDispatchConfig)\n null != topLevelType &&\n null != topLevelType.dispatchConfig.phasedRegistrationNames &&\n topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling\n ? topLevelType &&\n topLevelType.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n topLevelType._targetInst,\n accumulateDirectionalDispatches$1,\n topLevelType,\n !0\n )\n : forEachAccumulated(\n topLevelType,\n accumulateTwoPhaseDispatchesSingle$1\n );\n else if (directDispatchConfig)\n forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);\n else return null;\n return topLevelType;\n }\n }\n },\n isOrderingDirty$jscomp$inline_224 = !1,\n pluginName$jscomp$inline_225;\nfor (pluginName$jscomp$inline_225 in injectedNamesToPlugins$jscomp$inline_223)\n if (\n injectedNamesToPlugins$jscomp$inline_223.hasOwnProperty(\n pluginName$jscomp$inline_225\n )\n ) {\n var pluginModule$jscomp$inline_226 =\n injectedNamesToPlugins$jscomp$inline_223[pluginName$jscomp$inline_225];\n if (\n !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_225) ||\n namesToPlugins[pluginName$jscomp$inline_225] !==\n pluginModule$jscomp$inline_226\n ) {\n if (namesToPlugins[pluginName$jscomp$inline_225])\n throw Error(\n \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" +\n (pluginName$jscomp$inline_225 + \"`.\")\n );\n namesToPlugins[\n pluginName$jscomp$inline_225\n ] = pluginModule$jscomp$inline_226;\n isOrderingDirty$jscomp$inline_224 = !0;\n }\n }\nisOrderingDirty$jscomp$inline_224 && recomputePluginOrdering();\nfunction getInstanceFromInstance(instanceHandle) {\n return instanceHandle;\n}\ngetFiberCurrentPropsFromNode = function(inst) {\n return inst.canonical.currentProps;\n};\ngetInstanceFromNode = getInstanceFromInstance;\ngetNodeFromInstance = function(inst) {\n inst = inst.stateNode.canonical;\n if (!inst._nativeTag) throw Error(\"All native instances should have a tag.\");\n return inst;\n};\nResponderEventPlugin.injection.injectGlobalResponderHandler({\n onChange: function(from, to, blockNativeResponder) {\n var fromOrTo = from || to;\n (fromOrTo = fromOrTo && fromOrTo.stateNode) &&\n fromOrTo.canonical._internalInstanceHandle\n ? (from &&\n nativeFabricUIManager.setIsJSResponder(\n from.stateNode.node,\n !1,\n blockNativeResponder || !1\n ),\n to &&\n nativeFabricUIManager.setIsJSResponder(\n to.stateNode.node,\n !0,\n blockNativeResponder || !1\n ))\n : null !== to\n ? ReactNativePrivateInterface.UIManager.setJSResponder(\n to.stateNode.canonical._nativeTag,\n blockNativeResponder\n )\n : ReactNativePrivateInterface.UIManager.clearJSResponder();\n }\n});\nvar ReactSharedInternals =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.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_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\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\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar 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}\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nfunction getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (type.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n }\n return null;\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiber(parent) {\n parent = findCurrentFiberUsingSlowPath(parent);\n return null !== parent ? findCurrentHostFiberImpl(parent) : null;\n}\nfunction findCurrentHostFiberImpl(node) {\n if (5 === node.tag || 6 === node.tag) return node;\n for (node = node.child; null !== node; ) {\n var match = findCurrentHostFiberImpl(node);\n if (null !== match) return match;\n node = node.sibling;\n }\n return null;\n}\nfunction mountSafeCallback_NOT_REALLY_SAFE(context, callback) {\n return function() {\n if (\n callback &&\n (\"boolean\" !== typeof context.__isMounted || context.__isMounted)\n )\n return callback.apply(context, arguments);\n };\n}\nvar emptyObject = {},\n removedKeys = null,\n removedKeyCount = 0,\n deepDifferOptions = { unsafelyIgnoreFunctions: !0 };\nfunction defaultDiffer(prevProp, nextProp) {\n return \"object\" !== typeof nextProp || null === nextProp\n ? !0\n : ReactNativePrivateInterface.deepDiffer(\n prevProp,\n nextProp,\n deepDifferOptions\n );\n}\nfunction restoreDeletedValuesInNestedArray(\n updatePayload,\n node,\n validAttributes\n) {\n if (isArrayImpl(node))\n for (var i = node.length; i-- && 0 < removedKeyCount; )\n restoreDeletedValuesInNestedArray(\n updatePayload,\n node[i],\n validAttributes\n );\n else if (node && 0 < removedKeyCount)\n for (i in removedKeys)\n if (removedKeys[i]) {\n var nextProp = node[i];\n if (void 0 !== nextProp) {\n var attributeConfig = validAttributes[i];\n if (attributeConfig) {\n \"function\" === typeof nextProp && (nextProp = !0);\n \"undefined\" === typeof nextProp && (nextProp = null);\n if (\"object\" !== typeof attributeConfig)\n updatePayload[i] = nextProp;\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (nextProp =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[i] = nextProp);\n removedKeys[i] = !1;\n removedKeyCount--;\n }\n }\n }\n}\nfunction diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n validAttributes\n) {\n if (!updatePayload && prevProp === nextProp) return updatePayload;\n if (!prevProp || !nextProp)\n return nextProp\n ? addNestedProperty(updatePayload, nextProp, validAttributes)\n : prevProp\n ? clearNestedProperty(updatePayload, prevProp, validAttributes)\n : updatePayload;\n if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp))\n return diffProperties(updatePayload, prevProp, nextProp, validAttributes);\n if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) {\n var minLength =\n prevProp.length < nextProp.length ? prevProp.length : nextProp.length,\n i;\n for (i = 0; i < minLength; i++)\n updatePayload = diffNestedProperty(\n updatePayload,\n prevProp[i],\n nextProp[i],\n validAttributes\n );\n for (; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n for (; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n }\n return isArrayImpl(prevProp)\n ? diffProperties(\n updatePayload,\n ReactNativePrivateInterface.flattenStyle(prevProp),\n nextProp,\n validAttributes\n )\n : diffProperties(\n updatePayload,\n prevProp,\n ReactNativePrivateInterface.flattenStyle(nextProp),\n validAttributes\n );\n}\nfunction addNestedProperty(updatePayload, nextProp, validAttributes) {\n if (!nextProp) return updatePayload;\n if (!isArrayImpl(nextProp))\n return diffProperties(\n updatePayload,\n emptyObject,\n nextProp,\n validAttributes\n );\n for (var i = 0; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction clearNestedProperty(updatePayload, prevProp, validAttributes) {\n if (!prevProp) return updatePayload;\n if (!isArrayImpl(prevProp))\n return diffProperties(\n updatePayload,\n prevProp,\n emptyObject,\n validAttributes\n );\n for (var i = 0; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction diffProperties(updatePayload, prevProps, nextProps, validAttributes) {\n var attributeConfig, propKey;\n for (propKey in nextProps)\n if ((attributeConfig = validAttributes[propKey])) {\n var prevProp = prevProps[propKey];\n var nextProp = nextProps[propKey];\n \"function\" === typeof nextProp &&\n ((nextProp = !0), \"function\" === typeof prevProp && (prevProp = !0));\n \"undefined\" === typeof nextProp &&\n ((nextProp = null),\n \"undefined\" === typeof prevProp && (prevProp = null));\n removedKeys && (removedKeys[propKey] = !1);\n if (updatePayload && void 0 !== updatePayload[propKey])\n if (\"object\" !== typeof attributeConfig)\n updatePayload[propKey] = nextProp;\n else {\n if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[propKey] = attributeConfig);\n }\n else if (prevProp !== nextProp)\n if (\"object\" !== typeof attributeConfig)\n defaultDiffer(prevProp, nextProp) &&\n ((updatePayload || (updatePayload = {}))[propKey] = nextProp);\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ) {\n if (\n void 0 === prevProp ||\n (\"function\" === typeof attributeConfig.diff\n ? attributeConfig.diff(prevProp, nextProp)\n : defaultDiffer(prevProp, nextProp))\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n ((updatePayload || (updatePayload = {}))[\n propKey\n ] = attributeConfig);\n } else\n (removedKeys = null),\n (removedKeyCount = 0),\n (updatePayload = diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n attributeConfig\n )),\n 0 < removedKeyCount &&\n updatePayload &&\n (restoreDeletedValuesInNestedArray(\n updatePayload,\n nextProp,\n attributeConfig\n ),\n (removedKeys = null));\n }\n for (var propKey$2 in prevProps)\n void 0 === nextProps[propKey$2] &&\n (!(attributeConfig = validAttributes[propKey$2]) ||\n (updatePayload && void 0 !== updatePayload[propKey$2]) ||\n ((prevProp = prevProps[propKey$2]),\n void 0 !== prevProp &&\n (\"object\" !== typeof attributeConfig ||\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ? (((updatePayload || (updatePayload = {}))[propKey$2] = null),\n removedKeys || (removedKeys = {}),\n removedKeys[propKey$2] ||\n ((removedKeys[propKey$2] = !0), removedKeyCount++))\n : (updatePayload = clearNestedProperty(\n updatePayload,\n prevProp,\n attributeConfig\n )))));\n return updatePayload;\n}\nfunction batchedUpdatesImpl(fn, bookkeeping) {\n return fn(bookkeeping);\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) return fn(bookkeeping);\n isInsideEventHandler = !0;\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = !1;\n }\n}\nvar eventQueue = null;\nfunction executeDispatchesAndReleaseTopLevel(e) {\n if (e) {\n var dispatchListeners = e._dispatchListeners,\n dispatchInstances = e._dispatchInstances;\n if (isArrayImpl(dispatchListeners))\n for (\n var i = 0;\n i < dispatchListeners.length && !e.isPropagationStopped();\n i++\n )\n executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);\n else\n dispatchListeners &&\n executeDispatch(e, dispatchListeners, dispatchInstances);\n e._dispatchListeners = null;\n e._dispatchInstances = null;\n e.isPersistent() || e.constructor.release(e);\n }\n}\nfunction dispatchEvent(target, topLevelType, nativeEvent) {\n var eventTarget = null;\n if (null != target) {\n var stateNode = target.stateNode;\n null != stateNode && (eventTarget = stateNode.canonical);\n }\n batchedUpdates(function() {\n var event = { eventName: topLevelType, nativeEvent: nativeEvent };\n ReactNativePrivateInterface.RawEventEmitter.emit(topLevelType, event);\n ReactNativePrivateInterface.RawEventEmitter.emit(\"*\", event);\n event = eventTarget;\n for (\n var events = null, legacyPlugins = plugins, i = 0;\n i < legacyPlugins.length;\n i++\n ) {\n var possiblePlugin = legacyPlugins[i];\n possiblePlugin &&\n (possiblePlugin = possiblePlugin.extractEvents(\n topLevelType,\n target,\n nativeEvent,\n event\n )) &&\n (events = accumulateInto(events, possiblePlugin));\n }\n event = events;\n null !== event && (eventQueue = accumulateInto(eventQueue, event));\n event = eventQueue;\n eventQueue = null;\n if (event) {\n forEachAccumulated(event, executeDispatchesAndReleaseTopLevel);\n if (eventQueue)\n throw Error(\n \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\"\n );\n if (hasRethrowError)\n throw ((event = rethrowError),\n (hasRethrowError = !1),\n (rethrowError = null),\n event);\n }\n });\n}\nvar scheduleCallback = Scheduler.unstable_scheduleCallback,\n cancelCallback = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority = Scheduler.unstable_NormalPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 64,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return lanes & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n nonIdlePendingLanes = pendingLanes & 268435455;\n if (0 !== nonIdlePendingLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n 0 !== nonIdleUnblockedLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes)));\n } else\n (nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes));\n if (0 === nextLanes) return 0;\n if (\n 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (pingedLanes = wipLanes & -wipLanes),\n suspendedLanes >= pingedLanes ||\n (16 === suspendedLanes && 0 !== (pingedLanes & 4194240)))\n )\n return wipLanes;\n 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16);\n wipLanes = root.entangledLanes;\n if (0 !== wipLanes)\n for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes; )\n (pendingLanes = 31 - clz32(wipLanes)),\n (suspendedLanes = 1 << pendingLanes),\n (nextLanes |= root[pendingLanes]),\n (wipLanes &= ~suspendedLanes);\n return nextLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n return currentTime + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n root = root.pendingLanes & -1073741825;\n return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane;\n 536870912 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0));\n root = root.eventTimes;\n updateLane = 31 - clz32(updateLane);\n root[updateLane] = eventTime;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n remainingLanes = root.entanglements;\n var eventTimes = root.eventTimes;\n for (root = root.expirationTimes; 0 < noLongerPendingLanes; ) {\n var index$7 = 31 - clz32(noLongerPendingLanes),\n lane = 1 << index$7;\n remainingLanes[index$7] = 0;\n eventTimes[index$7] = -1;\n root[index$7] = -1;\n noLongerPendingLanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nvar currentUpdatePriority = 0;\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 1 < lanes\n ? 4 < lanes\n ? 0 !== (lanes & 268435455)\n ? 16\n : 536870912\n : 4\n : 1;\n}\nfunction shim$1() {\n throw Error(\n \"The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nvar _nativeFabricUIManage = nativeFabricUIManager,\n createNode = _nativeFabricUIManage.createNode,\n cloneNode = _nativeFabricUIManage.cloneNode,\n cloneNodeWithNewChildren = _nativeFabricUIManage.cloneNodeWithNewChildren,\n cloneNodeWithNewChildrenAndProps =\n _nativeFabricUIManage.cloneNodeWithNewChildrenAndProps,\n cloneNodeWithNewProps = _nativeFabricUIManage.cloneNodeWithNewProps,\n createChildNodeSet = _nativeFabricUIManage.createChildSet,\n appendChildNode = _nativeFabricUIManage.appendChild,\n appendChildNodeToSet = _nativeFabricUIManage.appendChildToSet,\n completeRoot = _nativeFabricUIManage.completeRoot,\n registerEventHandler = _nativeFabricUIManage.registerEventHandler,\n fabricMeasure = _nativeFabricUIManage.measure,\n fabricMeasureInWindow = _nativeFabricUIManage.measureInWindow,\n fabricMeasureLayout = _nativeFabricUIManage.measureLayout,\n FabricDiscretePriority = _nativeFabricUIManage.unstable_DiscreteEventPriority,\n fabricGetCurrentEventPriority =\n _nativeFabricUIManage.unstable_getCurrentEventPriority,\n getViewConfigForType =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,\n nextReactTag = 2;\nregisterEventHandler && registerEventHandler(dispatchEvent);\nvar ReactFabricHostComponent = (function() {\n function ReactFabricHostComponent(\n tag,\n viewConfig,\n props,\n internalInstanceHandle\n ) {\n this._nativeTag = tag;\n this.viewConfig = viewConfig;\n this.currentProps = props;\n this._internalInstanceHandle = internalInstanceHandle;\n }\n var _proto = ReactFabricHostComponent.prototype;\n _proto.blur = function() {\n ReactNativePrivateInterface.TextInputState.blurTextInput(this);\n };\n _proto.focus = function() {\n ReactNativePrivateInterface.TextInputState.focusTextInput(this);\n };\n _proto.measure = function(callback) {\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n fabricMeasure(\n stateNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureInWindow = function(callback) {\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n fabricMeasureInWindow(\n stateNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureLayout = function(relativeToNativeNode, onSuccess, onFail) {\n if (\n \"number\" !== typeof relativeToNativeNode &&\n relativeToNativeNode instanceof ReactFabricHostComponent\n ) {\n var toStateNode = this._internalInstanceHandle.stateNode;\n relativeToNativeNode =\n relativeToNativeNode._internalInstanceHandle.stateNode;\n null != toStateNode &&\n null != relativeToNativeNode &&\n fabricMeasureLayout(\n toStateNode.node,\n relativeToNativeNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, onFail),\n mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)\n );\n }\n };\n _proto.setNativeProps = function() {};\n _proto.addEventListener_unstable = function(eventType, listener, options) {\n if (\"string\" !== typeof eventType)\n throw Error(\"addEventListener_unstable eventType must be a string\");\n if (\"function\" !== typeof listener)\n throw Error(\"addEventListener_unstable listener must be a function\");\n var optionsObj =\n \"object\" === typeof options && null !== options ? options : {};\n options =\n (\"boolean\" === typeof options ? options : optionsObj.capture) || !1;\n var once = optionsObj.once || !1;\n optionsObj = optionsObj.passive || !1;\n var eventListeners = this._eventListeners || {};\n null == this._eventListeners && (this._eventListeners = eventListeners);\n var namedEventListeners = eventListeners[eventType] || [];\n null == eventListeners[eventType] &&\n (eventListeners[eventType] = namedEventListeners);\n namedEventListeners.push({\n listener: listener,\n invalidated: !1,\n options: {\n capture: options,\n once: once,\n passive: optionsObj,\n signal: null\n }\n });\n };\n _proto.removeEventListener_unstable = function(eventType, listener, options) {\n var optionsObj =\n \"object\" === typeof options && null !== options ? options : {},\n capture =\n (\"boolean\" === typeof options ? options : optionsObj.capture) || !1;\n (options = this._eventListeners) &&\n (optionsObj = options[eventType]) &&\n (options[eventType] = optionsObj.filter(function(listenerObj) {\n return !(\n listenerObj.listener === listener &&\n listenerObj.options.capture === capture\n );\n }));\n };\n return ReactFabricHostComponent;\n})();\nfunction createTextInstance(\n text,\n rootContainerInstance,\n hostContext,\n internalInstanceHandle\n) {\n hostContext = nextReactTag;\n nextReactTag += 2;\n return {\n node: createNode(\n hostContext,\n \"RCTRawText\",\n rootContainerInstance,\n { text: text },\n internalInstanceHandle\n )\n };\n}\nvar scheduleTimeout = setTimeout,\n cancelTimeout = clearTimeout;\nfunction cloneHiddenInstance(instance) {\n var node = instance.node;\n var JSCompiler_inline_result = diffProperties(\n null,\n emptyObject,\n { style: { display: \"none\" } },\n instance.canonical.viewConfig.validAttributes\n );\n return {\n node: cloneNodeWithNewProps(node, JSCompiler_inline_result),\n canonical: instance.canonical\n };\n}\nfunction describeComponentFrame(name, source, ownerName) {\n source = \"\";\n ownerName && (source = \" (created by \" + ownerName + \")\");\n return \"\\n in \" + (name || \"Unknown\") + source;\n}\nfunction describeFunctionComponentFrame(fn, source) {\n return fn\n ? describeComponentFrame(fn.displayName || fn.name || null, source, null)\n : \"\";\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar emptyContextObject = {},\n contextStackCursor = createCursor(emptyContextObject),\n didPerformWorkStackCursor = createCursor(!1),\n previousContext = emptyContextObject;\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var contextTypes = workInProgress.type.contextTypes;\n if (!contextTypes) return emptyContextObject;\n var instance = workInProgress.stateNode;\n if (\n instance &&\n instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext\n )\n return instance.__reactInternalMemoizedMaskedChildContext;\n var context = {},\n key;\n for (key in contextTypes) context[key] = unmaskedContext[key];\n instance &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return context;\n}\nfunction isContextProvider(type) {\n type = type.childContextTypes;\n return null !== type && void 0 !== type;\n}\nfunction popContext() {\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n}\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n if (contextStackCursor.current !== emptyContextObject)\n throw Error(\n \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\"\n );\n push(contextStackCursor, context);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction processChildContext(fiber, type, parentContext) {\n var instance = fiber.stateNode;\n type = type.childContextTypes;\n if (\"function\" !== typeof instance.getChildContext) return parentContext;\n instance = instance.getChildContext();\n for (var contextKey in instance)\n if (!(contextKey in type))\n throw Error(\n (getComponentNameFromFiber(fiber) || \"Unknown\") +\n '.getChildContext(): key \"' +\n contextKey +\n '\" is not defined in childContextTypes.'\n );\n return assign({}, parentContext, instance);\n}\nfunction pushContextProvider(workInProgress) {\n workInProgress =\n ((workInProgress = workInProgress.stateNode) &&\n workInProgress.__reactInternalMemoizedMergedChildContext) ||\n emptyContextObject;\n previousContext = contextStackCursor.current;\n push(contextStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current);\n return !0;\n}\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n var instance = workInProgress.stateNode;\n if (!instance)\n throw Error(\n \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didChange\n ? ((workInProgress = processChildContext(\n workInProgress,\n type,\n previousContext\n )),\n (instance.__reactInternalMemoizedMergedChildContext = workInProgress),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n push(contextStackCursor, workInProgress))\n : pop(didPerformWorkStackCursor);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n syncQueue = null,\n includesLegacySyncCallbacks = !1,\n isFlushingSyncQueue = !1;\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && null !== syncQueue) {\n isFlushingSyncQueue = !0;\n var i = 0,\n previousUpdatePriority = currentUpdatePriority;\n try {\n var queue = syncQueue;\n for (currentUpdatePriority = 1; i < queue.length; i++) {\n var callback = queue[i];\n do callback = callback(!0);\n while (null !== callback);\n }\n syncQueue = null;\n includesLegacySyncCallbacks = !1;\n } catch (error) {\n throw (null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n error);\n } finally {\n (currentUpdatePriority = previousUpdatePriority),\n (isFlushingSyncQueue = !1);\n }\n }\n return null;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null;\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n --forkStackIndex,\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null);\n}\nvar hydrationErrors = null,\n ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n return describeComponentFrame(fiber.type, null, null);\n case 16:\n return describeComponentFrame(\"Lazy\", null, null);\n case 13:\n return describeComponentFrame(\"Suspense\", null, null);\n case 19:\n return describeComponentFrame(\"SuspenseList\", null, null);\n case 0:\n case 2:\n case 15:\n return describeFunctionComponentFrame(fiber.type, null);\n case 11:\n return describeFunctionComponentFrame(fiber.type.render, null);\n case 1:\n return (fiber = describeFunctionComponentFrame(fiber.type, null)), fiber;\n default:\n return \"\";\n }\n}\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n baseProps = assign({}, baseProps);\n Component = Component.defaultProps;\n for (var propName in Component)\n void 0 === baseProps[propName] &&\n (baseProps[propName] = Component[propName]);\n return baseProps;\n }\n return baseProps;\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null,\n lastFullyObservedContext = null;\nfunction resetContextDependencies() {\n lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null;\n}\nfunction popProvider(context) {\n var currentValue = valueCursor.current;\n pop(valueCursor);\n context._currentValue2 = currentValue;\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastFullyObservedContext = lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress &&\n null !== workInProgress.firstContext &&\n (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = !0),\n (workInProgress.firstContext = null));\n}\nfunction readContext(context) {\n var value = context._currentValue2;\n if (lastFullyObservedContext !== context)\n if (\n ((context = { context: context, memoizedValue: value, next: null }),\n null === lastContextDependency)\n ) {\n if (null === currentlyRenderingFiber)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n currentlyRenderingFiber.dependencies = {\n lanes: 0,\n firstContext: context\n };\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n null === concurrentQueues\n ? (concurrentQueues = [queue])\n : concurrentQueues.push(queue);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n alternate = sourceFiber;\n for (sourceFiber = sourceFiber.return; null !== sourceFiber; )\n (sourceFiber.childLanes |= lane),\n (alternate = sourceFiber.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n (alternate = sourceFiber),\n (sourceFiber = sourceFiber.return);\n return 3 === alternate.tag ? alternate.stateNode : null;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, interleaved: null, lanes: 0 },\n effects: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n effects: current.effects\n });\n}\nfunction createUpdate(eventTime, lane) {\n return {\n eventTime: eventTime,\n lane: lane,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n }\n pending = updateQueue.interleaved;\n null === pending\n ? ((update.next = update), pushConcurrentUpdateQueue(updateQueue))\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194240))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n eventTime: queue.eventTime,\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: queue.callback,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n effects: current.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance,\n renderLanes\n) {\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane,\n updateEventTime = pendingQueue.eventTime;\n if ((renderLanes & updateLane) === updateLane) {\n null !== current &&\n (current = current.next = {\n eventTime: updateEventTime,\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n updateEventTime = instance;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(\n updateEventTime,\n newState,\n updateLane\n );\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(updateEventTime, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n null !== pendingQueue.callback &&\n 0 !== pendingQueue.lane &&\n ((workInProgress$jscomp$0.flags |= 64),\n (updateLane = queue.effects),\n null === updateLane\n ? (queue.effects = [pendingQueue])\n : updateLane.push(pendingQueue));\n } else\n (updateEventTime = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = updateEventTime),\n (lastPendingUpdate = newState))\n : (current = current.next = updateEventTime),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (updateLane = pendingQueue),\n (pendingQueue = updateLane.next),\n (updateLane.next = null),\n (queue.lastBaseUpdate = updateLane),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n props = queue.shared.interleaved;\n if (null !== props) {\n queue = props;\n do (lastBaseUpdate |= queue.lane), (queue = queue.next);\n while (queue !== props);\n } else null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n finishedWork = finishedQueue.effects;\n finishedQueue.effects = null;\n if (null !== finishedWork)\n for (\n finishedQueue = 0;\n finishedQueue < finishedWork.length;\n finishedQueue++\n ) {\n var effect = finishedWork[finishedQueue],\n callback = effect.callback;\n if (null !== callback) {\n effect.callback = null;\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(instance);\n }\n }\n}\nvar emptyRefsObject = new React.Component().refs;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function(component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function(inst, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane, eventTime),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = !1,\n unmaskedContext = emptyContextObject;\n var context = ctor.contextType;\n \"object\" === typeof context && null !== context\n ? (context = readContext(context))\n : ((unmaskedContext = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (isLegacyContextConsumer = ctor.contextTypes),\n (context = (isLegacyContextConsumer =\n null !== isLegacyContextConsumer && void 0 !== isLegacyContextConsumer)\n ? getMaskedContext(workInProgress, unmaskedContext)\n : emptyContextObject));\n ctor = new ctor(props, context);\n workInProgress.memoizedState =\n null !== ctor.state && void 0 !== ctor.state ? ctor.state : null;\n ctor.updater = classComponentUpdater;\n workInProgress.stateNode = ctor;\n ctor._reactInternals = workInProgress;\n isLegacyContextConsumer &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return ctor;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (instance.context = readContext(contextType))\n : ((contextType = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (instance.context = getMaskedContext(workInProgress, contextType)));\n instance.state = workInProgress.memoizedState;\n contextType = ctor.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof ctor.getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n ((ctor = instance.state),\n \"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount(),\n ctor !== instance.state &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null),\n processUpdateQueue(workInProgress, newProps, instance, renderLanes),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4);\n}\nfunction coerceRef(returnFiber, current, element) {\n returnFiber = element.ref;\n if (\n null !== returnFiber &&\n \"function\" !== typeof returnFiber &&\n \"object\" !== typeof returnFiber\n ) {\n if (element._owner) {\n element = element._owner;\n if (element) {\n if (1 !== element.tag)\n throw Error(\n \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\"\n );\n var inst = element.stateNode;\n }\n if (!inst)\n throw Error(\n \"Missing owner for string ref \" +\n returnFiber +\n \". This error is likely caused by a bug in React. Please file an issue.\"\n );\n var resolvedInst = inst,\n stringRef = \"\" + returnFiber;\n if (\n null !== current &&\n null !== current.ref &&\n \"function\" === typeof current.ref &&\n current.ref._stringRef === stringRef\n )\n return current.ref;\n current = function(value) {\n var refs = resolvedInst.refs;\n refs === emptyRefsObject && (refs = resolvedInst.refs = {});\n null === value ? delete refs[stringRef] : (refs[stringRef] = value);\n };\n current._stringRef = stringRef;\n return current;\n }\n if (\"string\" !== typeof returnFiber)\n throw Error(\n \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\"\n );\n if (!element._owner)\n throw Error(\n \"Element ref was specified as a string (\" +\n returnFiber +\n \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\"\n );\n }\n return returnFiber;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n for (returnFiber = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? returnFiber.set(currentFirstChild.key, currentFirstChild)\n : returnFiber.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return returnFiber;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 2;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 2);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (lanes = useFiber(current, element.props)),\n (lanes.ref = coerceRef(returnFiber, current, element)),\n (lanes.return = returnFiber),\n lanes\n );\n lanes = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n lanes.ref = coerceRef(returnFiber, current, element);\n lanes.return = returnFiber;\n return lanes;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(returnFiber, null, newChild)),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return createChild(returnFiber, init(newChild._payload), lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n init(newChild._payload),\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildrenIterable,\n lanes\n ) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n if (\"function\" !== typeof iteratorFn)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n newChildrenIterable = iteratorFn.call(newChildrenIterable);\n if (null == newChildrenIterable)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var previousNewFiber = (iteratorFn = null),\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildrenIterable.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildrenIterable.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (iteratorFn = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn;\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildrenIterable.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n return iteratorFn;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n !step.done;\n newIdx++, step = newChildrenIterable.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return iteratorFn;\n }\n function reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (\n var key = newChild.key, child = currentFirstChild;\n null !== child;\n\n ) {\n if (child.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === child.tag) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(\n child,\n newChild.props.children\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n } else if (\n child.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === child.type)\n ) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(child, newChild.props);\n currentFirstChild.ref = coerceRef(\n returnFiber,\n child,\n newChild\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n deleteRemainingChildren(returnFiber, child);\n break;\n } else deleteChild(returnFiber, child);\n child = child.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((currentFirstChild = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(\n returnFiber,\n currentFirstChild,\n newChild\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (child = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === child)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n currentFirstChild = useFiber(\n currentFirstChild,\n newChild.children || []\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n currentFirstChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (child = newChild._init),\n reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n child(newChild._payload),\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild))\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (currentFirstChild = useFiber(currentFirstChild, newChild)),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (currentFirstChild = createFiberFromText(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return reconcileChildFibers;\n}\nvar reconcileChildFibers = ChildReconciler(!0),\n mountChildFibers = ChildReconciler(!1),\n NO_CONTEXT = {},\n contextStackCursor$1 = createCursor(NO_CONTEXT),\n contextFiberStackCursor = createCursor(NO_CONTEXT),\n rootInstanceStackCursor = createCursor(NO_CONTEXT);\nfunction requiredContext(c) {\n if (c === NO_CONTEXT)\n throw Error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n}\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor$1, NO_CONTEXT);\n pop(contextStackCursor$1);\n push(contextStackCursor$1, { isInAParentText: !1 });\n}\nfunction popHostContainer() {\n pop(contextStackCursor$1);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var JSCompiler_inline_result = fiber.type;\n JSCompiler_inline_result =\n \"AndroidTextInput\" === JSCompiler_inline_result ||\n \"RCTMultilineTextInputView\" === JSCompiler_inline_result ||\n \"RCTSinglelineTextInputView\" === JSCompiler_inline_result ||\n \"RCTText\" === JSCompiler_inline_result ||\n \"RCTVirtualText\" === JSCompiler_inline_result;\n JSCompiler_inline_result =\n context.isInAParentText !== JSCompiler_inline_result\n ? { isInAParentText: JSCompiler_inline_result }\n : context;\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor$1, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor$1), pop(contextFiberStackCursor));\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (null !== state && (null === state.dehydrated || shim$1() || shim$1()))\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++)\n workInProgressSources[i]._workInProgressVersionSecondary = null;\n workInProgressSources.length = 0;\n}\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig,\n renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactCurrentDispatcher$1.current =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n current = Component(props, secondArg);\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n nextRenderLanes = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= nextRenderLanes)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n nextRenderLanes += 1;\n workInProgressHook = currentHook = null;\n workInProgress.updateQueue = null;\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender;\n current = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n }\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n workInProgress = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n if (workInProgress)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return current;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook)\n throw Error(\"Rendered more hooks than during the previous render.\");\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var current = currentHook,\n baseQueue = current.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n if (null !== baseQueue) {\n pendingQueue = baseQueue.next;\n current = current.baseState;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = pendingQueue;\n do {\n var updateLane = update.lane;\n if ((renderLanes & updateLane) === updateLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next = {\n lane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n (current = update.hasEagerState\n ? update.eagerState\n : reducer(current, update.action));\n else {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = clone),\n (baseFirst = current))\n : (newBaseQueueLast = newBaseQueueLast.next = clone);\n currentlyRenderingFiber$1.lanes |= updateLane;\n workInProgressRootSkippedLanes |= updateLane;\n }\n update = update.next;\n } while (null !== update && update !== pendingQueue);\n null === newBaseQueueLast\n ? (baseFirst = current)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n objectIs(current, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = current;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = current;\n }\n reducer = queue.interleaved;\n if (null !== reducer) {\n baseQueue = reducer;\n do\n (pendingQueue = baseQueue.lane),\n (currentlyRenderingFiber$1.lanes |= pendingQueue),\n (workInProgressRootSkippedLanes |= pendingQueue),\n (baseQueue = baseQueue.next);\n while (baseQueue !== reducer);\n } else null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateMutableSource() {}\nfunction updateSyncExternalStore(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n nextSnapshot = getSnapshot(),\n snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot);\n snapshotChanged &&\n ((hook.memoizedState = nextSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n return nextSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function() {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = markUpdateLaneFromFiberToRoot(fiber, 1);\n null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1);\n}\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n \"function\" === typeof initialState && (initialState = initialState());\n hook.memoizedState = hook.baseState = initialState;\n initialState = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = initialState;\n initialState = initialState.dispatch = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n initialState\n );\n return [hook.memoizedState, initialState];\n}\nfunction pushEffect(tag, create, destroy, deps) {\n tag = { tag: tag, create: create, destroy: destroy, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create\n ? ((create = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = create),\n (create.lastEffect = tag.next = tag))\n : ((destroy = create.lastEffect),\n null === destroy\n ? (create.lastEffect = tag.next = tag)\n : ((deps = destroy.next),\n (destroy.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag)));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n void 0,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var destroy = void 0;\n if (null !== currentHook) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, deps);\n return;\n }\n }\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps);\n}\nfunction mountEffect(create, deps) {\n return mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n return updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref)\n return (\n (create = create()),\n ref(create),\n function() {\n ref(null);\n }\n );\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function() {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return updateEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n if (0 === (renderLanes & 21))\n return (\n hook.baseState && ((hook.baseState = !1), (didReceiveUpdate = !0)),\n (hook.memoizedState = value)\n );\n objectIs(value, prevValue) ||\n ((value = claimNextTransitionLane()),\n (currentlyRenderingFiber$1.lanes |= value),\n (workInProgressRootSkippedLanes |= value),\n (hook.baseState = !0));\n return prevValue;\n}\nfunction startTransition(setPending, callback) {\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority =\n 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4;\n setPending(!0);\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = {};\n try {\n setPending(!1), callback();\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$1.transition = prevTransition);\n }\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane(fiber);\n action = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);\n else if (\n ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action)\n ) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(action, fiber, lane, eventTime);\n entangleTransitionUpdate(action, queue, lane);\n }\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane(fiber),\n update = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState)) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return;\n }\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n null !== action &&\n ((update = requestEventTime()),\n scheduleUpdateOnFiber(action, fiber, lane, update),\n entangleTransitionUpdate(action, queue, lane));\n }\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194240)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n useCallback: function(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return mountEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function(create, deps) {\n return mountEffectImpl(4, 4, create, deps);\n },\n useInsertionEffect: function(create, deps) {\n return mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n },\n useReducer: function(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n initialArg = void 0 !== init ? init(initialArg) : initialArg;\n hook.memoizedState = hook.baseState = initialArg;\n reducer = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialArg\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: mountState,\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n return (mountWorkInProgressHook().memoizedState = value);\n },\n useTransition: function() {\n var _mountState = mountState(!1),\n isPending = _mountState[0];\n _mountState = startTransition.bind(null, _mountState[1]);\n mountWorkInProgressHook().memoizedState = _mountState;\n return [isPending, _mountState];\n },\n useMutableSource: function() {},\n useSyncExternalStore: function(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n var nextSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n hook.memoizedState = nextSnapshot;\n var inst = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n return nextSnapshot;\n },\n useId: function() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix,\n globalClientId = globalClientIdCounter++;\n identifierPrefix =\n \":\" + identifierPrefix + \"r\" + globalClientId.toString(32) + \":\";\n return (hook.memoizedState = identifierPrefix);\n },\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function() {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function() {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? (hook.memoizedState = value)\n : updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n };\nfunction createCapturedValueAtFiber(value, source) {\n try {\n var info = \"\",\n node = source;\n do (info += describeFiber(node)), (node = node.return);\n while (node);\n var JSCompiler_inline_result = info;\n } catch (x) {\n JSCompiler_inline_result =\n \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return {\n value: value,\n source: source,\n stack: JSCompiler_inline_result,\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: null != stack ? stack : null,\n digest: null != digest ? digest : null\n };\n}\nif (\n \"function\" !==\n typeof ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog\n)\n throw Error(\n \"Expected ReactFiberErrorDialog.showErrorDialog to be a function.\"\n );\nfunction logCapturedError(boundary, errorInfo) {\n try {\n !1 !==\n ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog({\n componentStack: null !== errorInfo.stack ? errorInfo.stack : \"\",\n error: errorInfo.value,\n errorBoundary:\n null !== boundary && 1 === boundary.tag ? boundary.stateNode : null\n }) && console.error(errorInfo.value);\n } catch (e) {\n setTimeout(function() {\n throw e;\n });\n }\n}\nvar PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n lane.payload = { element: null };\n var error = errorInfo.value;\n lane.callback = function() {\n hasUncaughtError || ((hasUncaughtError = !0), (firstUncaughtError = error));\n logCapturedError(fiber, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n lane.payload = function() {\n return getDerivedStateFromError(error);\n };\n lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n return lane;\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n (threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner,\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n prepareToReadContext(workInProgress, renderLanes);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n ref,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare &&\n void 0 === Component.defaultProps\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (0 === (current.lanes & renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n 0 !== (current.lanes & renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode)\n if (0 === (workInProgress.mode & 1))\n (workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= renderLanes);\n else {\n if (0 === (renderLanes & 1073741824))\n return (\n (current =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes),\n (workInProgress.lanes = workInProgress.childLanes = 1073741824),\n (workInProgress.memoizedState = {\n baseLanes: current,\n cachePool: null,\n transitions: null\n }),\n (workInProgress.updateQueue = null),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= current),\n null\n );\n workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n nextProps = null !== prevState ? prevState.baseLanes : renderLanes;\n push(subtreeRenderLanesCursor, subtreeRenderLanes);\n subtreeRenderLanes |= nextProps;\n }\n else\n null !== prevState\n ? ((nextProps = prevState.baseLanes | renderLanes),\n (workInProgress.memoizedState = null))\n : (nextProps = renderLanes),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= nextProps);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (\n (null === current && null !== ref) ||\n (null !== current && current.ref !== ref)\n )\n workInProgress.flags |= 512;\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n var context = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current;\n context = getMaskedContext(workInProgress, context);\n prepareToReadContext(workInProgress, renderLanes);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n context,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n prepareToReadContext(workInProgress, renderLanes);\n if (null === workInProgress.stateNode)\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n constructClassInstance(workInProgress, Component, nextProps),\n mountClassInstance(workInProgress, Component, nextProps, renderLanes),\n (nextProps = !0);\n else if (null === current) {\n var instance = workInProgress.stateNode,\n oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context,\n contextType = Component.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (contextType = readContext(contextType))\n : ((contextType = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (contextType = getMaskedContext(workInProgress, contextType)));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps,\n hasNewLifecycles =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate;\n hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== nextProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n oldContext = workInProgress.memoizedState;\n oldProps !== nextProps ||\n oldState !== oldContext ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n (\"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount()),\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (instance.props = nextProps),\n (instance.state = oldContext),\n (instance.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (nextProps = !1));\n } else {\n instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n oldProps = workInProgress.memoizedProps;\n contextType =\n workInProgress.type === workInProgress.elementType\n ? oldProps\n : resolveDefaultProps(workInProgress.type, oldProps);\n instance.props = contextType;\n hasNewLifecycles = workInProgress.pendingProps;\n oldState = instance.context;\n oldContext = Component.contextType;\n \"object\" === typeof oldContext && null !== oldContext\n ? (oldContext = readContext(oldContext))\n : ((oldContext = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (oldContext = getMaskedContext(workInProgress, oldContext)));\n var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps;\n (getDerivedStateFromProps =\n \"function\" === typeof getDerivedStateFromProps$jscomp$0 ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== hasNewLifecycles || oldState !== oldContext) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n oldContext\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n var newState = workInProgress.memoizedState;\n oldProps !== hasNewLifecycles ||\n oldState !== newState ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps$jscomp$0 &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps$jscomp$0,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType,\n nextProps,\n oldState,\n newState,\n oldContext\n ) ||\n !1)\n ? (getDerivedStateFromProps ||\n (\"function\" !== typeof instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof instance.componentWillUpdate) ||\n (\"function\" === typeof instance.componentWillUpdate &&\n instance.componentWillUpdate(nextProps, newState, oldContext),\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldContext\n )),\n \"function\" === typeof instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (instance.props = nextProps),\n (instance.state = newState),\n (instance.context = oldContext),\n (nextProps = contextType))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n return finishClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n hasContext,\n renderLanes\n );\n}\nfunction finishClassComponent(\n current,\n workInProgress,\n Component,\n shouldUpdate,\n hasContext,\n renderLanes\n) {\n markRef(current, workInProgress);\n var didCaptureError = 0 !== (workInProgress.flags & 128);\n if (!shouldUpdate && !didCaptureError)\n return (\n hasContext && invalidateContextProvider(workInProgress, Component, !1),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n shouldUpdate = workInProgress.stateNode;\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren =\n didCaptureError && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : shouldUpdate.render();\n workInProgress.flags |= 1;\n null !== current && didCaptureError\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n nextChildren,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n workInProgress.memoizedState = shouldUpdate.state;\n hasContext && invalidateContextProvider(workInProgress, Component, !0);\n return workInProgress.child;\n}\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n root.pendingContext\n ? pushTopLevelContextObject(\n workInProgress,\n root.pendingContext,\n root.pendingContext !== root.context\n )\n : root.context &&\n pushTopLevelContextObject(workInProgress, root.context, !1);\n pushHostContainer(workInProgress, root.containerInfo);\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: null, transitions: null };\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n suspenseContext = suspenseStackCursor.current,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseContext & 2));\n if (JSCompiler_temp) (showFallback = !0), (workInProgress.flags &= -129);\n else if (null === current || null !== current.memoizedState)\n suspenseContext |= 1;\n push(suspenseStackCursor, suspenseContext & 1);\n if (null === current) {\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated)\n return (\n 0 === (workInProgress.mode & 1)\n ? (workInProgress.lanes = 1)\n : shim$1()\n ? (workInProgress.lanes = 8)\n : (workInProgress.lanes = 1073741824),\n null\n );\n didSuspend = nextProps.children;\n current = nextProps.fallback;\n return showFallback\n ? ((nextProps = workInProgress.mode),\n (showFallback = workInProgress.child),\n (didSuspend = { mode: \"hidden\", children: didSuspend }),\n 0 === (nextProps & 1) && null !== showFallback\n ? ((showFallback.childLanes = 0),\n (showFallback.pendingProps = didSuspend))\n : (showFallback = createFiberFromOffscreen(\n didSuspend,\n nextProps,\n 0,\n null\n )),\n (current = createFiberFromFragment(\n current,\n nextProps,\n renderLanes,\n null\n )),\n (showFallback.return = workInProgress),\n (current.return = workInProgress),\n (showFallback.sibling = current),\n (workInProgress.child = showFallback),\n (workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n current)\n : mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n suspenseContext = current.memoizedState;\n if (\n null !== suspenseContext &&\n ((JSCompiler_temp = suspenseContext.dehydrated), null !== JSCompiler_temp)\n )\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n JSCompiler_temp,\n suspenseContext,\n renderLanes\n );\n if (showFallback) {\n showFallback = nextProps.fallback;\n didSuspend = workInProgress.mode;\n suspenseContext = current.child;\n JSCompiler_temp = suspenseContext.sibling;\n var primaryChildProps = { mode: \"hidden\", children: nextProps.children };\n 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext\n ? ((nextProps = workInProgress.child),\n (nextProps.childLanes = 0),\n (nextProps.pendingProps = primaryChildProps),\n (workInProgress.deletions = null))\n : ((nextProps = createWorkInProgress(suspenseContext, primaryChildProps)),\n (nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064));\n null !== JSCompiler_temp\n ? (showFallback = createWorkInProgress(JSCompiler_temp, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2));\n showFallback.return = workInProgress;\n nextProps.return = workInProgress;\n nextProps.sibling = showFallback;\n workInProgress.child = nextProps;\n nextProps = showFallback;\n showFallback = workInProgress.child;\n didSuspend = current.child.memoizedState;\n didSuspend =\n null === didSuspend\n ? mountSuspenseOffscreenState(renderLanes)\n : {\n baseLanes: didSuspend.baseLanes | renderLanes,\n cachePool: null,\n transitions: didSuspend.transitions\n };\n showFallback.memoizedState = didSuspend;\n showFallback.childLanes = current.childLanes & ~renderLanes;\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return nextProps;\n }\n showFallback = current.child;\n current = showFallback.sibling;\n nextProps = createWorkInProgress(showFallback, {\n mode: \"visible\",\n children: nextProps.children\n });\n 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes);\n nextProps.return = workInProgress;\n nextProps.sibling = null;\n null !== current &&\n ((renderLanes = workInProgress.deletions),\n null === renderLanes\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : renderLanes.push(current));\n workInProgress.child = nextProps;\n workInProgress.memoizedState = null;\n return nextProps;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = createFiberFromOffscreen(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode,\n 0,\n null\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n recoverableError\n) {\n null !== recoverableError &&\n (null === hydrationErrors\n ? (hydrationErrors = [recoverableError])\n : hydrationErrors.push(recoverableError));\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n (workInProgress.flags &= -257),\n (suspenseState = createCapturedValue(\n Error(\n \"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"\n )\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n suspenseState = nextProps.fallback;\n didSuspend = workInProgress.mode;\n nextProps = createFiberFromOffscreen(\n { mode: \"visible\", children: nextProps.children },\n didSuspend,\n 0,\n null\n );\n suspenseState = createFiberFromFragment(\n suspenseState,\n didSuspend,\n renderLanes,\n null\n );\n suspenseState.flags |= 2;\n nextProps.return = workInProgress;\n suspenseState.return = workInProgress;\n nextProps.sibling = suspenseState;\n workInProgress.child = nextProps;\n 0 !== (workInProgress.mode & 1) &&\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return suspenseState;\n }\n if (0 === (workInProgress.mode & 1))\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n null\n );\n if (shim$1())\n return (\n (suspenseState = shim$1().digest),\n (suspenseState = createCapturedValue(\n Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n ),\n suspenseState,\n void 0\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n didSuspend = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didSuspend) {\n nextProps = workInProgressRoot;\n if (null !== nextProps) {\n switch (renderLanes & -renderLanes) {\n case 4:\n didSuspend = 2;\n break;\n case 16:\n didSuspend = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n didSuspend = 32;\n break;\n case 536870912:\n didSuspend = 268435456;\n break;\n default:\n didSuspend = 0;\n }\n didSuspend =\n 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes))\n ? 0\n : didSuspend;\n 0 !== didSuspend &&\n didSuspend !== suspenseState.retryLane &&\n ((suspenseState.retryLane = didSuspend),\n markUpdateLaneFromFiberToRoot(current, didSuspend),\n scheduleUpdateOnFiber(nextProps, current, didSuspend, -1));\n }\n renderDidSuspendDelayIfPossible();\n suspenseState = createCapturedValue(\n Error(\n \"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"\n )\n );\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n );\n }\n if (shim$1())\n return (\n (workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n retryDehydratedSuspenseBoundary.bind(null, current),\n shim$1(),\n null\n );\n current = mountSuspensePrimaryChildren(workInProgress, nextProps.children);\n current.flags |= 4096;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;\n else\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n 0 === (workInProgress.mode & 1) &&\n null !== current &&\n ((current.alternate = null),\n (workInProgress.alternate = null),\n (workInProgress.flags |= 2));\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes)) return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling = createWorkInProgress(\n current,\n current.pendingProps\n )),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostRootContext(workInProgress);\n break;\n case 5:\n pushHostContext(workInProgress);\n break;\n case 1:\n isContextProvider(workInProgress.type) &&\n pushContextProvider(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n var context = workInProgress.type._context,\n nextValue = workInProgress.memoizedProps.value;\n push(valueCursor, context._currentValue2);\n context._currentValue2 = nextValue;\n break;\n case 13:\n context = workInProgress.memoizedState;\n if (null !== context) {\n if (null !== context.dehydrated)\n return (\n push(suspenseStackCursor, suspenseStackCursor.current & 1),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n break;\n case 19:\n context = 0 !== (renderLanes & workInProgress.childLanes);\n if (0 !== (current.flags & 128)) {\n if (context)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n nextValue = workInProgress.memoizedState;\n null !== nextValue &&\n ((nextValue.rendering = null),\n (nextValue.tail = null),\n (nextValue.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (context) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction hadNoMutationsEffects(current, completedWork) {\n if (null !== current && current.child === completedWork.child) return !0;\n if (0 !== (completedWork.flags & 16)) return !1;\n for (current = completedWork.child; null !== current; ) {\n if (0 !== (current.flags & 12854) || 0 !== (current.subtreeFlags & 12854))\n return !1;\n current = current.sibling;\n }\n return !0;\n}\nvar appendAllChildren,\n updateHostContainer,\n updateHostComponent$1,\n updateHostText$1;\nappendAllChildren = function(\n parent,\n workInProgress,\n needsVisibilityToggle,\n isHidden\n) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag) {\n var instance = node.stateNode;\n needsVisibilityToggle &&\n isHidden &&\n (instance = cloneHiddenInstance(instance));\n appendChildNode(parent.node, instance.node);\n } else if (6 === node.tag) {\n instance = node.stateNode;\n if (needsVisibilityToggle && isHidden)\n throw Error(\"Not yet implemented.\");\n appendChildNode(parent.node, instance.node);\n } else if (4 !== node.tag)\n if (22 === node.tag && null !== node.memoizedState)\n (instance = node.child),\n null !== instance && (instance.return = node),\n appendAllChildren(parent, node, !0, !0);\n else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n};\nfunction appendAllChildrenToContainer(\n containerChildSet,\n workInProgress,\n needsVisibilityToggle,\n isHidden\n) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag) {\n var instance = node.stateNode;\n needsVisibilityToggle &&\n isHidden &&\n (instance = cloneHiddenInstance(instance));\n appendChildNodeToSet(containerChildSet, instance.node);\n } else if (6 === node.tag) {\n instance = node.stateNode;\n if (needsVisibilityToggle && isHidden)\n throw Error(\"Not yet implemented.\");\n appendChildNodeToSet(containerChildSet, instance.node);\n } else if (4 !== node.tag)\n if (22 === node.tag && null !== node.memoizedState)\n (instance = node.child),\n null !== instance && (instance.return = node),\n appendAllChildrenToContainer(containerChildSet, node, !0, !0);\n else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\nupdateHostContainer = function(current, workInProgress) {\n var portalOrRoot = workInProgress.stateNode;\n if (!hadNoMutationsEffects(current, workInProgress)) {\n current = portalOrRoot.containerInfo;\n var newChildSet = createChildNodeSet(current);\n appendAllChildrenToContainer(newChildSet, workInProgress, !1, !1);\n portalOrRoot.pendingChildren = newChildSet;\n workInProgress.flags |= 4;\n completeRoot(current, newChildSet);\n }\n};\nupdateHostComponent$1 = function(current, workInProgress, type, newProps) {\n type = current.stateNode;\n var oldProps = current.memoizedProps;\n if (\n (current = hadNoMutationsEffects(current, workInProgress)) &&\n oldProps === newProps\n )\n workInProgress.stateNode = type;\n else {\n var recyclableInstance = workInProgress.stateNode;\n requiredContext(contextStackCursor$1.current);\n var updatePayload = null;\n oldProps !== newProps &&\n ((oldProps = diffProperties(\n null,\n oldProps,\n newProps,\n recyclableInstance.canonical.viewConfig.validAttributes\n )),\n (recyclableInstance.canonical.currentProps = newProps),\n (updatePayload = oldProps));\n current && null === updatePayload\n ? (workInProgress.stateNode = type)\n : ((newProps = updatePayload),\n (oldProps = type.node),\n (type = {\n node: current\n ? null !== newProps\n ? cloneNodeWithNewProps(oldProps, newProps)\n : cloneNode(oldProps)\n : null !== newProps\n ? cloneNodeWithNewChildrenAndProps(oldProps, newProps)\n : cloneNodeWithNewChildren(oldProps),\n canonical: type.canonical\n }),\n (workInProgress.stateNode = type),\n current\n ? (workInProgress.flags |= 4)\n : appendAllChildren(type, workInProgress, !1, !1));\n }\n};\nupdateHostText$1 = function(current, workInProgress, oldText, newText) {\n oldText !== newText\n ? ((current = requiredContext(rootInstanceStackCursor.current)),\n (oldText = requiredContext(contextStackCursor$1.current)),\n (workInProgress.stateNode = createTextInstance(\n newText,\n current,\n oldText,\n workInProgress\n )),\n (workInProgress.flags |= 4))\n : (workInProgress.stateNode = current.stateNode);\n};\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$62 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$62\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$62.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags & 14680064),\n (subtreeFlags |= child$63.flags & 14680064),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n else\n for (child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags),\n (subtreeFlags |= child$63.flags),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 3:\n return (\n (renderLanes = workInProgress.stateNode),\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null)),\n (null !== current && null !== current.child) ||\n null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null))),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 5:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n updateHostComponent$1(\n current,\n workInProgress,\n type,\n newProps,\n renderLanes\n ),\n current.ref !== workInProgress.ref && (workInProgress.flags |= 512);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n requiredContext(contextStackCursor$1.current);\n current = nextReactTag;\n nextReactTag += 2;\n type = getViewConfigForType(type);\n var updatePayload = diffProperties(\n null,\n emptyObject,\n newProps,\n type.validAttributes\n );\n renderLanes = createNode(\n current,\n type.uiViewClassName,\n renderLanes,\n updatePayload,\n workInProgress\n );\n current = new ReactFabricHostComponent(\n current,\n type,\n newProps,\n workInProgress\n );\n current = { node: renderLanes, canonical: current };\n appendAllChildren(current, workInProgress, !1, !1);\n workInProgress.stateNode = current;\n null !== workInProgress.ref && (workInProgress.flags |= 512);\n }\n bubbleProperties(workInProgress);\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n updateHostText$1(\n current,\n workInProgress,\n current.memoizedProps,\n newProps\n );\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n renderLanes = requiredContext(contextStackCursor$1.current);\n workInProgress.stateNode = createTextInstance(\n newProps,\n current,\n renderLanes,\n workInProgress\n );\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n throw Error(\n \"Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null);\n workInProgress.flags |= 4;\n bubbleProperties(workInProgress);\n type = !1;\n } else\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n (type = !0);\n if (!type) return workInProgress.flags & 65536 ? workInProgress : null;\n }\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n renderLanes !== (null !== current && null !== current.memoizedState) &&\n renderLanes &&\n ((workInProgress.child.flags |= 8192),\n 0 !== (workInProgress.mode & 1) &&\n (null === current || 0 !== (suspenseStackCursor.current & 1)\n ? 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3)\n : renderDidSuspendDelayIfPossible()));\n null !== workInProgress.updateQueue && (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type._context),\n bubbleProperties(workInProgress),\n null\n );\n case 17:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n updatePayload = type.rendering;\n if (null === updatePayload)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n updatePayload = findFirstSuspended(current);\n if (null !== updatePayload) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = updatePayload.updateQueue;\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4));\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n (newProps = renderLanes),\n (type = current),\n (newProps.flags &= 14680066),\n (updatePayload = newProps.alternate),\n null === updatePayload\n ? ((newProps.childLanes = 0),\n (newProps.lanes = type),\n (newProps.child = null),\n (newProps.subtreeFlags = 0),\n (newProps.memoizedProps = null),\n (newProps.memoizedState = null),\n (newProps.updateQueue = null),\n (newProps.dependencies = null),\n (newProps.stateNode = null))\n : ((newProps.childLanes = updatePayload.childLanes),\n (newProps.lanes = updatePayload.lanes),\n (newProps.child = updatePayload.child),\n (newProps.subtreeFlags = 0),\n (newProps.deletions = null),\n (newProps.memoizedProps = updatePayload.memoizedProps),\n (newProps.memoizedState = updatePayload.memoizedState),\n (newProps.updateQueue = updatePayload.updateQueue),\n (newProps.type = updatePayload.type),\n (type = updatePayload.dependencies),\n (newProps.dependencies =\n null === type\n ? null\n : {\n lanes: type.lanes,\n firstContext: type.firstContext\n })),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(updatePayload)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4)),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !updatePayload.alternate)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 1073741824 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((updatePayload.sibling = workInProgress.child),\n (workInProgress.child = updatePayload))\n : ((current = type.last),\n null !== current\n ? (current.sibling = updatePayload)\n : (workInProgress.child = updatePayload),\n (type.last = updatePayload));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popRenderLanes(),\n (renderLanes = null !== workInProgress.memoizedState),\n null !== current &&\n (null !== current.memoizedState) !== renderLanes &&\n (workInProgress.flags |= 8192),\n renderLanes && 0 !== (workInProgress.mode & 1)\n ? 0 !== (subtreeRenderLanes & 1073741824) &&\n bubbleProperties(workInProgress)\n : bubbleProperties(workInProgress),\n null\n );\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n pop(suspenseStackCursor);\n current = workInProgress.memoizedState;\n if (\n null !== current &&\n null !== current.dehydrated &&\n null === workInProgress.alternate\n )\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type._context), null;\n case 22:\n case 23:\n return popRenderLanes(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n if (null !== ref)\n if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n else ref.current = null;\n}\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nvar shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((root = nextEffect),\n (firstChild = root.child),\n 0 !== (root.subtreeFlags & 1028) && null !== firstChild)\n )\n (firstChild.return = root), (nextEffect = firstChild);\n else\n for (; null !== nextEffect; ) {\n root = nextEffect;\n try {\n var current = root.alternate;\n if (0 !== (root.flags & 1024))\n switch (root.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState,\n instance = root.stateNode,\n snapshot = instance.getSnapshotBeforeUpdate(\n root.elementType === root.type\n ? prevProps\n : resolveDefaultProps(root.type, prevProps),\n prevState\n );\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n break;\n case 3:\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(root, root.return, error);\n }\n firstChild = root.sibling;\n if (null !== firstChild) {\n firstChild.return = root.return;\n nextEffect = firstChild;\n break;\n }\n nextEffect = root.return;\n }\n current = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return current;\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n) {\n var updateQueue = finishedWork.updateQueue;\n updateQueue = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== updateQueue) {\n var effect = (updateQueue = updateQueue.next);\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = void 0;\n void 0 !== destroy &&\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n }\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n finishedWork = finishedWork.updateQueue;\n finishedWork = null !== finishedWork ? finishedWork.lastEffect : null;\n if (null !== finishedWork) {\n var effect = (finishedWork = finishedWork.next);\n do {\n if ((effect.tag & flags) === flags) {\n var create$75 = effect.create;\n effect.destroy = create$75();\n }\n effect = effect.next;\n } while (effect !== finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 5:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 18:\n break;\n case 4:\n createChildNodeSet(deletedFiber.stateNode.containerInfo);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n var updateQueue = deletedFiber.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.lastEffect), null !== updateQueue)\n ) {\n var effect = (updateQueue = updateQueue.next);\n do {\n var _effect = effect,\n destroy = _effect.destroy;\n _effect = _effect.tag;\n void 0 !== destroy &&\n (0 !== (_effect & 2)\n ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)\n : 0 !== (_effect & 4) &&\n safelyCallDestroy(\n deletedFiber,\n nearestMountedAncestor,\n destroy\n ));\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n updateQueue = deletedFiber.stateNode;\n if (\"function\" === typeof updateQueue.componentWillUnmount)\n try {\n (updateQueue.props = deletedFiber.memoizedProps),\n (updateQueue.state = deletedFiber.memoizedState),\n updateQueue.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n if (null !== wakeables) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n wakeables.forEach(function(wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n }\n}\nfunction recursivelyTraverseMutationEffects(root, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n try {\n commitDeletionEffectsOnFiber(root, parentFiber, childToDelete);\n var alternate = childToDelete.alternate;\n null !== alternate && (alternate.return = null);\n childToDelete.return = null;\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n if (parentFiber.subtreeFlags & 12854)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n try {\n commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n try {\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return);\n } catch (error$79) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$79);\n }\n }\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 3:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 4:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n root = finishedWork.child;\n root.flags & 8192 &&\n ((current = null !== root.memoizedState),\n (root.stateNode.isHidden = current),\n !current ||\n (null !== root.alternate && null !== root.alternate.memoizedState) ||\n (globalMostRecentFallbackTime = now()));\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 22:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 8192 &&\n (finishedWork.stateNode.isHidden = null !== finishedWork.memoizedState);\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n flags & 2 && (finishedWork.flags &= -3);\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction commitLayoutEffects(finishedWork) {\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n var fiber = nextEffect,\n firstChild = fiber.child;\n if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild)\n (firstChild.return = fiber), (nextEffect = firstChild);\n else\n for (fiber = finishedWork; null !== nextEffect; ) {\n firstChild = nextEffect;\n if (0 !== (firstChild.flags & 8772)) {\n var current = firstChild.alternate;\n try {\n if (0 !== (firstChild.flags & 8772))\n switch (firstChild.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(5, firstChild);\n break;\n case 1:\n var instance = firstChild.stateNode;\n if (firstChild.flags & 4)\n if (null === current) instance.componentDidMount();\n else {\n var prevProps =\n firstChild.elementType === firstChild.type\n ? current.memoizedProps\n : resolveDefaultProps(\n firstChild.type,\n current.memoizedProps\n );\n instance.componentDidUpdate(\n prevProps,\n current.memoizedState,\n instance.__reactInternalSnapshotBeforeUpdate\n );\n }\n var updateQueue = firstChild.updateQueue;\n null !== updateQueue &&\n commitUpdateQueue(firstChild, updateQueue, instance);\n break;\n case 3:\n var updateQueue$76 = firstChild.updateQueue;\n if (null !== updateQueue$76) {\n current = null;\n if (null !== firstChild.child)\n switch (firstChild.child.tag) {\n case 5:\n current = firstChild.child.stateNode.canonical;\n break;\n case 1:\n current = firstChild.child.stateNode;\n }\n commitUpdateQueue(firstChild, updateQueue$76, current);\n }\n break;\n case 5:\n if (null === current && firstChild.flags & 4)\n throw Error(\n \"The current renderer does not support mutation. This error is likely caused by a bug in React. Please file an issue.\"\n );\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (firstChild.flags & 512) {\n current = void 0;\n var ref = firstChild.ref;\n if (null !== ref) {\n var instance$jscomp$0 = firstChild.stateNode;\n switch (firstChild.tag) {\n case 5:\n current = instance$jscomp$0.canonical;\n break;\n default:\n current = instance$jscomp$0;\n }\n \"function\" === typeof ref\n ? ref(current)\n : (ref.current = current);\n }\n }\n } catch (error) {\n captureCommitPhaseError(firstChild, firstChild.return, error);\n }\n }\n if (firstChild === fiber) {\n nextEffect = null;\n break;\n }\n current = firstChild.sibling;\n if (null !== current) {\n current.return = firstChild.return;\n nextEffect = current;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n}\nvar ceil = Math.ceil,\n ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n subtreeRenderLanes = 0,\n subtreeRenderLanesCursor = createCursor(0),\n workInProgressRootExitStatus = 0,\n workInProgressRootFatalError = null,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n hasUncaughtError = !1,\n firstUncaughtError = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n rootDoesHavePassiveEffects = !1,\n rootWithPendingPassiveEffects = null,\n pendingPassiveEffectsLanes = 0,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n currentEventTime = -1,\n currentEventTransitionLane = 0;\nfunction requestEventTime() {\n return 0 !== (executionContext & 6)\n ? now()\n : -1 !== currentEventTime\n ? currentEventTime\n : (currentEventTime = now());\n}\nfunction requestUpdateLane(fiber) {\n if (0 === (fiber.mode & 1)) return 1;\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactCurrentBatchConfig.transition)\n return (\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane()),\n currentEventTransitionLane\n );\n fiber = currentUpdatePriority;\n if (0 === fiber)\n a: {\n fiber = fabricGetCurrentEventPriority\n ? fabricGetCurrentEventPriority()\n : null;\n if (null != fiber)\n switch (fiber) {\n case FabricDiscretePriority:\n fiber = 1;\n break a;\n }\n fiber = 16;\n }\n return fiber;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n if (50 < nestedUpdateCount)\n throw ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ));\n markRootUpdated(root, lane, eventTime);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended$1(root, workInProgressRootRenderLanes)),\n ensureRootIsScheduled(root, eventTime),\n 1 === lane &&\n 0 === executionContext &&\n 0 === (fiber.mode & 1) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n}\nfunction ensureRootIsScheduled(root, currentTime) {\n for (\n var existingCallbackNode = root.callbackNode,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n suspendedLanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === suspendedLanes)\n null !== existingCallbackNode && cancelCallback(existingCallbackNode),\n (root.callbackNode = null),\n (root.callbackPriority = 0);\n else if (\n ((currentTime = suspendedLanes & -suspendedLanes),\n root.callbackPriority !== currentTime)\n ) {\n null != existingCallbackNode && cancelCallback(existingCallbackNode);\n if (1 === currentTime)\n 0 === root.tag\n ? ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n (includesLegacySyncCallbacks = !0),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode))\n : ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n (existingCallbackNode = null);\n else {\n switch (lanesToEventPriority(suspendedLanes)) {\n case 1:\n existingCallbackNode = ImmediatePriority;\n break;\n case 4:\n existingCallbackNode = UserBlockingPriority;\n break;\n case 16:\n existingCallbackNode = NormalPriority;\n break;\n case 536870912:\n existingCallbackNode = IdlePriority;\n break;\n default:\n existingCallbackNode = NormalPriority;\n }\n existingCallbackNode = scheduleCallback$1(\n existingCallbackNode,\n performConcurrentWorkOnRoot.bind(null, root)\n );\n }\n root.callbackPriority = currentTime;\n root.callbackNode = existingCallbackNode;\n }\n}\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n currentEventTime = -1;\n currentEventTransitionLane = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n var originalCallbackNode = root.callbackNode;\n if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var lanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === lanes) return null;\n if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout)\n didTimeout = renderRootSync(root, lanes);\n else {\n didTimeout = lanes;\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== didTimeout\n )\n (workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, didTimeout);\n do\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n ReactCurrentDispatcher$2.current = prevDispatcher;\n executionContext = prevExecutionContext;\n null !== workInProgress\n ? (didTimeout = 0)\n : ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n (didTimeout = workInProgressRootExitStatus));\n }\n if (0 !== didTimeout) {\n 2 === didTimeout &&\n ((prevExecutionContext = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevExecutionContext &&\n ((lanes = prevExecutionContext),\n (didTimeout = recoverFromConcurrentError(root, prevExecutionContext))));\n if (1 === didTimeout)\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n if (6 === didTimeout) markRootSuspended$1(root, lanes);\n else {\n prevExecutionContext = root.current.alternate;\n if (\n 0 === (lanes & 30) &&\n !isRenderConsistentWithExternalStores(prevExecutionContext) &&\n ((didTimeout = renderRootSync(root, lanes)),\n 2 === didTimeout &&\n ((prevDispatcher = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevDispatcher &&\n ((lanes = prevDispatcher),\n (didTimeout = recoverFromConcurrentError(root, prevDispatcher)))),\n 1 === didTimeout)\n )\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n root.finishedWork = prevExecutionContext;\n root.finishedLanes = lanes;\n switch (didTimeout) {\n case 0:\n case 1:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case 2:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 3:\n markRootSuspended$1(root, lanes);\n if (\n (lanes & 130023424) === lanes &&\n ((didTimeout = globalMostRecentFallbackTime + 500 - now()),\n 10 < didTimeout)\n ) {\n if (0 !== getNextLanes(root, 0)) break;\n prevExecutionContext = root.suspendedLanes;\n if ((prevExecutionContext & lanes) !== lanes) {\n requestEventTime();\n root.pingedLanes |= root.suspendedLanes & prevExecutionContext;\n break;\n }\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n didTimeout\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 4:\n markRootSuspended$1(root, lanes);\n if ((lanes & 4194240) === lanes) break;\n didTimeout = root.eventTimes;\n for (prevExecutionContext = -1; 0 < lanes; ) {\n var index$4 = 31 - clz32(lanes);\n prevDispatcher = 1 << index$4;\n index$4 = didTimeout[index$4];\n index$4 > prevExecutionContext && (prevExecutionContext = index$4);\n lanes &= ~prevDispatcher;\n }\n lanes = prevExecutionContext;\n lanes = now() - lanes;\n lanes =\n (120 > lanes\n ? 120\n : 480 > lanes\n ? 480\n : 1080 > lanes\n ? 1080\n : 1920 > lanes\n ? 1920\n : 3e3 > lanes\n ? 3e3\n : 4320 > lanes\n ? 4320\n : 1960 * ceil(lanes / 1960)) - lanes;\n if (10 < lanes) {\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n lanes\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 5:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n }\n }\n ensureRootIsScheduled(root, now());\n return root.callbackNode === originalCallbackNode\n ? performConcurrentWorkOnRoot.bind(null, root)\n : null;\n}\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n root.current.memoizedState.isDehydrated &&\n (prepareFreshStack(root, errorRetryLanes).flags |= 256);\n root = renderRootSync(root, errorRetryLanes);\n 2 !== root &&\n ((errorRetryLanes = workInProgressRootRecoverableErrors),\n (workInProgressRootRecoverableErrors = errorsFromFirstAttempt),\n null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes));\n return root;\n}\nfunction queueRecoverableErrors(errors) {\n null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = errors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n errors\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n if (node.flags & 16384) {\n var updateQueue = node.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.stores), null !== updateQueue)\n )\n for (var i = 0; i < updateQueue.length; i++) {\n var check = updateQueue[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n }\n updateQueue = node.child;\n if (node.subtreeFlags & 16384 && null !== updateQueue)\n (updateQueue.return = node), (node = updateQueue);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n for (root = root.expirationTimes; 0 < suspendedLanes; ) {\n var index$6 = 31 - clz32(suspendedLanes),\n lane = 1 << index$6;\n root[index$6] = -1;\n suspendedLanes &= ~lane;\n }\n}\nfunction performSyncWorkOnRoot(root) {\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n flushPassiveEffects();\n var lanes = getNextLanes(root, 0);\n if (0 === (lanes & 1)) return ensureRootIsScheduled(root, now()), null;\n var exitStatus = renderRootSync(root, lanes);\n if (0 !== root.tag && 2 === exitStatus) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n 0 !== errorRetryLanes &&\n ((lanes = errorRetryLanes),\n (exitStatus = recoverFromConcurrentError(root, errorRetryLanes)));\n }\n if (1 === exitStatus)\n throw ((exitStatus = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n exitStatus);\n if (6 === exitStatus)\n throw Error(\"Root did not complete. This is a bug in React.\");\n root.finishedWork = root.current.alternate;\n root.finishedLanes = lanes;\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction popRenderLanes() {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor);\n}\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = 0;\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n if (null !== workInProgress)\n for (timeoutHandle = workInProgress.return; null !== timeoutHandle; ) {\n var interruptedWork = timeoutHandle;\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 1:\n interruptedWork = interruptedWork.type.childContextTypes;\n null !== interruptedWork &&\n void 0 !== interruptedWork &&\n popContext();\n break;\n case 3:\n popHostContainer();\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n resetWorkInProgressVersions();\n break;\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n pop(suspenseStackCursor);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type._context);\n break;\n case 22:\n case 23:\n popRenderLanes();\n }\n timeoutHandle = timeoutHandle.return;\n }\n workInProgressRoot = root;\n workInProgress = root = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = lanes;\n workInProgressRootExitStatus = 0;\n workInProgressRootFatalError = null;\n workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null;\n if (null !== concurrentQueues) {\n for (lanes = 0; lanes < concurrentQueues.length; lanes++)\n if (\n ((timeoutHandle = concurrentQueues[lanes]),\n (interruptedWork = timeoutHandle.interleaved),\n null !== interruptedWork)\n ) {\n timeoutHandle.interleaved = null;\n var firstInterleavedUpdate = interruptedWork.next,\n lastPendingUpdate = timeoutHandle.pending;\n if (null !== lastPendingUpdate) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n interruptedWork.next = firstPendingUpdate;\n }\n timeoutHandle.pending = interruptedWork;\n }\n concurrentQueues = null;\n }\n return root;\n}\nfunction handleError(root$jscomp$0, thrownValue) {\n do {\n var erroredWork = workInProgress;\n try {\n resetContextDependencies();\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n if (didScheduleRenderPhaseUpdate) {\n for (\n var hook = currentlyRenderingFiber$1.memoizedState;\n null !== hook;\n\n ) {\n var queue = hook.queue;\n null !== queue && (queue.pending = null);\n hook = hook.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n ReactCurrentOwner$2.current = null;\n if (null === erroredWork || null === erroredWork.return) {\n workInProgressRootExitStatus = 1;\n workInProgressRootFatalError = thrownValue;\n workInProgress = null;\n break;\n }\n a: {\n var root = root$jscomp$0,\n returnFiber = erroredWork.return,\n sourceFiber = erroredWork,\n value = thrownValue;\n thrownValue = workInProgressRootRenderLanes;\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n var wakeable = value,\n sourceFiber$jscomp$0 = sourceFiber,\n tag = sourceFiber$jscomp$0.tag;\n if (\n 0 === (sourceFiber$jscomp$0.mode & 1) &&\n (0 === tag || 11 === tag || 15 === tag)\n ) {\n var currentSource = sourceFiber$jscomp$0.alternate;\n currentSource\n ? ((sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue),\n (sourceFiber$jscomp$0.memoizedState =\n currentSource.memoizedState),\n (sourceFiber$jscomp$0.lanes = currentSource.lanes))\n : ((sourceFiber$jscomp$0.updateQueue = null),\n (sourceFiber$jscomp$0.memoizedState = null));\n }\n b: {\n sourceFiber$jscomp$0 = returnFiber;\n do {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag)) {\n var nextState = sourceFiber$jscomp$0.memoizedState;\n JSCompiler_temp =\n null !== nextState\n ? null !== nextState.dehydrated\n ? !0\n : !1\n : !0;\n }\n if (JSCompiler_temp) {\n var suspenseBoundary = sourceFiber$jscomp$0;\n break b;\n }\n sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return;\n } while (null !== sourceFiber$jscomp$0);\n suspenseBoundary = null;\n }\n if (null !== suspenseBoundary) {\n suspenseBoundary.flags &= -257;\n value = suspenseBoundary;\n sourceFiber$jscomp$0 = thrownValue;\n if (0 === (value.mode & 1))\n if (value === returnFiber) value.flags |= 65536;\n else {\n value.flags |= 128;\n sourceFiber.flags |= 131072;\n sourceFiber.flags &= -52805;\n if (1 === sourceFiber.tag)\n if (null === sourceFiber.alternate) sourceFiber.tag = 17;\n else {\n var update = createUpdate(-1, 1);\n update.tag = 2;\n enqueueUpdate(sourceFiber, update, 1);\n }\n sourceFiber.lanes |= 1;\n }\n else (value.flags |= 65536), (value.lanes = sourceFiber$jscomp$0);\n suspenseBoundary.mode & 1 &&\n attachPingListener(root, wakeable, thrownValue);\n thrownValue = suspenseBoundary;\n root = wakeable;\n var wakeables = thrownValue.updateQueue;\n if (null === wakeables) {\n var updateQueue = new Set();\n updateQueue.add(root);\n thrownValue.updateQueue = updateQueue;\n } else wakeables.add(root);\n break a;\n } else {\n if (0 === (thrownValue & 1)) {\n attachPingListener(root, wakeable, thrownValue);\n renderDidSuspendDelayIfPossible();\n break a;\n }\n value = Error(\n \"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\"\n );\n }\n }\n root = value = createCapturedValueAtFiber(value, sourceFiber);\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [root])\n : workInProgressRootConcurrentErrors.push(root);\n root = returnFiber;\n do {\n switch (root.tag) {\n case 3:\n wakeable = value;\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$jscomp$0 = createRootErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$jscomp$0);\n break a;\n case 1:\n wakeable = value;\n var ctor = root.type,\n instance = root.stateNode;\n if (\n 0 === (root.flags & 128) &&\n (\"function\" === typeof ctor.getDerivedStateFromError ||\n (null !== instance &&\n \"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance))))\n ) {\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$32 = createClassErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$32);\n break a;\n }\n }\n root = root.return;\n } while (null !== root);\n }\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n workInProgress === erroredWork &&\n null !== erroredWork &&\n (workInProgress = erroredWork = erroredWork.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (\n 0 === workInProgressRootExitStatus ||\n 3 === workInProgressRootExitStatus ||\n 2 === workInProgressRootExitStatus\n )\n workInProgressRootExitStatus = 4;\n null === workInProgressRoot ||\n (0 === (workInProgressRootSkippedLanes & 268435455) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455)) ||\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n}\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n do\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactCurrentDispatcher$2.current = prevDispatcher;\n if (null !== workInProgress)\n throw Error(\n \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\"\n );\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n return workInProgressRootExitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction workLoopConcurrent() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n ReactCurrentOwner$2.current = null;\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n if (0 === (completedWork.flags & 32768)) {\n if (\n ((current = completeWork(current, completedWork, subtreeRenderLanes)),\n null !== current)\n ) {\n workInProgress = current;\n return;\n }\n } else {\n current = unwindWork(current, completedWork);\n if (null !== current) {\n current.flags &= 32767;\n workInProgress = current;\n return;\n }\n if (null !== unitOfWork)\n (unitOfWork.flags |= 32768),\n (unitOfWork.subtreeFlags = 0),\n (unitOfWork.deletions = null);\n else {\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n return;\n }\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = currentUpdatePriority,\n prevTransition = ReactCurrentBatchConfig$2.transition;\n try {\n (ReactCurrentBatchConfig$2.transition = null),\n (currentUpdatePriority = 1),\n commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n previousUpdateLanePriority\n );\n } finally {\n (ReactCurrentBatchConfig$2.transition = prevTransition),\n (currentUpdatePriority = previousUpdateLanePriority);\n }\n return null;\n}\nfunction commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n renderPriorityLevel\n) {\n do flushPassiveEffects();\n while (null !== rootWithPendingPassiveEffects);\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n transitions = root.finishedWork;\n var lanes = root.finishedLanes;\n if (null === transitions) return null;\n root.finishedWork = null;\n root.finishedLanes = 0;\n if (transitions === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n root.callbackNode = null;\n root.callbackPriority = 0;\n var remainingLanes = transitions.lanes | transitions.childLanes;\n markRootFinished(root, remainingLanes);\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n (0 === (transitions.subtreeFlags & 2064) &&\n 0 === (transitions.flags & 2064)) ||\n rootDoesHavePassiveEffects ||\n ((rootDoesHavePassiveEffects = !0),\n scheduleCallback$1(NormalPriority, function() {\n flushPassiveEffects();\n return null;\n }));\n remainingLanes = 0 !== (transitions.flags & 15990);\n if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) {\n remainingLanes = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = null;\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority = 1;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n ReactCurrentOwner$2.current = null;\n commitBeforeMutationEffects(root, transitions);\n commitMutationEffectsOnFiber(transitions, root);\n root.current = transitions;\n commitLayoutEffects(transitions, root, lanes);\n requestPaint();\n executionContext = prevExecutionContext;\n currentUpdatePriority = previousPriority;\n ReactCurrentBatchConfig$2.transition = remainingLanes;\n } else root.current = transitions;\n rootDoesHavePassiveEffects &&\n ((rootDoesHavePassiveEffects = !1),\n (rootWithPendingPassiveEffects = root),\n (pendingPassiveEffectsLanes = lanes));\n remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n onCommitRoot(transitions.stateNode, renderPriorityLevel);\n ensureRootIsScheduled(root, now());\n if (null !== recoverableErrors)\n for (\n renderPriorityLevel = root.onRecoverableError, transitions = 0;\n transitions < recoverableErrors.length;\n transitions++\n )\n (lanes = recoverableErrors[transitions]),\n renderPriorityLevel(lanes.value, {\n componentStack: lanes.stack,\n digest: lanes.digest\n });\n if (hasUncaughtError)\n throw ((hasUncaughtError = !1),\n (root = firstUncaughtError),\n (firstUncaughtError = null),\n root);\n 0 !== (pendingPassiveEffectsLanes & 1) &&\n 0 !== root.tag &&\n flushPassiveEffects();\n remainingLanes = root.pendingLanes;\n 0 !== (remainingLanes & 1)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncCallbacks();\n return null;\n}\nfunction flushPassiveEffects() {\n if (null !== rootWithPendingPassiveEffects) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n prevTransition = ReactCurrentBatchConfig$2.transition,\n previousPriority = currentUpdatePriority;\n try {\n ReactCurrentBatchConfig$2.transition = null;\n currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority;\n if (null === rootWithPendingPassiveEffects)\n var JSCompiler_inline_result = !1;\n else {\n renderPriority = rootWithPendingPassiveEffects;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Cannot flush passive effects while already rendering.\");\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n for (nextEffect = renderPriority.current; null !== nextEffect; ) {\n var fiber = nextEffect,\n child = fiber.child;\n if (0 !== (nextEffect.flags & 16)) {\n var deletions = fiber.deletions;\n if (null !== deletions) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n for (nextEffect = fiberToDelete; null !== nextEffect; ) {\n var fiber$jscomp$0 = nextEffect;\n switch (fiber$jscomp$0.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber$jscomp$0, fiber);\n }\n var child$jscomp$0 = fiber$jscomp$0.child;\n if (null !== child$jscomp$0)\n (child$jscomp$0.return = fiber$jscomp$0),\n (nextEffect = child$jscomp$0);\n else\n for (; null !== nextEffect; ) {\n fiber$jscomp$0 = nextEffect;\n var sibling = fiber$jscomp$0.sibling,\n returnFiber = fiber$jscomp$0.return;\n detachFiberAfterEffects(fiber$jscomp$0);\n if (fiber$jscomp$0 === fiberToDelete) {\n nextEffect = null;\n break;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break;\n }\n nextEffect = returnFiber;\n }\n }\n }\n var previousFiber = fiber.alternate;\n if (null !== previousFiber) {\n var detachedChild = previousFiber.child;\n if (null !== detachedChild) {\n previousFiber.child = null;\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (null !== detachedChild);\n }\n }\n nextEffect = fiber;\n }\n }\n if (0 !== (fiber.subtreeFlags & 2064) && null !== child)\n (child.return = fiber), (nextEffect = child);\n else\n b: for (; null !== nextEffect; ) {\n fiber = nextEffect;\n if (0 !== (fiber.flags & 2048))\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(9, fiber, fiber.return);\n }\n var sibling$jscomp$0 = fiber.sibling;\n if (null !== sibling$jscomp$0) {\n sibling$jscomp$0.return = fiber.return;\n nextEffect = sibling$jscomp$0;\n break b;\n }\n nextEffect = fiber.return;\n }\n }\n var finishedWork = renderPriority.current;\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n child = nextEffect;\n var firstChild = child.child;\n if (0 !== (child.subtreeFlags & 2064) && null !== firstChild)\n (firstChild.return = child), (nextEffect = firstChild);\n else\n b: for (child = finishedWork; null !== nextEffect; ) {\n deletions = nextEffect;\n if (0 !== (deletions.flags & 2048))\n try {\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(9, deletions);\n }\n } catch (error) {\n captureCommitPhaseError(deletions, deletions.return, error);\n }\n if (deletions === child) {\n nextEffect = null;\n break b;\n }\n var sibling$jscomp$1 = deletions.sibling;\n if (null !== sibling$jscomp$1) {\n sibling$jscomp$1.return = deletions.return;\n nextEffect = sibling$jscomp$1;\n break b;\n }\n nextEffect = deletions.return;\n }\n }\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);\n } catch (err) {}\n JSCompiler_inline_result = !0;\n }\n return JSCompiler_inline_result;\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$2.transition = prevTransition);\n }\n }\n return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1);\n sourceFiber = requestEventTime();\n null !== rootFiber &&\n (markRootUpdated(rootFiber, 1, sourceFiber),\n ensureRootIsScheduled(rootFiber, sourceFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (\n nearestMountedAncestor = sourceFiber.return;\n null !== nearestMountedAncestor;\n\n ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createClassErrorUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n nearestMountedAncestor = enqueueUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n sourceFiber = requestEventTime();\n null !== nearestMountedAncestor &&\n (markRootUpdated(nearestMountedAncestor, 1, sourceFiber),\n ensureRootIsScheduled(nearestMountedAncestor, sourceFiber));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n wakeable = requestEventTime();\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 130023424) ===\n workInProgressRootRenderLanes &&\n 500 > now() - globalMostRecentFallbackTime)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes));\n ensureRootIsScheduled(root, wakeable);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane &&\n (0 === (boundaryFiber.mode & 1)\n ? (retryLane = 1)\n : ((retryLane = nextRetryLane),\n (nextRetryLane <<= 1),\n 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304)));\n var eventTime = requestEventTime();\n boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated(boundaryFiber, retryLane, eventTime),\n ensureRootIsScheduled(boundaryFiber, eventTime));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nvar beginWork$1;\nbeginWork$1 = function(current, workInProgress, renderLanes) {\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n didPerformWorkStackCursor.current\n )\n didReceiveUpdate = !0;\n else {\n if (\n 0 === (current.lanes & renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else didReceiveUpdate = !1;\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 2:\n var Component = workInProgress.type;\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n var context = getMaskedContext(\n workInProgress,\n contextStackCursor.current\n );\n prepareToReadContext(workInProgress, renderLanes);\n context = renderWithHooks(\n null,\n workInProgress,\n Component,\n current,\n context,\n renderLanes\n );\n workInProgress.flags |= 1;\n if (\n \"object\" === typeof context &&\n null !== context &&\n \"function\" === typeof context.render &&\n void 0 === context.$$typeof\n ) {\n workInProgress.tag = 1;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state\n ? context.state\n : null;\n initializeUpdateQueue(workInProgress);\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n mountClassInstance(workInProgress, Component, current, renderLanes);\n workInProgress = finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n hasContext,\n renderLanes\n );\n } else\n (workInProgress.tag = 0),\n reconcileChildren(null, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child);\n return workInProgress;\n case 16:\n Component = workInProgress.elementType;\n a: {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n context = Component._init;\n Component = context(Component._payload);\n workInProgress.type = Component;\n context = workInProgress.tag = resolveLazyComponentTag(Component);\n current = resolveDefaultProps(Component, current);\n switch (context) {\n case 0:\n workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 1:\n workInProgress = updateClassComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 11:\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 14:\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n Component,\n resolveDefaultProps(Component.type, current),\n renderLanes\n );\n break a;\n }\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n Component +\n \". Lazy element type must resolve to a class or function.\"\n );\n }\n return workInProgress;\n case 0:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateFunctionComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 1:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateClassComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 3:\n pushHostRootContext(workInProgress);\n if (null === current)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n context = workInProgress.pendingProps;\n Component = workInProgress.memoizedState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, context, null, renderLanes);\n context = workInProgress.memoizedState.element;\n context === Component\n ? (workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ))\n : (reconcileChildren(current, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child));\n return workInProgress;\n case 5:\n return (\n pushHostContext(workInProgress),\n (Component = workInProgress.pendingProps.children),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 6:\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (Component = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 11:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateForwardRef(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n a: {\n Component = workInProgress.type._context;\n context = workInProgress.pendingProps;\n hasContext = workInProgress.memoizedProps;\n var newValue = context.value;\n push(valueCursor, Component._currentValue2);\n Component._currentValue2 = newValue;\n if (null !== hasContext)\n if (objectIs(hasContext.value, newValue)) {\n if (\n hasContext.children === context.children &&\n !didPerformWorkStackCursor.current\n ) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n } else\n for (\n hasContext = workInProgress.child,\n null !== hasContext && (hasContext.return = workInProgress);\n null !== hasContext;\n\n ) {\n var list = hasContext.dependencies;\n if (null !== list) {\n newValue = hasContext.child;\n for (\n var dependency = list.firstContext;\n null !== dependency;\n\n ) {\n if (dependency.context === Component) {\n if (1 === hasContext.tag) {\n dependency = createUpdate(-1, renderLanes & -renderLanes);\n dependency.tag = 2;\n var updateQueue = hasContext.updateQueue;\n if (null !== updateQueue) {\n updateQueue = updateQueue.shared;\n var pending = updateQueue.pending;\n null === pending\n ? (dependency.next = dependency)\n : ((dependency.next = pending.next),\n (pending.next = dependency));\n updateQueue.pending = dependency;\n }\n }\n hasContext.lanes |= renderLanes;\n dependency = hasContext.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n hasContext.return,\n renderLanes,\n workInProgress\n );\n list.lanes |= renderLanes;\n break;\n }\n dependency = dependency.next;\n }\n } else if (10 === hasContext.tag)\n newValue =\n hasContext.type === workInProgress.type\n ? null\n : hasContext.child;\n else if (18 === hasContext.tag) {\n newValue = hasContext.return;\n if (null === newValue)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n newValue.lanes |= renderLanes;\n list = newValue.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n newValue,\n renderLanes,\n workInProgress\n );\n newValue = hasContext.sibling;\n } else newValue = hasContext.child;\n if (null !== newValue) newValue.return = hasContext;\n else\n for (newValue = hasContext; null !== newValue; ) {\n if (newValue === workInProgress) {\n newValue = null;\n break;\n }\n hasContext = newValue.sibling;\n if (null !== hasContext) {\n hasContext.return = newValue.return;\n newValue = hasContext;\n break;\n }\n newValue = newValue.return;\n }\n hasContext = newValue;\n }\n reconcileChildren(\n current,\n workInProgress,\n context.children,\n renderLanes\n );\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 9:\n return (\n (context = workInProgress.type),\n (Component = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress, renderLanes),\n (context = readContext(context)),\n (Component = Component(context)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 14:\n return (\n (Component = workInProgress.type),\n (context = resolveDefaultProps(Component, workInProgress.pendingProps)),\n (context = resolveDefaultProps(Component.type, context)),\n updateMemoComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 17:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n (workInProgress.tag = 1),\n isContextProvider(Component)\n ? ((current = !0), pushContextProvider(workInProgress))\n : (current = !1),\n prepareToReadContext(workInProgress, renderLanes),\n constructClassInstance(workInProgress, Component, context),\n mountClassInstance(workInProgress, Component, context, renderLanes),\n finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n current,\n renderLanes\n )\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n};\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback(priorityLevel, callback);\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction resolveLazyComponentTag(Component) {\n if (\"function\" === typeof Component)\n return shouldConstruct(Component) ? 1 : 0;\n if (void 0 !== Component && null !== Component) {\n Component = Component.$$typeof;\n if (Component === REACT_FORWARD_REF_TYPE) return 11;\n if (Component === REACT_MEMO_TYPE) return 14;\n }\n return 2;\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 14680064;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 2;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type) fiberTag = 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 8;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiber(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiber(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiber(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONTEXT_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n throw Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n ((null == type ? type : typeof type) + \".\")\n );\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiber(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n pendingProps.stateNode = { isHidden: !1 };\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onRecoverableError\n) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = createLaneMap(0);\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = createLaneMap(0);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n}\nfunction createPortal(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nfunction findHostInstance(component) {\n var fiber = component._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof component.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n component = Object.keys(component).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" + component\n );\n }\n component = findCurrentHostFiber(fiber);\n return null === component ? null : component.stateNode;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n var current = container.current,\n eventTime = requestEventTime(),\n lane = requestUpdateLane(current);\n a: if (parentComponent) {\n parentComponent = parentComponent._reactInternals;\n b: {\n if (\n getNearestMountedFiber(parentComponent) !== parentComponent ||\n 1 !== parentComponent.tag\n )\n throw Error(\n \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var JSCompiler_inline_result = parentComponent;\n do {\n switch (JSCompiler_inline_result.tag) {\n case 3:\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode.context;\n break b;\n case 1:\n if (isContextProvider(JSCompiler_inline_result.type)) {\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode\n .__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n JSCompiler_inline_result = JSCompiler_inline_result.return;\n } while (null !== JSCompiler_inline_result);\n throw Error(\n \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (1 === parentComponent.tag) {\n var Component = parentComponent.type;\n if (isContextProvider(Component)) {\n parentComponent = processChildContext(\n parentComponent,\n Component,\n JSCompiler_inline_result\n );\n break a;\n }\n }\n parentComponent = JSCompiler_inline_result;\n } else parentComponent = emptyContextObject;\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(eventTime, lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(current, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, current, lane, eventTime),\n entangleTransitions(element, current, lane));\n return lane;\n}\nfunction emptyFindFiberByHostInstance() {\n return null;\n}\nfunction findNodeHandle(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (\"number\" === typeof componentOrHandle) return componentOrHandle;\n if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical._nativeTag;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical._nativeTag\n : componentOrHandle._nativeTag;\n}\nfunction onRecoverableError(error) {\n console.error(error);\n}\nbatchedUpdatesImpl = function(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= 1;\n try {\n return fn(a);\n } finally {\n (executionContext = prevExecutionContext),\n 0 === executionContext &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n }\n};\nvar roots = new Map(),\n devToolsConfig$jscomp$inline_938 = {\n findFiberByHostInstance: getInstanceFromInstance,\n bundleType: 0,\n version: \"18.2.0-next-9e3b772b8-20220608\",\n rendererPackageName: \"react-native-renderer\",\n rendererConfig: {\n getInspectorDataForViewTag: function() {\n throw Error(\n \"getInspectorDataForViewTag() is not available in production\"\n );\n },\n getInspectorDataForViewAtPoint: function() {\n throw Error(\n \"getInspectorDataForViewAtPoint() is not available in production.\"\n );\n }.bind(null, findNodeHandle)\n }\n };\nvar internals$jscomp$inline_1180 = {\n bundleType: devToolsConfig$jscomp$inline_938.bundleType,\n version: devToolsConfig$jscomp$inline_938.version,\n rendererPackageName: devToolsConfig$jscomp$inline_938.rendererPackageName,\n rendererConfig: devToolsConfig$jscomp$inline_938.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher,\n findHostInstanceByFiber: function(fiber) {\n fiber = findCurrentHostFiber(fiber);\n return null === fiber ? null : fiber.stateNode;\n },\n findFiberByHostInstance:\n devToolsConfig$jscomp$inline_938.findFiberByHostInstance ||\n emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.2.0-next-9e3b772b8-20220608\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_1181 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_1181.isDisabled &&\n hook$jscomp$inline_1181.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_1181.inject(\n internals$jscomp$inline_1180\n )),\n (injectedHook = hook$jscomp$inline_1181);\n } catch (err) {}\n}\nexports.createPortal = function(children, containerTag) {\n return createPortal(\n children,\n containerTag,\n null,\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null\n );\n};\nexports.dispatchCommand = function(handle, command, args) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.dispatchCommand(handle.node, command, args))\n : ReactNativePrivateInterface.UIManager.dispatchViewManagerCommand(\n handle._nativeTag,\n command,\n args\n ));\n};\nexports.findHostInstance_DEPRECATED = function(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (componentOrHandle._nativeTag) return componentOrHandle;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical\n : componentOrHandle;\n};\nexports.findNodeHandle = findNodeHandle;\nexports.getInspectorDataForInstance = void 0;\nexports.render = function(element, containerTag, callback, concurrentRoot) {\n var root = roots.get(containerTag);\n root ||\n ((root = concurrentRoot ? 1 : 0),\n (concurrentRoot = new FiberRootNode(\n containerTag,\n root,\n !1,\n \"\",\n onRecoverableError\n )),\n (root = createFiber(3, null, null, 1 === root ? 1 : 0)),\n (concurrentRoot.current = root),\n (root.stateNode = concurrentRoot),\n (root.memoizedState = {\n element: null,\n isDehydrated: !1,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n }),\n initializeUpdateQueue(root),\n (root = concurrentRoot),\n roots.set(containerTag, root));\n updateContainer(element, root, null, callback);\n a: if (((element = root.current), element.child))\n switch (element.child.tag) {\n case 5:\n element = element.child.stateNode.canonical;\n break a;\n default:\n element = element.child.stateNode;\n }\n else element = null;\n return element;\n};\nexports.sendAccessibilityEvent = function(handle, eventType) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType))\n : ReactNativePrivateInterface.legacySendAccessibilityEvent(\n handle._nativeTag,\n eventType\n ));\n};\nexports.stopSurface = function(containerTag) {\n var root = roots.get(containerTag);\n root &&\n updateContainer(null, root, null, function() {\n roots.delete(containerTag);\n });\n};\nexports.unmountComponentAtNode = function(containerTag) {\n this.stopSurface(containerTag);\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 * @format\n * @flow strict-local\n */\n\nimport '../Core/InitializeCore';\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 * @format\n * @flow strict-local\n */\n\n/**\n * Sets up global variables typical in most JavaScript environments.\n *\n * 1. Global timers (via `setTimeout` etc).\n * 2. Global console object.\n * 3. Hooks for printing stack traces with source maps.\n *\n * Leaves enough room in the environment for implementing your own:\n *\n * 1. Require system.\n * 2. Bridged modules.\n *\n */\n\n'use strict';\n\nconst start = Date.now();\n\nrequire('./setUpGlobals');\nrequire('./setUpPerformance');\nrequire('./setUpErrorHandling');\nrequire('./polyfillPromise');\nrequire('./setUpRegeneratorRuntime');\nrequire('./setUpTimers');\nrequire('./setUpXHR');\nrequire('./setUpAlert');\nrequire('./setUpNavigator');\nrequire('./setUpBatchedBridge');\nrequire('./setUpSegmentFetcher');\nif (__DEV__) {\n require('./checkNativeVersion');\n require('./setUpDeveloperTools');\n require('../LogBox/LogBox').install();\n}\n\nrequire('../ReactNative/AppRegistry');\n\nconst GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');\n// We could just call GlobalPerformanceLogger.markPoint at the top of the file,\n// but then we'd be excluding the time it took to require the logger.\n// Instead, we just use Date.now and backdate the timestamp.\nGlobalPerformanceLogger.markPoint(\n 'initializeCore_start',\n GlobalPerformanceLogger.currentTimestamp() - (Date.now() - start),\n);\nGlobalPerformanceLogger.markPoint('initializeCore_end');\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 strict\n * @format\n */\n\n'use strict';\n\n/**\n * Sets up global variables for React Native.\n * You can use this module directly, or just require InitializeCore.\n */\nif (global.window === undefined) {\n // $FlowFixMe[cannot-write]\n global.window = global;\n}\n\nif (global.self === undefined) {\n // $FlowFixMe[cannot-write]\n global.self = global;\n}\n\n// Set up process\nglobal.process = global.process || {};\nglobal.process.env = global.process.env || {};\nif (!global.process.env.NODE_ENV) {\n global.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';\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 strict\n * @format\n */\n\n'use strict';\n\nif (!global.performance) {\n global.performance = ({}: {now?: () => number});\n}\n\n/**\n * Returns a double, measured in milliseconds.\n * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now\n */\nif (typeof global.performance.now !== 'function') {\n global.performance.now = function () {\n const performanceNow = global.nativePerformanceNow || Date.now;\n return performanceNow();\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 strict-local\n * @format\n */\n\n'use strict';\n\n/**\n * Sets up the console and exception handling (redbox) for React Native.\n * You can use this module directly, or just require InitializeCore.\n */\nconst ExceptionsManager = require('./ExceptionsManager');\nExceptionsManager.installConsoleErrorReporter();\n\n// Set up error handler\nif (!global.__fbDisableExceptionsManager) {\n const handleError = (e: mixed, isFatal: boolean) => {\n try {\n ExceptionsManager.handleException(e, isFatal);\n } catch (ee) {\n console.log('Failed to print error: ', ee.message);\n throw e;\n }\n };\n\n const ErrorUtils = require('../vendor/core/ErrorUtils');\n ErrorUtils.setGlobalHandler(handleError);\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 strict\n * @format\n */\n\n'use strict';\n\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up Promise. The native Promise implementation throws the following error:\n * ERROR: Event loop not supported.\n *\n * If you don't need these polyfills, don't use InitializeCore; just directly\n * require the modules you need from InitializeCore for setup.\n */\n\n// If global.Promise is provided by Hermes, we are confident that it can provide\n// all the methods needed by React Native, so we can directly use it.\nif (global?.HermesInternal?.hasPromise?.()) {\n const HermesPromise = global.Promise;\n\n if (__DEV__) {\n if (typeof HermesPromise !== 'function') {\n console.error('HermesPromise does not exist');\n }\n global.HermesInternal?.enablePromiseRejectionTracker?.(\n require('../promiseRejectionTrackingOptions').default,\n );\n }\n} else {\n polyfillGlobal('Promise', () => require('../Promise'));\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 strict\n * @format\n */\n\n'use strict';\n\nconst defineLazyObjectProperty = require('./defineLazyObjectProperty');\n\n/**\n * Sets an object's property. If a property with the same name exists, this will\n * replace it but maintain its descriptor configuration. The property will be\n * replaced with a lazy getter.\n *\n * In DEV mode the original property value will be preserved as `original[PropertyName]`\n * so that, if necessary, it can be restored. For example, if you want to route\n * network requests through DevTools (to trace them):\n *\n * global.XMLHttpRequest = global.originalXMLHttpRequest;\n *\n * @see https://github.com/facebook/react-native/issues/934\n */\nfunction polyfillObjectProperty<T>(\n object: {...},\n name: string,\n getValue: () => T,\n): void {\n const descriptor = Object.getOwnPropertyDescriptor<$FlowFixMe>(object, name);\n if (__DEV__ && descriptor) {\n const backupName = `original${name[0].toUpperCase()}${name.substr(1)}`;\n Object.defineProperty(object, backupName, descriptor);\n }\n\n const {enumerable, writable, configurable = false} = descriptor || {};\n if (descriptor && !configurable) {\n console.error('Failed to set polyfill. ' + name + ' is not configurable.');\n return;\n }\n\n defineLazyObjectProperty(object, name, {\n get: getValue,\n enumerable: enumerable !== false,\n writable: writable !== false,\n });\n}\n\nfunction polyfillGlobal<T>(name: string, getValue: () => T): void {\n polyfillObjectProperty(global, name, getValue);\n}\n\nmodule.exports = {polyfillObjectProperty, polyfillGlobal};\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nconst Promise = require('promise/setimmediate/es6-extensions');\n\nrequire('promise/setimmediate/finally');\n\nif (__DEV__) {\n require('promise/setimmediate/rejection-tracking').enable(\n require('./promiseRejectionTrackingOptions').default,\n );\n}\n\nmodule.exports = Promise;\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._D);\n p._y = 1;\n p._z = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nvar iterableToArray = function (iterable) {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) { return Array.prototype.slice.call(x); };\n return Array.prototype.slice.call(iterable);\n}\n\nPromise.all = function (arr) {\n var args = iterableToArray(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._y === 3) {\n val = val._z;\n }\n if (val._y === 1) return res(i, val._z);\n if (val._y === 2) reject(val._z);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nfunction onSettledFulfill(value) {\n return { status: 'fulfilled', value: value };\n}\nfunction onSettledReject(reason) {\n return { status: 'rejected', reason: reason };\n}\nfunction mapAllSettled(item) {\n if(item && (typeof item === 'object' || typeof item === 'function')){\n if(item instanceof Promise && item.then === Promise.prototype.then){\n return item.then(onSettledFulfill, onSettledReject);\n }\n var then = item.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(item)).then(onSettledFulfill, onSettledReject)\n }\n }\n\n return onSettledFulfill(item);\n}\nPromise.allSettled = function (iterable) {\n return Promise.all(iterableToArray(iterable).map(mapAllSettled));\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\nfunction getAggregateError(errors){\n if(typeof AggregateError === 'function'){\n return new AggregateError(errors,'All promises were rejected');\n }\n\n var error = new Error('All promises were rejected');\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nPromise.any = function promiseAny(values) {\n return new Promise(function(resolve, reject) {\n var promises = iterableToArray(values);\n var hasResolved = false;\n var rejectionReasons = [];\n\n function resolveOnce(value) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if(promises.length === 0){\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function(value){\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n};\n","'use strict';\n\n\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._x = 0;\n this._y = 0;\n this._z = null;\n this._A = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._B = null;\nPromise._C = null;\nPromise._D = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._y === 3) {\n self = self._z;\n }\n if (Promise._B) {\n Promise._B(self);\n }\n if (self._y === 0) {\n if (self._x === 0) {\n self._x = 1;\n self._A = deferred;\n return;\n }\n if (self._x === 1) {\n self._x = 2;\n self._A = [self._A, deferred];\n return;\n }\n self._A.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n setImmediate(function() {\n var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._y === 1) {\n resolve(deferred.promise, self._z);\n } else {\n reject(deferred.promise, self._z);\n }\n return;\n }\n var ret = tryCallOne(cb, self._z);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._y = 3;\n self._z = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._y = 1;\n self._z = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._y = 2;\n self._z = newValue;\n if (Promise._C) {\n Promise._C(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._x === 1) {\n handle(self, self._A);\n self._A = null;\n }\n if (self._x === 2) {\n for (var i = 0; i < self._A.length; i++) {\n handle(self, self._A[i]);\n }\n self._A = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","'use strict';\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\nPromise.prototype.finally = function (f) {\n return this.then(function (value) {\n return Promise.resolve(f()).then(function () {\n return value;\n });\n }, function (err) {\n return Promise.resolve(f()).then(function () {\n throw err;\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 strict-local\n * @format\n */\n\n'use strict';\n\nconst {hasNativeConstructor} = require('../Utilities/FeatureDetection');\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up regenerator.\n * You can use this module directly, or just require InitializeCore.\n */\n\nlet hasNativeGenerator;\ntry {\n // If this function was lowered by regenerator-transform, it will try to\n // access `global.regeneratorRuntime` which doesn't exist yet and will throw.\n hasNativeGenerator = hasNativeConstructor(function* () {},\n 'GeneratorFunction');\n} catch {\n // In this case, we know generators are not provided natively.\n hasNativeGenerator = false;\n}\n\n// If generators are provided natively, which suggests that there was no\n// regenerator-transform, then there is no need to set up the runtime.\nif (!hasNativeGenerator) {\n polyfillGlobal('regeneratorRuntime', () => {\n // The require just sets up the global, so make sure when we first\n // invoke it the global does not exist\n delete global.regeneratorRuntime;\n\n // regenerator-runtime/runtime exports the regeneratorRuntime object, so we\n // can return it safely.\n return require('regenerator-runtime/runtime'); // flowlint-line untyped-import:off\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 * @format\n */\n\n/**\n * @return whether or not a @param {function} f is provided natively by calling\n * `toString` and check if the result includes `[native code]` in it.\n *\n * Note that a polyfill can technically fake this behavior but few does it.\n * Therefore, this is usually good enough for our purpose.\n */\nfunction isNativeFunction(f: Function): boolean {\n return typeof f === 'function' && f.toString().indexOf('[native code]') > -1;\n}\n\n/**\n * @return whether or not the constructor of @param {object} o is an native\n * function named with @param {string} expectedName.\n */\nfunction hasNativeConstructor(o: Object, expectedName: string): boolean {\n const con = Object.getPrototypeOf(o).constructor;\n return con.name === expectedName && isNativeFunction(con);\n}\n\nmodule.exports = {isNativeFunction, hasNativeConstructor};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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 strict-local\n * @format\n */\n\n'use strict';\n\nconst {isNativeFunction} = require('../Utilities/FeatureDetection');\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\nif (__DEV__) {\n if (typeof global.Promise !== 'function') {\n console.error('Promise should exist before setting up timers.');\n }\n}\n\n// Currently, Hermes `Promise` is implemented via Internal Bytecode.\nconst hasHermesPromiseQueuedToJSVM =\n global.HermesInternal?.hasPromise?.() === true &&\n global.HermesInternal?.useEngineQueue?.() === true;\n\nconst hasNativePromise = isNativeFunction(Promise);\nconst hasPromiseQueuedToJSVM = hasNativePromise || hasHermesPromiseQueuedToJSVM;\n\n// In bridgeless mode, timers are host functions installed from cpp.\nif (global.RN$Bridgeless !== true) {\n /**\n * Set up timers.\n * You can use this module directly, or just require InitializeCore.\n */\n const defineLazyTimer = (\n name:\n | $TEMPORARY$string<'cancelAnimationFrame'>\n | $TEMPORARY$string<'cancelIdleCallback'>\n | $TEMPORARY$string<'clearInterval'>\n | $TEMPORARY$string<'clearTimeout'>\n | $TEMPORARY$string<'requestAnimationFrame'>\n | $TEMPORARY$string<'requestIdleCallback'>\n | $TEMPORARY$string<'setInterval'>\n | $TEMPORARY$string<'setTimeout'>,\n ) => {\n polyfillGlobal(name, () => require('./Timers/JSTimers')[name]);\n };\n defineLazyTimer('setTimeout');\n defineLazyTimer('clearTimeout');\n defineLazyTimer('setInterval');\n defineLazyTimer('clearInterval');\n defineLazyTimer('requestAnimationFrame');\n defineLazyTimer('cancelAnimationFrame');\n defineLazyTimer('requestIdleCallback');\n defineLazyTimer('cancelIdleCallback');\n}\n\n/**\n * Set up immediate APIs, which is required to use the same microtask queue\n * as the Promise.\n */\nif (hasPromiseQueuedToJSVM) {\n // When promise queues to the JSVM microtasks queue, we shim the immedaite\n // APIs via `queueMicrotask` to maintain the backward compatibility.\n polyfillGlobal(\n 'setImmediate',\n () => require('./Timers/immediateShim').setImmediate,\n );\n polyfillGlobal(\n 'clearImmediate',\n () => require('./Timers/immediateShim').clearImmediate,\n );\n} else {\n // When promise was polyfilled hence is queued to the RN microtask queue,\n // we polyfill the immediate APIs as aliases to the ReactNativeMicrotask APIs.\n // Note that in bridgeless mode, immediate APIs are installed from cpp.\n if (global.RN$Bridgeless !== true) {\n polyfillGlobal(\n 'setImmediate',\n () => require('./Timers/JSTimers').queueReactNativeMicrotask,\n );\n polyfillGlobal(\n 'clearImmediate',\n () => require('./Timers/JSTimers').clearReactNativeMicrotask,\n );\n }\n}\n\n/**\n * Set up the microtask queueing API, which is required to use the same\n * microtask queue as the Promise.\n */\nif (hasHermesPromiseQueuedToJSVM) {\n // Fast path for Hermes.\n polyfillGlobal('queueMicrotask', () => global.HermesInternal?.enqueueJob);\n} else {\n // Polyfill it with promise (regardless it's polyfiled or native) otherwise.\n polyfillGlobal(\n 'queueMicrotask',\n () => require('./Timers/queueMicrotask.js').default,\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 * @format\n * @flow\n */\n\nimport NativeTiming from './NativeTiming';\n\nconst BatchedBridge = require('../../BatchedBridge/BatchedBridge');\nconst Systrace = require('../../Performance/Systrace');\nconst invariant = require('invariant');\n\n/**\n * JS implementation of timer functions. Must be completely driven by an\n * external clock signal, all that's stored here is timerID, timer type, and\n * callback.\n */\n\nexport type JSTimerType =\n | 'setTimeout'\n | 'setInterval'\n | 'requestAnimationFrame'\n | 'queueReactNativeMicrotask'\n | 'requestIdleCallback';\n\n// These timing constants should be kept in sync with the ones in native ios and\n// android `RCTTiming` module.\nconst FRAME_DURATION = 1000 / 60;\nconst IDLE_CALLBACK_FRAME_DEADLINE = 1;\n\n// Parallel arrays\nconst callbacks: Array<?Function> = [];\nconst types: Array<?JSTimerType> = [];\nconst timerIDs: Array<?number> = [];\nlet reactNativeMicrotasks: Array<number> = [];\nlet requestIdleCallbacks: Array<number> = [];\nconst requestIdleCallbackTimeouts: {[number]: number, ...} = {};\n\nlet GUID = 1;\nconst errors: Array<Error> = [];\n\nlet hasEmittedTimeDriftWarning = false;\n\n// Returns a free index if one is available, and the next consecutive index otherwise.\nfunction _getFreeIndex(): number {\n let freeIndex = timerIDs.indexOf(null);\n if (freeIndex === -1) {\n freeIndex = timerIDs.length;\n }\n return freeIndex;\n}\n\nfunction _allocateCallback(func: Function, type: JSTimerType): number {\n const id = GUID++;\n const freeIndex = _getFreeIndex();\n timerIDs[freeIndex] = id;\n callbacks[freeIndex] = func;\n types[freeIndex] = type;\n return id;\n}\n\n/**\n * Calls the callback associated with the ID. Also unregister that callback\n * if it was a one time timer (setTimeout), and not unregister it if it was\n * recurring (setInterval).\n */\nfunction _callTimer(timerID: number, frameTime: number, didTimeout: ?boolean) {\n if (timerID > GUID) {\n console.warn(\n 'Tried to call timer with ID %s but no such timer exists.',\n timerID,\n );\n }\n\n // timerIndex of -1 means that no timer with that ID exists. There are\n // two situations when this happens, when a garbage timer ID was given\n // and when a previously existing timer was deleted before this callback\n // fired. In both cases we want to ignore the timer id, but in the former\n // case we warn as well.\n const timerIndex = timerIDs.indexOf(timerID);\n if (timerIndex === -1) {\n return;\n }\n\n const type = types[timerIndex];\n const callback = callbacks[timerIndex];\n if (!callback || !type) {\n console.error('No callback found for timerID ' + timerID);\n return;\n }\n\n if (__DEV__) {\n Systrace.beginEvent(type + ' [invoke]');\n }\n\n // Clear the metadata\n if (type !== 'setInterval') {\n _clearIndex(timerIndex);\n }\n\n try {\n if (\n type === 'setTimeout' ||\n type === 'setInterval' ||\n type === 'queueReactNativeMicrotask'\n ) {\n callback();\n } else if (type === 'requestAnimationFrame') {\n callback(global.performance.now());\n } else if (type === 'requestIdleCallback') {\n callback({\n timeRemaining: function () {\n // TODO: Optimisation: allow running for longer than one frame if\n // there are no pending JS calls on the bridge from native. This\n // would require a way to check the bridge queue synchronously.\n return Math.max(\n 0,\n FRAME_DURATION - (global.performance.now() - frameTime),\n );\n },\n didTimeout: !!didTimeout,\n });\n } else {\n console.error('Tried to call a callback with invalid type: ' + type);\n }\n } catch (e) {\n // Don't rethrow so that we can run all timers.\n errors.push(e);\n }\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n}\n\n/**\n * Performs a single pass over the enqueued reactNativeMicrotasks. Returns whether\n * more reactNativeMicrotasks are queued up (can be used as a condition a while loop).\n */\nfunction _callReactNativeMicrotasksPass() {\n if (reactNativeMicrotasks.length === 0) {\n return false;\n }\n\n if (__DEV__) {\n Systrace.beginEvent('callReactNativeMicrotasksPass()');\n }\n\n // The main reason to extract a single pass is so that we can track\n // in the system trace\n const passReactNativeMicrotasks = reactNativeMicrotasks;\n reactNativeMicrotasks = [];\n\n // Use for loop rather than forEach as per @vjeux's advice\n // https://github.com/facebook/react-native/commit/c8fd9f7588ad02d2293cac7224715f4af7b0f352#commitcomment-14570051\n for (let i = 0; i < passReactNativeMicrotasks.length; ++i) {\n _callTimer(passReactNativeMicrotasks[i], 0);\n }\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n return reactNativeMicrotasks.length > 0;\n}\n\nfunction _clearIndex(i: number) {\n timerIDs[i] = null;\n callbacks[i] = null;\n types[i] = null;\n}\n\nfunction _freeCallback(timerID: number) {\n // timerIDs contains nulls after timers have been removed;\n // ignore nulls upfront so indexOf doesn't find them\n if (timerID == null) {\n return;\n }\n\n const index = timerIDs.indexOf(timerID);\n // See corresponding comment in `callTimers` for reasoning behind this\n if (index !== -1) {\n const type = types[index];\n _clearIndex(index);\n if (\n type !== 'queueReactNativeMicrotask' &&\n type !== 'requestIdleCallback'\n ) {\n deleteTimer(timerID);\n }\n }\n}\n\n/**\n * JS implementation of timer functions. Must be completely driven by an\n * external clock signal, all that's stored here is timerID, timer type, and\n * callback.\n */\nconst JSTimers = {\n /**\n * @param {function} func Callback to be invoked after `duration` ms.\n * @param {number} duration Number of milliseconds.\n */\n setTimeout: function (\n func: Function,\n duration: number,\n ...args: any\n ): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'setTimeout',\n );\n createTimer(id, duration || 0, Date.now(), /* recurring */ false);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every `duration` ms.\n * @param {number} duration Number of milliseconds.\n */\n setInterval: function (\n func: Function,\n duration: number,\n ...args: any\n ): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'setInterval',\n );\n createTimer(id, duration || 0, Date.now(), /* recurring */ true);\n return id;\n },\n\n /**\n * The React Native microtask mechanism is used to back public APIs e.g.\n * `queueMicrotask`, `clearImmediate`, and `setImmediate` (which is used by\n * the Promise polyfill) when the JSVM microtask mechanism is not used.\n *\n * @param {function} func Callback to be invoked before the end of the\n * current JavaScript execution loop.\n */\n queueReactNativeMicrotask: function (func: Function, ...args: any): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'queueReactNativeMicrotask',\n );\n reactNativeMicrotasks.push(id);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every frame.\n */\n requestAnimationFrame: function (func: Function): any | number {\n const id = _allocateCallback(func, 'requestAnimationFrame');\n createTimer(id, 1, Date.now(), /* recurring */ false);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every frame and provided\n * with time remaining in frame.\n * @param {?object} options\n */\n requestIdleCallback: function (\n func: Function,\n options: ?Object,\n ): any | number {\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(true);\n }\n\n const timeout = options && options.timeout;\n const id: number = _allocateCallback(\n timeout != null\n ? (deadline: any) => {\n const timeoutId: number = requestIdleCallbackTimeouts[id];\n if (timeoutId) {\n JSTimers.clearTimeout(timeoutId);\n delete requestIdleCallbackTimeouts[id];\n }\n return func(deadline);\n }\n : func,\n 'requestIdleCallback',\n );\n requestIdleCallbacks.push(id);\n\n if (timeout != null) {\n const timeoutId: number = JSTimers.setTimeout(() => {\n const index: number = requestIdleCallbacks.indexOf(id);\n if (index > -1) {\n requestIdleCallbacks.splice(index, 1);\n _callTimer(id, global.performance.now(), true);\n }\n delete requestIdleCallbackTimeouts[id];\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n }, timeout);\n requestIdleCallbackTimeouts[id] = timeoutId;\n }\n return id;\n },\n\n cancelIdleCallback: function (timerID: number) {\n _freeCallback(timerID);\n const index = requestIdleCallbacks.indexOf(timerID);\n if (index !== -1) {\n requestIdleCallbacks.splice(index, 1);\n }\n\n const timeoutId = requestIdleCallbackTimeouts[timerID];\n if (timeoutId) {\n JSTimers.clearTimeout(timeoutId);\n delete requestIdleCallbackTimeouts[timerID];\n }\n\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n },\n\n clearTimeout: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n clearInterval: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n clearReactNativeMicrotask: function (timerID: number) {\n _freeCallback(timerID);\n const index = reactNativeMicrotasks.indexOf(timerID);\n if (index !== -1) {\n reactNativeMicrotasks.splice(index, 1);\n }\n },\n\n cancelAnimationFrame: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n /**\n * This is called from the native side. We are passed an array of timerIDs,\n * and\n */\n callTimers: function (timersToCall: Array<number>): any | void {\n invariant(\n timersToCall.length !== 0,\n 'Cannot call `callTimers` with an empty list of IDs.',\n );\n\n errors.length = 0;\n for (let i = 0; i < timersToCall.length; i++) {\n _callTimer(timersToCall[i], 0);\n }\n\n const errorCount = errors.length;\n if (errorCount > 0) {\n if (errorCount > 1) {\n // Throw all the other errors in a setTimeout, which will throw each\n // error one at a time\n for (let ii = 1; ii < errorCount; ii++) {\n JSTimers.setTimeout(\n ((error: Error) => {\n throw error;\n }).bind(null, errors[ii]),\n 0,\n );\n }\n }\n throw errors[0];\n }\n },\n\n callIdleCallbacks: function (frameTime: number) {\n if (\n FRAME_DURATION - (global.performance.now() - frameTime) <\n IDLE_CALLBACK_FRAME_DEADLINE\n ) {\n return;\n }\n\n errors.length = 0;\n if (requestIdleCallbacks.length > 0) {\n const passIdleCallbacks = requestIdleCallbacks;\n requestIdleCallbacks = [];\n\n for (let i = 0; i < passIdleCallbacks.length; ++i) {\n _callTimer(passIdleCallbacks[i], frameTime);\n }\n }\n\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n\n errors.forEach(error =>\n JSTimers.setTimeout(() => {\n throw error;\n }, 0),\n );\n },\n\n /**\n * This is called after we execute any command we receive from native but\n * before we hand control back to native.\n */\n callReactNativeMicrotasks() {\n errors.length = 0;\n while (_callReactNativeMicrotasksPass()) {}\n errors.forEach(error =>\n JSTimers.setTimeout(() => {\n throw error;\n }, 0),\n );\n },\n\n /**\n * Called from native (in development) when environment times are out-of-sync.\n */\n emitTimeDriftWarning(warningMessage: string) {\n if (hasEmittedTimeDriftWarning) {\n return;\n }\n hasEmittedTimeDriftWarning = true;\n console.warn(warningMessage);\n },\n};\n\nfunction createTimer(\n callbackID: number,\n duration: number,\n jsSchedulingTime: number,\n repeats: boolean,\n): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.createTimer(callbackID, duration, jsSchedulingTime, repeats);\n}\n\nfunction deleteTimer(timerID: number): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.deleteTimer(timerID);\n}\n\nfunction setSendIdleEvents(sendIdleEvents: boolean): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.setSendIdleEvents(sendIdleEvents);\n}\n\nlet ExportedJSTimers: {|\n callIdleCallbacks: (frameTime: number) => any | void,\n callReactNativeMicrotasks: () => void,\n callTimers: (timersToCall: Array<number>) => any | void,\n cancelAnimationFrame: (timerID: number) => void,\n cancelIdleCallback: (timerID: number) => void,\n clearReactNativeMicrotask: (timerID: number) => void,\n clearInterval: (timerID: number) => void,\n clearTimeout: (timerID: number) => void,\n emitTimeDriftWarning: (warningMessage: string) => any | void,\n requestAnimationFrame: (func: any) => any | number,\n requestIdleCallback: (func: any, options: ?any) => any | number,\n queueReactNativeMicrotask: (func: any, ...args: any) => number,\n setInterval: (func: any, duration: number, ...args: any) => number,\n setTimeout: (func: any, duration: number, ...args: any) => number,\n|};\n\nif (!NativeTiming) {\n console.warn(\"Timing native module is not available, can't set timers.\");\n // $FlowFixMe[prop-missing] : we can assume timers are generally available\n ExportedJSTimers = ({\n callReactNativeMicrotasks: JSTimers.callReactNativeMicrotasks,\n queueReactNativeMicrotask: JSTimers.queueReactNativeMicrotask,\n }: typeof JSTimers);\n} else {\n ExportedJSTimers = JSTimers;\n}\n\nBatchedBridge.setReactNativeMicrotasksCallback(\n JSTimers.callReactNativeMicrotasks,\n);\n\nmodule.exports = ExportedJSTimers;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +createTimer: (\n callbackID: number,\n duration: number,\n jsSchedulingTime: number,\n repeats: boolean,\n ) => void;\n +deleteTimer: (timerID: number) => void;\n +setSendIdleEvents: (sendIdleEvents: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('Timing'): ?Spec);\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 * @format\n * @flow\n */\n\n'use strict';\n\n// Globally Unique Immediate ID.\nlet GUIID = 1;\n\n// A global set of the currently cleared immediates.\nconst clearedImmediates: Set<number> = new Set();\n\n/**\n * Shim the setImmediate API on top of queueMicrotask.\n * @param {function} func Callback to be invoked before the end of the\n * current JavaScript execution loop.\n */\nfunction setImmediate(callback: Function, ...args: any): number {\n if (arguments.length < 1) {\n throw new TypeError(\n 'setImmediate must be called with at least one argument (a function to call)',\n );\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\n 'The first argument to setImmediate must be a function.',\n );\n }\n\n const id = GUIID++;\n // This is an edgey case in which the sequentially assigned ID has been\n // \"guessed\" and \"cleared\" ahead of time, so we need to clear it up first.\n if (clearedImmediates.has(id)) {\n clearedImmediates.delete(id);\n }\n\n global.queueMicrotask(() => {\n if (!clearedImmediates.has(id)) {\n callback.apply(undefined, args);\n } else {\n // Free up the Set entry.\n clearedImmediates.delete(id);\n }\n });\n\n return id;\n}\n\n/**\n * @param {number} immediateID The ID of the immediate to be clearred.\n */\nfunction clearImmediate(immediateID: number) {\n clearedImmediates.add(immediateID);\n}\n\nconst immediateShim = {\n setImmediate: setImmediate,\n clearImmediate: clearImmediate,\n};\n\nmodule.exports = immediateShim;\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 * @format\n * @flow\n */\n\n'use strict';\n\nlet resolvedPromise;\n\n/**\n * Polyfill for the microtask queuening API defined by WHATWG HTMP spec.\n * https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n *\n * The method must queue a microtask to invoke @param {function} callback, and\n * if the callback throws an exception, report the exception.\n */\nexport default function queueMicrotask(callback: Function) {\n if (arguments.length < 1) {\n throw new TypeError(\n 'queueMicrotask must be called with at least one argument (a function to call)',\n );\n }\n if (typeof callback !== 'function') {\n throw new TypeError('The argument to queueMicrotask must be a function.');\n }\n\n // Try to reuse a lazily allocated resolved promise from closure.\n (resolvedPromise || (resolvedPromise = Promise.resolve()))\n .then(callback)\n .catch(error =>\n // Report the exception until the next tick.\n setTimeout(() => {\n throw error;\n }, 0),\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 strict-local\n * @format\n */\n\n'use strict';\n\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up XMLHttpRequest. The native XMLHttpRequest in Chrome dev tools is CORS\n * aware and won't let you fetch anything from the internet.\n *\n * You can use this module directly, or just require InitializeCore.\n */\npolyfillGlobal('XMLHttpRequest', () => require('../Network/XMLHttpRequest'));\npolyfillGlobal('FormData', () => require('../Network/FormData'));\n\npolyfillGlobal('fetch', () => require('../Network/fetch').fetch);\npolyfillGlobal('Headers', () => require('../Network/fetch').Headers);\npolyfillGlobal('Request', () => require('../Network/fetch').Request);\npolyfillGlobal('Response', () => require('../Network/fetch').Response);\npolyfillGlobal('WebSocket', () => require('../WebSocket/WebSocket'));\npolyfillGlobal('Blob', () => require('../Blob/Blob'));\npolyfillGlobal('File', () => require('../Blob/File'));\npolyfillGlobal('FileReader', () => require('../Blob/FileReader'));\npolyfillGlobal('URL', () => require('../Blob/URL').URL); // flowlint-line untyped-import:off\npolyfillGlobal('URLSearchParams', () => require('../Blob/URL').URLSearchParams); // flowlint-line untyped-import:off\npolyfillGlobal(\n 'AbortController',\n () => require('abort-controller/dist/abort-controller').AbortController, // flowlint-line untyped-import:off\n);\npolyfillGlobal(\n 'AbortSignal',\n () => require('abort-controller/dist/abort-controller').AbortSignal, // flowlint-line untyped-import:off\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 * @format\n * @flow\n */\n\n'use strict';\n\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\n\nconst BlobManager = require('../Blob/BlobManager');\nconst GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');\nconst RCTNetworking = require('./RCTNetworking');\nconst base64 = require('base64-js');\nconst EventTarget = require('event-target-shim');\nconst invariant = require('invariant');\n\nconst DEBUG_NETWORK_SEND_DELAY: false = false; // Set to a number of milliseconds when debugging\n\nexport type NativeResponseType = 'base64' | 'blob' | 'text';\nexport type ResponseType =\n | ''\n | 'arraybuffer'\n | 'blob'\n | 'document'\n | 'json'\n | 'text';\nexport type Response = ?Object | string;\n\ntype XHRInterceptor = interface {\n requestSent(id: number, url: string, method: string, headers: Object): void,\n responseReceived(\n id: number,\n url: string,\n status: number,\n headers: Object,\n ): void,\n dataReceived(id: number, data: string): void,\n loadingFinished(id: number, encodedDataLength: number): void,\n loadingFailed(id: number, error: string): void,\n};\n\n// The native blob module is optional so inject it here if available.\nif (BlobManager.isAvailable) {\n BlobManager.addNetworkingHandler();\n}\n\nconst UNSENT = 0;\nconst OPENED = 1;\nconst HEADERS_RECEIVED = 2;\nconst LOADING = 3;\nconst DONE = 4;\n\nconst SUPPORTED_RESPONSE_TYPES = {\n arraybuffer: typeof global.ArrayBuffer === 'function',\n blob: typeof global.Blob === 'function',\n document: false,\n json: true,\n text: true,\n '': true,\n};\n\nconst REQUEST_EVENTS = [\n 'abort',\n 'error',\n 'load',\n 'loadstart',\n 'progress',\n 'timeout',\n 'loadend',\n];\n\nconst XHR_EVENTS = REQUEST_EVENTS.concat('readystatechange');\n\nclass XMLHttpRequestEventTarget extends (EventTarget(...REQUEST_EVENTS): any) {\n onload: ?Function;\n onloadstart: ?Function;\n onprogress: ?Function;\n ontimeout: ?Function;\n onerror: ?Function;\n onabort: ?Function;\n onloadend: ?Function;\n}\n\n/**\n * Shared base for platform-specific XMLHttpRequest implementations.\n */\nclass XMLHttpRequest extends (EventTarget(...XHR_EVENTS): any) {\n static UNSENT: number = UNSENT;\n static OPENED: number = OPENED;\n static HEADERS_RECEIVED: number = HEADERS_RECEIVED;\n static LOADING: number = LOADING;\n static DONE: number = DONE;\n\n static _interceptor: ?XHRInterceptor = null;\n\n UNSENT: number = UNSENT;\n OPENED: number = OPENED;\n HEADERS_RECEIVED: number = HEADERS_RECEIVED;\n LOADING: number = LOADING;\n DONE: number = DONE;\n\n // EventTarget automatically initializes these to `null`.\n onload: ?Function;\n onloadstart: ?Function;\n onprogress: ?Function;\n ontimeout: ?Function;\n onerror: ?Function;\n onabort: ?Function;\n onloadend: ?Function;\n onreadystatechange: ?Function;\n\n readyState: number = UNSENT;\n responseHeaders: ?Object;\n status: number = 0;\n timeout: number = 0;\n responseURL: ?string;\n withCredentials: boolean = true;\n\n upload: XMLHttpRequestEventTarget = new XMLHttpRequestEventTarget();\n\n _requestId: ?number;\n _subscriptions: Array<EventSubscription>;\n\n _aborted: boolean = false;\n _cachedResponse: Response;\n _hasError: boolean = false;\n _headers: Object;\n _lowerCaseResponseHeaders: Object;\n _method: ?string = null;\n _perfKey: ?string = null;\n _responseType: ResponseType;\n _response: string = '';\n _sent: boolean;\n _url: ?string = null;\n _timedOut: boolean = false;\n _trackingName: string = 'unknown';\n _incrementalEvents: boolean = false;\n _performanceLogger: IPerformanceLogger = GlobalPerformanceLogger;\n\n static setInterceptor(interceptor: ?XHRInterceptor) {\n XMLHttpRequest._interceptor = interceptor;\n }\n\n constructor() {\n super();\n this._reset();\n }\n\n _reset(): void {\n this.readyState = this.UNSENT;\n this.responseHeaders = undefined;\n this.status = 0;\n delete this.responseURL;\n\n this._requestId = null;\n\n this._cachedResponse = undefined;\n this._hasError = false;\n this._headers = {};\n this._response = '';\n this._responseType = '';\n this._sent = false;\n this._lowerCaseResponseHeaders = {};\n\n this._clearSubscriptions();\n this._timedOut = false;\n }\n\n get responseType(): ResponseType {\n return this._responseType;\n }\n\n set responseType(responseType: ResponseType): void {\n if (this._sent) {\n throw new Error(\n \"Failed to set the 'responseType' property on 'XMLHttpRequest': The \" +\n 'response type cannot be set after the request has been sent.',\n );\n }\n if (!SUPPORTED_RESPONSE_TYPES.hasOwnProperty(responseType)) {\n console.warn(\n `The provided value '${responseType}' is not a valid 'responseType'.`,\n );\n return;\n }\n\n // redboxes early, e.g. for 'arraybuffer' on ios 7\n invariant(\n SUPPORTED_RESPONSE_TYPES[responseType] || responseType === 'document',\n `The provided value '${responseType}' is unsupported in this environment.`,\n );\n\n if (responseType === 'blob') {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n }\n this._responseType = responseType;\n }\n\n get responseText(): string {\n if (this._responseType !== '' && this._responseType !== 'text') {\n throw new Error(\n \"The 'responseText' property is only available if 'responseType' \" +\n `is set to '' or 'text', but it is '${this._responseType}'.`,\n );\n }\n if (this.readyState < LOADING) {\n return '';\n }\n return this._response;\n }\n\n get response(): Response {\n const {responseType} = this;\n if (responseType === '' || responseType === 'text') {\n return this.readyState < LOADING || this._hasError ? '' : this._response;\n }\n\n if (this.readyState !== DONE) {\n return null;\n }\n\n if (this._cachedResponse !== undefined) {\n return this._cachedResponse;\n }\n\n switch (responseType) {\n case 'document':\n this._cachedResponse = null;\n break;\n\n case 'arraybuffer':\n this._cachedResponse = base64.toByteArray(this._response).buffer;\n break;\n\n case 'blob':\n if (typeof this._response === 'object' && this._response) {\n this._cachedResponse = BlobManager.createFromOptions(this._response);\n } else if (this._response === '') {\n this._cachedResponse = BlobManager.createFromParts([]);\n } else {\n throw new Error(`Invalid response for blob: ${this._response}`);\n }\n break;\n\n case 'json':\n try {\n this._cachedResponse = JSON.parse(this._response);\n } catch (_) {\n this._cachedResponse = null;\n }\n break;\n\n default:\n this._cachedResponse = null;\n }\n\n return this._cachedResponse;\n }\n\n // exposed for testing\n __didCreateRequest(requestId: number): void {\n this._requestId = requestId;\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.requestSent(\n requestId,\n this._url || '',\n this._method || 'GET',\n this._headers,\n );\n }\n\n // exposed for testing\n __didUploadProgress(\n requestId: number,\n progress: number,\n total: number,\n ): void {\n if (requestId === this._requestId) {\n this.upload.dispatchEvent({\n type: 'progress',\n lengthComputable: true,\n loaded: progress,\n total,\n });\n }\n }\n\n __didReceiveResponse(\n requestId: number,\n status: number,\n responseHeaders: ?Object,\n responseURL: ?string,\n ): void {\n if (requestId === this._requestId) {\n this._perfKey != null &&\n this._performanceLogger.stopTimespan(this._perfKey);\n this.status = status;\n this.setResponseHeaders(responseHeaders);\n this.setReadyState(this.HEADERS_RECEIVED);\n if (responseURL || responseURL === '') {\n this.responseURL = responseURL;\n } else {\n delete this.responseURL;\n }\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.responseReceived(\n requestId,\n responseURL || this._url || '',\n status,\n responseHeaders || {},\n );\n }\n }\n\n __didReceiveData(requestId: number, response: string): void {\n if (requestId !== this._requestId) {\n return;\n }\n this._response = response;\n this._cachedResponse = undefined; // force lazy recomputation\n this.setReadyState(this.LOADING);\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.dataReceived(requestId, response);\n }\n\n __didReceiveIncrementalData(\n requestId: number,\n responseText: string,\n progress: number,\n total: number,\n ) {\n if (requestId !== this._requestId) {\n return;\n }\n if (!this._response) {\n this._response = responseText;\n } else {\n this._response += responseText;\n }\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.dataReceived(requestId, responseText);\n\n this.setReadyState(this.LOADING);\n this.__didReceiveDataProgress(requestId, progress, total);\n }\n\n __didReceiveDataProgress(\n requestId: number,\n loaded: number,\n total: number,\n ): void {\n if (requestId !== this._requestId) {\n return;\n }\n this.dispatchEvent({\n type: 'progress',\n lengthComputable: total >= 0,\n loaded,\n total,\n });\n }\n\n // exposed for testing\n __didCompleteResponse(\n requestId: number,\n error: string,\n timeOutError: boolean,\n ): void {\n if (requestId === this._requestId) {\n if (error) {\n if (this._responseType === '' || this._responseType === 'text') {\n this._response = error;\n }\n this._hasError = true;\n if (timeOutError) {\n this._timedOut = true;\n }\n }\n this._clearSubscriptions();\n this._requestId = null;\n this.setReadyState(this.DONE);\n\n if (error) {\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.loadingFailed(requestId, error);\n } else {\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.loadingFinished(\n requestId,\n this._response.length,\n );\n }\n }\n }\n\n _clearSubscriptions(): void {\n (this._subscriptions || []).forEach(sub => {\n if (sub) {\n sub.remove();\n }\n });\n this._subscriptions = [];\n }\n\n getAllResponseHeaders(): ?string {\n if (!this.responseHeaders) {\n // according to the spec, return null if no response has been received\n return null;\n }\n\n // Assign to non-nullable local variable.\n const responseHeaders = this.responseHeaders;\n\n const unsortedHeaders: Map<\n string,\n {lowerHeaderName: string, upperHeaderName: string, headerValue: string},\n > = new Map();\n for (const rawHeaderName of Object.keys(responseHeaders)) {\n const headerValue = responseHeaders[rawHeaderName];\n const lowerHeaderName = rawHeaderName.toLowerCase();\n const header = unsortedHeaders.get(lowerHeaderName);\n if (header) {\n header.headerValue += ', ' + headerValue;\n unsortedHeaders.set(lowerHeaderName, header);\n } else {\n unsortedHeaders.set(lowerHeaderName, {\n lowerHeaderName,\n upperHeaderName: rawHeaderName.toUpperCase(),\n headerValue,\n });\n }\n }\n\n // Sort in ascending order, with a being less than b if a's name is legacy-uppercased-byte less than b's name.\n const sortedHeaders = [...unsortedHeaders.values()].sort((a, b) => {\n if (a.upperHeaderName < b.upperHeaderName) {\n return -1;\n }\n if (a.upperHeaderName > b.upperHeaderName) {\n return 1;\n }\n return 0;\n });\n\n // Combine into single text response.\n return (\n sortedHeaders\n .map(header => {\n return header.lowerHeaderName + ': ' + header.headerValue;\n })\n .join('\\r\\n') + '\\r\\n'\n );\n }\n\n getResponseHeader(header: string): ?string {\n const value = this._lowerCaseResponseHeaders[header.toLowerCase()];\n return value !== undefined ? value : null;\n }\n\n setRequestHeader(header: string, value: any): void {\n if (this.readyState !== this.OPENED) {\n throw new Error('Request has not been opened');\n }\n this._headers[header.toLowerCase()] = String(value);\n }\n\n /**\n * Custom extension for tracking origins of request.\n */\n setTrackingName(trackingName: string): XMLHttpRequest {\n this._trackingName = trackingName;\n return this;\n }\n\n /**\n * Custom extension for setting a custom performance logger\n */\n setPerformanceLogger(performanceLogger: IPerformanceLogger): XMLHttpRequest {\n this._performanceLogger = performanceLogger;\n return this;\n }\n\n open(method: string, url: string, async: ?boolean): void {\n /* Other optional arguments are not supported yet */\n if (this.readyState !== this.UNSENT) {\n throw new Error('Cannot open, already sending');\n }\n if (async !== undefined && !async) {\n // async is default\n throw new Error('Synchronous http requests are not supported');\n }\n if (!url) {\n throw new Error('Cannot load an empty url');\n }\n this._method = method.toUpperCase();\n this._url = url;\n this._aborted = false;\n this.setReadyState(this.OPENED);\n }\n\n send(data: any): void {\n if (this.readyState !== this.OPENED) {\n throw new Error('Request has not been opened');\n }\n if (this._sent) {\n throw new Error('Request has already been sent');\n }\n this._sent = true;\n const incrementalEvents =\n this._incrementalEvents || !!this.onreadystatechange || !!this.onprogress;\n\n this._subscriptions.push(\n RCTNetworking.addListener('didSendNetworkData', args =>\n this.__didUploadProgress(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkResponse', args =>\n this.__didReceiveResponse(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkData', args =>\n this.__didReceiveData(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkIncrementalData', args =>\n this.__didReceiveIncrementalData(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkDataProgress', args =>\n this.__didReceiveDataProgress(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didCompleteNetworkResponse', args =>\n this.__didCompleteResponse(...args),\n ),\n );\n\n let nativeResponseType: NativeResponseType = 'text';\n if (this._responseType === 'arraybuffer') {\n nativeResponseType = 'base64';\n }\n if (this._responseType === 'blob') {\n nativeResponseType = 'blob';\n }\n\n const doSend = () => {\n const friendlyName =\n this._trackingName !== 'unknown' ? this._trackingName : this._url;\n this._perfKey = 'network_XMLHttpRequest_' + String(friendlyName);\n this._performanceLogger.startTimespan(this._perfKey);\n invariant(\n this._method,\n 'XMLHttpRequest method needs to be defined (%s).',\n friendlyName,\n );\n invariant(\n this._url,\n 'XMLHttpRequest URL needs to be defined (%s).',\n friendlyName,\n );\n RCTNetworking.sendRequest(\n this._method,\n this._trackingName,\n this._url,\n this._headers,\n data,\n /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found\n * when making Flow check .android.js files. */\n nativeResponseType,\n incrementalEvents,\n this.timeout,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__didCreateRequest.bind(this),\n this.withCredentials,\n );\n };\n if (DEBUG_NETWORK_SEND_DELAY) {\n setTimeout(doSend, DEBUG_NETWORK_SEND_DELAY);\n } else {\n doSend();\n }\n }\n\n abort(): void {\n this._aborted = true;\n if (this._requestId) {\n RCTNetworking.abortRequest(this._requestId);\n }\n // only call onreadystatechange if there is something to abort,\n // below logic is per spec\n if (\n !(\n this.readyState === this.UNSENT ||\n (this.readyState === this.OPENED && !this._sent) ||\n this.readyState === this.DONE\n )\n ) {\n this._reset();\n this.setReadyState(this.DONE);\n }\n // Reset again after, in case modified in handler\n this._reset();\n }\n\n setResponseHeaders(responseHeaders: ?Object): void {\n this.responseHeaders = responseHeaders || null;\n const headers = responseHeaders || {};\n this._lowerCaseResponseHeaders = Object.keys(headers).reduce<{\n [string]: any,\n }>((lcaseHeaders, headerName) => {\n lcaseHeaders[headerName.toLowerCase()] = headers[headerName];\n return lcaseHeaders;\n }, {});\n }\n\n setReadyState(newState: number): void {\n this.readyState = newState;\n this.dispatchEvent({type: 'readystatechange'});\n if (newState === this.DONE) {\n if (this._aborted) {\n this.dispatchEvent({type: 'abort'});\n } else if (this._hasError) {\n if (this._timedOut) {\n this.dispatchEvent({type: 'timeout'});\n } else {\n this.dispatchEvent({type: 'error'});\n }\n } else {\n this.dispatchEvent({type: 'load'});\n }\n this.dispatchEvent({type: 'loadend'});\n }\n }\n\n /* global EventListener */\n addEventListener(type: string, listener: EventListener): void {\n // If we dont' have a 'readystatechange' event handler, we don't\n // have to send repeated LOADING events with incremental updates\n // to responseText, which will avoid a bunch of native -> JS\n // bridge traffic.\n if (type === 'readystatechange' || type === 'progress') {\n this._incrementalEvents = true;\n }\n super.addEventListener(type, listener);\n }\n}\n\nmodule.exports = XMLHttpRequest;\n","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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 strict-local\n * @format\n */\n\nimport type {BlobCollector, BlobData, BlobOptions} from './BlobTypes';\n\nimport NativeBlobModule from './NativeBlobModule';\nimport invariant from 'invariant';\n\nconst Blob = require('./Blob');\nconst BlobRegistry = require('./BlobRegistry');\n\n/*eslint-disable no-bitwise */\n/*eslint-disable eqeqeq */\n\n/**\n * Based on the rfc4122-compliant solution posted at\n * http://stackoverflow.com/questions/105034\n */\nfunction uuidv4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n const r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n// **Temporary workaround**\n// TODO(#24654): Use turbomodules for the Blob module.\n// Blob collector is a jsi::HostObject that is used by native to know\n// when the a Blob instance is deallocated. This allows to free the\n// underlying native resources. This is a hack to workaround the fact\n// that the current bridge infra doesn't allow to track js objects\n// deallocation. Ideally the whole Blob object should be a jsi::HostObject.\nfunction createBlobCollector(blobId: string): BlobCollector | null {\n if (global.__blobCollectorProvider == null) {\n return null;\n } else {\n return global.__blobCollectorProvider(blobId);\n }\n}\n\n/**\n * Module to manage blobs. Wrapper around the native blob module.\n */\nclass BlobManager {\n /**\n * If the native blob module is available.\n */\n static isAvailable: boolean = !!NativeBlobModule;\n\n /**\n * Create blob from existing array of blobs.\n */\n static createFromParts(\n parts: Array<Blob | string>,\n options?: BlobOptions,\n ): Blob {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n const blobId = uuidv4();\n const items = parts.map(part => {\n if (\n part instanceof ArrayBuffer ||\n (global.ArrayBufferView && part instanceof global.ArrayBufferView)\n ) {\n throw new Error(\n \"Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported\",\n );\n }\n if (part instanceof Blob) {\n return {\n data: part.data,\n type: 'blob',\n };\n } else {\n return {\n data: String(part),\n type: 'string',\n };\n }\n });\n const size = items.reduce((acc, curr) => {\n if (curr.type === 'string') {\n return acc + global.unescape(encodeURI(curr.data)).length;\n } else {\n return acc + curr.data.size;\n }\n }, 0);\n\n NativeBlobModule.createFromParts(items, blobId);\n\n return BlobManager.createFromOptions({\n blobId,\n offset: 0,\n size,\n type: options ? options.type : '',\n lastModified: options ? options.lastModified : Date.now(),\n });\n }\n\n /**\n * Create blob instance from blob data from native.\n * Used internally by modules like XHR, WebSocket, etc.\n */\n static createFromOptions(options: BlobData): Blob {\n BlobRegistry.register(options.blobId);\n // $FlowFixMe[prop-missing]\n return Object.assign(Object.create(Blob.prototype), {\n data:\n // Reuse the collector instance when creating from an existing blob.\n // This will make sure that the underlying resource is only deallocated\n // when all blobs that refer to it are deallocated.\n options.__collector == null\n ? {\n ...options,\n __collector: createBlobCollector(options.blobId),\n }\n : options,\n });\n }\n\n /**\n * Deallocate resources for a blob.\n */\n static release(blobId: string): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n BlobRegistry.unregister(blobId);\n if (BlobRegistry.has(blobId)) {\n return;\n }\n NativeBlobModule.release(blobId);\n }\n\n /**\n * Inject the blob content handler in the networking module to support blob\n * requests and responses.\n */\n static addNetworkingHandler(): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.addNetworkingHandler();\n }\n\n /**\n * Indicate the websocket should return a blob for incoming binary\n * messages.\n */\n static addWebSocketHandler(socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.addWebSocketHandler(socketId);\n }\n\n /**\n * Indicate the websocket should no longer return a blob for incoming\n * binary messages.\n */\n static removeWebSocketHandler(socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.removeWebSocketHandler(socketId);\n }\n\n /**\n * Send a blob message to a websocket.\n */\n static sendOverSocket(blob: Blob, socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.sendOverSocket(blob.data, socketId);\n }\n}\n\nmodule.exports = BlobManager;\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|};\n +addNetworkingHandler: () => void;\n +addWebSocketHandler: (id: number) => void;\n +removeWebSocketHandler: (id: number) => void;\n +sendOverSocket: (blob: Object, socketID: number) => void;\n +createFromParts: (parts: Array<Object>, withId: string) => void;\n +release: (blobId: string) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.get<Spec>('BlobModule');\n\nlet constants = null;\nlet NativeBlobModule = null;\n\nif (NativeModule != null) {\n NativeBlobModule = {\n getConstants(): {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n addNetworkingHandler(): void {\n NativeModule.addNetworkingHandler();\n },\n addWebSocketHandler(id: number): void {\n NativeModule.addWebSocketHandler(id);\n },\n removeWebSocketHandler(id: number): void {\n NativeModule.removeWebSocketHandler(id);\n },\n sendOverSocket(blob: Object, socketID: number): void {\n NativeModule.sendOverSocket(blob, socketID);\n },\n createFromParts(parts: Array<Object>, withId: string): void {\n NativeModule.createFromParts(parts, withId);\n },\n release(blobId: string): void {\n NativeModule.release(blobId);\n },\n };\n}\n\nexport default (NativeBlobModule: ?Spec);\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 strict-local\n * @format\n */\n\n'use strict';\n\nimport type {BlobData, BlobOptions} from './BlobTypes';\n\n/**\n * Opaque JS representation of some binary data in native.\n *\n * The API is modeled after the W3C Blob API, with one caveat\n * regarding explicit deallocation. Refer to the `close()`\n * method for further details.\n *\n * Example usage in a React component:\n *\n * class WebSocketImage extends React.Component {\n * state = {blob: null};\n * componentDidMount() {\n * let ws = this.ws = new WebSocket(...);\n * ws.binaryType = 'blob';\n * ws.onmessage = (event) => {\n * if (this.state.blob) {\n * this.state.blob.close();\n * }\n * this.setState({blob: event.data});\n * };\n * }\n * componentUnmount() {\n * if (this.state.blob) {\n * this.state.blob.close();\n * }\n * this.ws.close();\n * }\n * render() {\n * if (!this.state.blob) {\n * return <View />;\n * }\n * return <Image source={{uri: URL.createObjectURL(this.state.blob)}} />;\n * }\n * }\n *\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob\n */\nclass Blob {\n _data: ?BlobData;\n\n /**\n * Constructor for JS consumers.\n * Currently we only support creating Blobs from other Blobs.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob\n */\n constructor(parts: Array<Blob | string> = [], options?: BlobOptions) {\n const BlobManager = require('./BlobManager');\n this.data = BlobManager.createFromParts(parts, options).data;\n }\n\n /*\n * This method is used to create a new Blob object containing\n * the data in the specified range of bytes of the source Blob.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/slice\n */\n // $FlowFixMe[unsafe-getters-setters]\n set data(data: ?BlobData) {\n this._data = data;\n }\n\n // $FlowFixMe[unsafe-getters-setters]\n get data(): BlobData {\n if (!this._data) {\n throw new Error('Blob has been closed and is no longer available');\n }\n\n return this._data;\n }\n\n slice(start?: number, end?: number): Blob {\n const BlobManager = require('./BlobManager');\n let {offset, size} = this.data;\n\n if (typeof start === 'number') {\n if (start > size) {\n // $FlowFixMe[reassign-const]\n start = size;\n }\n offset += start;\n size -= start;\n\n if (typeof end === 'number') {\n if (end < 0) {\n // $FlowFixMe[reassign-const]\n end = this.size + end;\n }\n size = end - start;\n }\n }\n return BlobManager.createFromOptions({\n blobId: this.data.blobId,\n offset,\n size,\n });\n }\n\n /**\n * This method is in the standard, but not actually implemented by\n * any browsers at this point. It's important for how Blobs work in\n * React Native, however, since we cannot de-allocate resources automatically,\n * so consumers need to explicitly de-allocate them.\n *\n * Note that the semantics around Blobs created via `blob.slice()`\n * and `new Blob([blob])` are different. `blob.slice()` creates a\n * new *view* onto the same binary data, so calling `close()` on any\n * of those views is enough to deallocate the data, whereas\n * `new Blob([blob, ...])` actually copies the data in memory.\n */\n close() {\n const BlobManager = require('./BlobManager');\n BlobManager.release(this.data.blobId);\n this.data = null;\n }\n\n /**\n * Size of the data contained in the Blob object, in bytes.\n */\n // $FlowFixMe[unsafe-getters-setters]\n get size(): number {\n return this.data.size;\n }\n\n /*\n * String indicating the MIME type of the data contained in the Blob.\n * If the type is unknown, this string is empty.\n */\n // $FlowFixMe[unsafe-getters-setters]\n get type(): string {\n return this.data.type || '';\n }\n}\n\nmodule.exports = Blob;\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 strict\n * @format\n */\n\nconst registry: {[key: string]: number, ...} = {};\n\nconst register = (id: string) => {\n if (registry[id]) {\n registry[id]++;\n } else {\n registry[id] = 1;\n }\n};\n\nconst unregister = (id: string) => {\n if (registry[id]) {\n registry[id]--;\n if (registry[id] <= 0) {\n delete registry[id];\n }\n }\n};\n\nconst has = (id: string): number | boolean => {\n return registry[id] && registry[id] > 0;\n};\n\nmodule.exports = {\n register,\n unregister,\n has,\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 strict\n * @format\n */\n\nimport type {IPerformanceLogger} from './createPerformanceLogger';\n\nimport createPerformanceLogger from './createPerformanceLogger';\n\n/**\n * This is a global shared instance of IPerformanceLogger that is created with\n * createPerformanceLogger().\n * This logger should be used only for global performance metrics like the ones\n * that are logged during loading bundle. If you want to log something from your\n * React component you should use PerformanceLoggerContext instead.\n */\nconst GlobalPerformanceLogger: IPerformanceLogger = createPerformanceLogger();\n\nmodule.exports = GlobalPerformanceLogger;\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 strict\n * @format\n */\n\nconst Systrace = require('../Performance/Systrace');\nconst infoLog = require('./infoLog');\n\nexport type Timespan = {\n startTime: number,\n endTime?: number,\n totalTime?: number,\n startExtras?: Extras,\n endExtras?: Extras,\n};\n\n// Extra values should be serializable primitives\nexport type ExtraValue = number | string | boolean;\n\nexport type Extras = {[key: string]: ExtraValue};\n\nexport interface IPerformanceLogger {\n addTimespan(\n key: string,\n startTime: number,\n endTime: number,\n startExtras?: Extras,\n endExtras?: Extras,\n ): void;\n append(logger: IPerformanceLogger): void;\n clear(): void;\n clearCompleted(): void;\n close(): void;\n currentTimestamp(): number;\n getExtras(): $ReadOnly<{[key: string]: ?ExtraValue, ...}>;\n getPoints(): $ReadOnly<{[key: string]: ?number, ...}>;\n getPointExtras(): $ReadOnly<{[key: string]: ?Extras, ...}>;\n getTimespans(): $ReadOnly<{[key: string]: ?Timespan, ...}>;\n hasTimespan(key: string): boolean;\n isClosed(): boolean;\n logEverything(): void;\n markPoint(key: string, timestamp?: number, extras?: Extras): void;\n removeExtra(key: string): ?ExtraValue;\n setExtra(key: string, value: ExtraValue): void;\n startTimespan(key: string, timestamp?: number, extras?: Extras): void;\n stopTimespan(key: string, timestamp?: number, extras?: Extras): void;\n}\n\nconst _cookies: {[key: string]: number, ...} = {};\n\nconst PRINT_TO_CONSOLE: false = false; // Type as false to prevent accidentally committing `true`;\n\nexport const getCurrentTimestamp: () => number =\n global.nativeQPLTimestamp ?? global.performance.now.bind(global.performance);\n\nclass PerformanceLogger implements IPerformanceLogger {\n _timespans: {[key: string]: ?Timespan} = {};\n _extras: {[key: string]: ?ExtraValue} = {};\n _points: {[key: string]: ?number} = {};\n _pointExtras: {[key: string]: ?Extras, ...} = {};\n _closed: boolean = false;\n\n addTimespan(\n key: string,\n startTime: number,\n endTime: number,\n startExtras?: Extras,\n endExtras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: addTimespan - has closed ignoring: ', key);\n }\n return;\n }\n if (this._timespans[key]) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to add a timespan that already exists ',\n key,\n );\n }\n return;\n }\n\n this._timespans[key] = {\n startTime,\n endTime,\n totalTime: endTime - (startTime || 0),\n startExtras,\n endExtras,\n };\n }\n\n append(performanceLogger: IPerformanceLogger) {\n this._timespans = {\n ...performanceLogger.getTimespans(),\n ...this._timespans,\n };\n this._extras = {...performanceLogger.getExtras(), ...this._extras};\n this._points = {...performanceLogger.getPoints(), ...this._points};\n this._pointExtras = {\n ...performanceLogger.getPointExtras(),\n ...this._pointExtras,\n };\n }\n\n clear() {\n this._timespans = {};\n this._extras = {};\n this._points = {};\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'clear');\n }\n }\n\n clearCompleted() {\n for (const key in this._timespans) {\n if (this._timespans[key]?.totalTime != null) {\n delete this._timespans[key];\n }\n }\n this._extras = {};\n this._points = {};\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'clearCompleted');\n }\n }\n\n close() {\n this._closed = true;\n }\n\n currentTimestamp(): number {\n return getCurrentTimestamp();\n }\n\n getExtras(): {[key: string]: ?ExtraValue} {\n return this._extras;\n }\n\n getPoints(): {[key: string]: ?number} {\n return this._points;\n }\n\n getPointExtras(): {[key: string]: ?Extras} {\n return this._pointExtras;\n }\n\n getTimespans(): {[key: string]: ?Timespan} {\n return this._timespans;\n }\n\n hasTimespan(key: string): boolean {\n return !!this._timespans[key];\n }\n\n isClosed(): boolean {\n return this._closed;\n }\n\n logEverything() {\n if (PRINT_TO_CONSOLE) {\n // log timespans\n for (const key in this._timespans) {\n if (this._timespans[key]?.totalTime != null) {\n infoLog(key + ': ' + this._timespans[key].totalTime + 'ms');\n }\n }\n\n // log extras\n infoLog(this._extras);\n\n // log points\n for (const key in this._points) {\n if (this._points[key] != null) {\n infoLog(key + ': ' + this._points[key] + 'ms');\n }\n }\n }\n }\n\n markPoint(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: markPoint - has closed ignoring: ', key);\n }\n return;\n }\n if (this._points[key] != null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to mark a point that has been already logged ',\n key,\n );\n }\n return;\n }\n this._points[key] = timestamp;\n if (extras) {\n this._pointExtras[key] = extras;\n }\n }\n\n removeExtra(key: string): ?ExtraValue {\n const value = this._extras[key];\n delete this._extras[key];\n return value;\n }\n\n setExtra(key: string, value: ExtraValue) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: setExtra - has closed ignoring: ', key);\n }\n return;\n }\n\n if (this._extras.hasOwnProperty(key)) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to set an extra that already exists ',\n {key, currentValue: this._extras[key], attemptedValue: value},\n );\n }\n return;\n }\n this._extras[key] = value;\n }\n\n startTimespan(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: startTimespan - has closed ignoring: ',\n key,\n );\n }\n return;\n }\n\n if (this._timespans[key]) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to start a timespan that already exists ',\n key,\n );\n }\n return;\n }\n\n this._timespans[key] = {\n startTime: timestamp,\n startExtras: extras,\n };\n _cookies[key] = Systrace.beginAsyncEvent(key);\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'start: ' + key);\n }\n }\n\n stopTimespan(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: stopTimespan - has closed ignoring: ', key);\n }\n return;\n }\n\n const timespan = this._timespans[key];\n if (!timespan || timespan.startTime == null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to end a timespan that has not started ',\n key,\n );\n }\n return;\n }\n if (timespan.endTime != null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to end a timespan that has already ended ',\n key,\n );\n }\n return;\n }\n\n timespan.endExtras = extras;\n timespan.endTime = timestamp;\n timespan.totalTime = timespan.endTime - (timespan.startTime || 0);\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'end: ' + key);\n }\n\n if (_cookies[key] != null) {\n Systrace.endAsyncEvent(key, _cookies[key]);\n delete _cookies[key];\n }\n }\n}\n\n/**\n * This function creates performance loggers that can be used to collect and log\n * various performance data such as timespans, points and extras.\n * The loggers need to have minimal overhead since they're used in production.\n */\nexport default function createPerformanceLogger(): IPerformanceLogger {\n return new PerformanceLogger();\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 * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog(...args: Array<mixed>): void {\n return console.log(...args);\n}\n\nmodule.exports = infoLog;\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 * @format\n */\n\n'use strict';\n\nconst Blob = require('../Blob/Blob');\nconst binaryToBase64 = require('../Utilities/binaryToBase64');\nconst FormData = require('./FormData');\n\nexport type RequestBody =\n | string\n | Blob\n | FormData\n | {uri: string, ...}\n | ArrayBuffer\n | $ArrayBufferView;\n\nfunction convertRequestBody(body: RequestBody): Object {\n if (typeof body === 'string') {\n return {string: body};\n }\n if (body instanceof Blob) {\n return {blob: body.data};\n }\n if (body instanceof FormData) {\n return {formData: body.getParts()};\n }\n if (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {\n /* $FlowFixMe[incompatible-call] : no way to assert that 'body' is indeed\n * an ArrayBufferView */\n return {base64: binaryToBase64(body)};\n }\n return body;\n}\n\nmodule.exports = convertRequestBody;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nconst base64 = require('base64-js');\n\nfunction binaryToBase64(data: ArrayBuffer | $ArrayBufferView): string {\n if (data instanceof ArrayBuffer) {\n // $FlowFixMe[reassign-const]\n data = new Uint8Array(data);\n }\n if (data instanceof Uint8Array) {\n return base64.fromByteArray(data);\n }\n if (!ArrayBuffer.isView(data)) {\n throw new Error('data must be ArrayBuffer or typed array');\n }\n // Already checked that `data` is `DataView` in `ArrayBuffer.isView(data)`\n const {buffer, byteOffset, byteLength} = ((data: $FlowFixMe): DataView);\n return base64.fromByteArray(new Uint8Array(buffer, byteOffset, byteLength));\n}\n\nmodule.exports = binaryToBase64;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\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 * @format\n * @flow strict\n */\n\n'use strict';\n\ntype FormDataValue = string | {name?: string, type?: string, uri: string};\ntype FormDataNameValuePair = [string, FormDataValue];\n\ntype Headers = {[name: string]: string, ...};\ntype FormDataPart =\n | {\n string: string,\n headers: Headers,\n ...\n }\n | {\n uri: string,\n headers: Headers,\n name?: string,\n type?: string,\n ...\n };\n\n/**\n * Polyfill for XMLHttpRequest2 FormData API, allowing multipart POST requests\n * with mixed data (string, native files) to be submitted via XMLHttpRequest.\n *\n * Example:\n *\n * var photo = {\n * uri: uriFromCameraRoll,\n * type: 'image/jpeg',\n * name: 'photo.jpg',\n * };\n *\n * var body = new FormData();\n * body.append('authToken', 'secret');\n * body.append('photo', photo);\n * body.append('title', 'A beautiful photo!');\n *\n * xhr.open('POST', serverURL);\n * xhr.send(body);\n */\nclass FormData {\n _parts: Array<FormDataNameValuePair>;\n\n constructor() {\n this._parts = [];\n }\n\n append(key: string, value: FormDataValue) {\n // The XMLHttpRequest spec doesn't specify if duplicate keys are allowed.\n // MDN says that any new values should be appended to existing values.\n // In any case, major browsers allow duplicate keys, so that's what we'll do\n // too. They'll simply get appended as additional form data parts in the\n // request body, leaving the server to deal with them.\n this._parts.push([key, value]);\n }\n\n getAll(key: string): Array<FormDataValue> {\n return this._parts\n .filter(([name]) => name === key)\n .map(([, value]) => value);\n }\n\n getParts(): Array<FormDataPart> {\n return this._parts.map(([name, value]) => {\n const contentDisposition = 'form-data; name=\"' + name + '\"';\n\n const headers: Headers = {'content-disposition': contentDisposition};\n\n // The body part is a \"blob\", which in React Native just means\n // an object with a `uri` attribute. Optionally, it can also\n // have a `name` and `type` attribute to specify filename and\n // content type (cf. web Blob interface.)\n if (typeof value === 'object' && !Array.isArray(value) && value) {\n if (typeof value.name === 'string') {\n headers['content-disposition'] += '; filename=\"' + value.name + '\"';\n }\n if (typeof value.type === 'string') {\n headers['content-type'] = value.type;\n }\n return {...value, headers, fieldName: name};\n }\n // Convert non-object values to strings as per FormData.append() spec\n return {string: String(value), headers, fieldName: name};\n });\n }\n}\n\nmodule.exports = FormData;\n","/**\n * @author Toru Nagashima <https://github.com/mysticatea>\n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap<Event, PrivateData>}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap<Object, Function>}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap<object, Map<string, ListenerNode>>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map<string, ListenerNode>} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexports.defineEventAttribute = defineEventAttribute;\nexports.EventTarget = EventTarget;\nexports.default = EventTarget;\n\nmodule.exports = EventTarget\nmodule.exports.EventTarget = module.exports[\"default\"] = EventTarget\nmodule.exports.defineEventAttribute = defineEventAttribute\n//# sourceMappingURL=event-target-shim.js.map\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 strict\n * @format\n */\n\n/* globals Headers, Request, Response */\n\n'use strict';\n\n// side-effectful require() to put fetch,\n// Headers, Request, Response in global scope\nrequire('whatwg-fetch');\n\nmodule.exports = {fetch, Headers, Request, Response};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.WHATWGFetch = {})));\n}(this, (function (exports) { 'use strict';\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\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 * @format\n * @flow\n */\n\nimport type {BlobData} from '../Blob/BlobTypes';\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport Blob from '../Blob/Blob';\nimport BlobManager from '../Blob/BlobManager';\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport binaryToBase64 from '../Utilities/binaryToBase64';\nimport Platform from '../Utilities/Platform';\nimport NativeWebSocketModule from './NativeWebSocketModule';\nimport WebSocketEvent from './WebSocketEvent';\nimport base64 from 'base64-js';\nimport EventTarget from 'event-target-shim';\nimport invariant from 'invariant';\n\ntype ArrayBufferView =\n | Int8Array\n | Uint8Array\n | Uint8ClampedArray\n | Int16Array\n | Uint16Array\n | Int32Array\n | Uint32Array\n | Float32Array\n | Float64Array\n | DataView;\n\ntype BinaryType = 'blob' | 'arraybuffer';\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nconst CLOSE_NORMAL = 1000;\n\n// Abnormal closure where no code is provided in a control frame\n// https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5\nconst CLOSE_ABNORMAL = 1006;\n\nconst WEBSOCKET_EVENTS = ['close', 'error', 'message', 'open'];\n\nlet nextWebSocketId = 0;\n\ntype WebSocketEventDefinitions = {\n websocketOpen: [{id: number, protocol: string}],\n websocketClosed: [{id: number, code: number, reason: string}],\n websocketMessage: [\n | {type: 'binary', id: number, data: string}\n | {type: 'text', id: number, data: string}\n | {type: 'blob', id: number, data: BlobData},\n ],\n websocketFailed: [{id: number, message: string}],\n};\n\n/**\n * Browser-compatible WebSockets implementation.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * See https://github.com/websockets/ws\n */\nclass WebSocket extends (EventTarget(...WEBSOCKET_EVENTS): any) {\n static CONNECTING: number = CONNECTING;\n static OPEN: number = OPEN;\n static CLOSING: number = CLOSING;\n static CLOSED: number = CLOSED;\n\n CONNECTING: number = CONNECTING;\n OPEN: number = OPEN;\n CLOSING: number = CLOSING;\n CLOSED: number = CLOSED;\n\n _socketId: number;\n _eventEmitter: NativeEventEmitter<WebSocketEventDefinitions>;\n _subscriptions: Array<EventSubscription>;\n _binaryType: ?BinaryType;\n\n onclose: ?Function;\n onerror: ?Function;\n onmessage: ?Function;\n onopen: ?Function;\n\n bufferedAmount: number;\n extension: ?string;\n protocol: ?string;\n readyState: number = CONNECTING;\n url: ?string;\n\n constructor(\n url: string,\n protocols: ?string | ?Array<string>,\n options: ?{headers?: {origin?: string, ...}, ...},\n ) {\n super();\n this.url = url;\n if (typeof protocols === 'string') {\n protocols = [protocols];\n }\n\n const {headers = {}, ...unrecognized} = options || {};\n\n // Preserve deprecated backwards compatibility for the 'origin' option\n // $FlowFixMe[prop-missing]\n if (unrecognized && typeof unrecognized.origin === 'string') {\n console.warn(\n 'Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.',\n );\n /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_\n * oss) This comment suppresses an error found when Flow v0.54 was\n * deployed. To see the error delete this comment and run Flow. */\n headers.origin = unrecognized.origin;\n /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_\n * oss) This comment suppresses an error found when Flow v0.54 was\n * deployed. To see the error delete this comment and run Flow. */\n delete unrecognized.origin;\n }\n\n // Warn about and discard anything else\n if (Object.keys(unrecognized).length > 0) {\n console.warn(\n 'Unrecognized WebSocket connection option(s) `' +\n Object.keys(unrecognized).join('`, `') +\n '`. ' +\n 'Did you mean to put these under `headers`?',\n );\n }\n\n if (!Array.isArray(protocols)) {\n protocols = null;\n }\n\n this._eventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeWebSocketModule,\n );\n this._socketId = nextWebSocketId++;\n this._registerEvents();\n NativeWebSocketModule.connect(url, protocols, {headers}, this._socketId);\n }\n\n get binaryType(): ?BinaryType {\n return this._binaryType;\n }\n\n set binaryType(binaryType: BinaryType): void {\n if (binaryType !== 'blob' && binaryType !== 'arraybuffer') {\n throw new Error(\"binaryType must be either 'blob' or 'arraybuffer'\");\n }\n if (this._binaryType === 'blob' || binaryType === 'blob') {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n if (binaryType === 'blob') {\n BlobManager.addWebSocketHandler(this._socketId);\n } else {\n BlobManager.removeWebSocketHandler(this._socketId);\n }\n }\n this._binaryType = binaryType;\n }\n\n close(code?: number, reason?: string): void {\n if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n return;\n }\n\n this.readyState = this.CLOSING;\n this._close(code, reason);\n }\n\n send(data: string | ArrayBuffer | ArrayBufferView | Blob): void {\n if (this.readyState === this.CONNECTING) {\n throw new Error('INVALID_STATE_ERR');\n }\n\n if (data instanceof Blob) {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n BlobManager.sendOverSocket(data, this._socketId);\n return;\n }\n\n if (typeof data === 'string') {\n NativeWebSocketModule.send(data, this._socketId);\n return;\n }\n\n if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {\n NativeWebSocketModule.sendBinary(binaryToBase64(data), this._socketId);\n return;\n }\n\n throw new Error('Unsupported data type');\n }\n\n ping(): void {\n if (this.readyState === this.CONNECTING) {\n throw new Error('INVALID_STATE_ERR');\n }\n\n NativeWebSocketModule.ping(this._socketId);\n }\n\n _close(code?: number, reason?: string): void {\n // See https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent\n const statusCode = typeof code === 'number' ? code : CLOSE_NORMAL;\n const closeReason = typeof reason === 'string' ? reason : '';\n NativeWebSocketModule.close(statusCode, closeReason, this._socketId);\n\n if (BlobManager.isAvailable && this._binaryType === 'blob') {\n BlobManager.removeWebSocketHandler(this._socketId);\n }\n }\n\n _unregisterEvents(): void {\n this._subscriptions.forEach(e => e.remove());\n this._subscriptions = [];\n }\n\n _registerEvents(): void {\n this._subscriptions = [\n this._eventEmitter.addListener('websocketMessage', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n let data: Blob | BlobData | ArrayBuffer | string = ev.data;\n switch (ev.type) {\n case 'binary':\n data = base64.toByteArray(ev.data).buffer;\n break;\n case 'blob':\n data = BlobManager.createFromOptions(ev.data);\n break;\n }\n this.dispatchEvent(new WebSocketEvent('message', {data}));\n }),\n this._eventEmitter.addListener('websocketOpen', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.OPEN;\n this.protocol = ev.protocol;\n this.dispatchEvent(new WebSocketEvent('open'));\n }),\n this._eventEmitter.addListener('websocketClosed', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.CLOSED;\n this.dispatchEvent(\n new WebSocketEvent('close', {\n code: ev.code,\n reason: ev.reason,\n // TODO: missing `wasClean` (exposed on iOS as `clean` but missing on Android)\n }),\n );\n this._unregisterEvents();\n this.close();\n }),\n this._eventEmitter.addListener('websocketFailed', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.CLOSED;\n this.dispatchEvent(\n new WebSocketEvent('error', {\n message: ev.message,\n }),\n );\n this.dispatchEvent(\n new WebSocketEvent('close', {\n code: CLOSE_ABNORMAL,\n reason: ev.message,\n // TODO: Expose `wasClean`\n }),\n );\n this._unregisterEvents();\n this.close();\n }),\n ];\n }\n}\n\nmodule.exports = WebSocket;\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 strict-local\n * @format\n */\n\n'use strict';\n\nimport type {\n EventSubscription,\n IEventEmitter,\n} from '../vendor/emitter/EventEmitter';\n\nimport Platform from '../Utilities/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'invariant';\n\ninterface NativeModule {\n addListener(eventType: string): void;\n removeListeners(count: number): void;\n}\n\nexport type {EventSubscription};\n\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nexport default class NativeEventEmitter<TEventToArgsMap: {...}>\n implements IEventEmitter<TEventToArgsMap>\n{\n _nativeModule: ?NativeModule;\n\n constructor(nativeModule: ?NativeModule) {\n if (Platform.OS === 'ios') {\n invariant(\n nativeModule != null,\n '`new NativeEventEmitter()` requires a non-null argument.',\n );\n }\n\n const hasAddListener =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n !!nativeModule && typeof nativeModule.addListener === 'function';\n const hasRemoveListeners =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n !!nativeModule && typeof nativeModule.removeListeners === 'function';\n\n if (nativeModule && hasAddListener && hasRemoveListeners) {\n this._nativeModule = nativeModule;\n } else if (nativeModule != null) {\n if (!hasAddListener) {\n console.warn(\n '`new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.',\n );\n }\n if (!hasRemoveListeners) {\n console.warn(\n '`new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.',\n );\n }\n }\n }\n\n addListener<TEvent: $Keys<TEventToArgsMap>>(\n eventType: TEvent,\n listener: (...args: $ElementType<TEventToArgsMap, TEvent>) => mixed,\n context?: mixed,\n ): EventSubscription {\n this._nativeModule?.addListener(eventType);\n let subscription: ?EventSubscription = RCTDeviceEventEmitter.addListener(\n eventType,\n listener,\n context,\n );\n\n return {\n remove: () => {\n if (subscription != null) {\n this._nativeModule?.removeListeners(1);\n // $FlowFixMe[incompatible-use]\n subscription.remove();\n subscription = null;\n }\n },\n };\n }\n\n emit<TEvent: $Keys<TEventToArgsMap>>(\n eventType: TEvent,\n ...args: $ElementType<TEventToArgsMap, TEvent>\n ): void {\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit(eventType, ...args);\n }\n\n removeAllListeners<TEvent: $Keys<TEventToArgsMap>>(\n eventType?: ?TEvent,\n ): void {\n invariant(\n eventType != null,\n '`NativeEventEmitter.removeAllListener()` requires a non-null argument.',\n );\n this._nativeModule?.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n }\n\n listenerCount<TEvent: $Keys<TEventToArgsMap>>(eventType: TEvent): number {\n return RCTDeviceEventEmitter.listenerCount(eventType);\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +connect: (\n url: string,\n protocols: ?Array<string>,\n options: {|headers?: Object|},\n socketID: number,\n ) => void;\n +send: (message: string, forSocketID: number) => void;\n +sendBinary: (base64String: string, forSocketID: number) => void;\n +ping: (socketID: number) => void;\n +close: (code: number, reason: string, socketID: number) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>(\n 'WebSocketModule',\n): Spec);\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 * @format\n */\n\n'use strict';\n\n/**\n * Event object passed to the `onopen`, `onclose`, `onmessage`, `onerror`\n * callbacks of `WebSocket`.\n *\n * The `type` property is \"open\", \"close\", \"message\", \"error\" respectively.\n *\n * In case of \"message\", the `data` property contains the incoming data.\n */\nclass WebSocketEvent {\n constructor(type, eventInitDict) {\n this.type = type.toString();\n Object.assign(this, eventInitDict);\n }\n}\n\nmodule.exports = WebSocketEvent;\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 * @format\n */\n\n'use strict';\n\nimport type {BlobOptions} from './BlobTypes';\n\nconst Blob = require('./Blob');\nconst invariant = require('invariant');\n\n/**\n * The File interface provides information about files.\n */\nclass File extends Blob {\n /**\n * Constructor for JS consumers.\n */\n constructor(\n parts: Array<Blob | string>,\n name: string,\n options?: BlobOptions,\n ) {\n invariant(\n parts != null && name != null,\n 'Failed to construct `File`: Must pass both `parts` and `name` arguments.',\n );\n\n super(parts, options);\n this.data.name = name;\n }\n\n /**\n * Name of the file.\n */\n get name(): string {\n invariant(this.data.name != null, 'Files must have a name set.');\n return this.data.name;\n }\n\n /*\n * Last modified time of the file.\n */\n get lastModified(): number {\n return this.data.lastModified || 0;\n }\n}\n\nmodule.exports = File;\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 * @format\n */\n\nimport type Blob from './Blob';\n\nimport NativeFileReaderModule from './NativeFileReaderModule';\n\nconst EventTarget = require('event-target-shim');\n\ntype ReadyState =\n | 0 // EMPTY\n | 1 // LOADING\n | 2; // DONE\n\ntype ReaderResult = string | ArrayBuffer;\n\nconst READER_EVENTS = [\n 'abort',\n 'error',\n 'load',\n 'loadstart',\n 'loadend',\n 'progress',\n];\n\nconst EMPTY = 0;\nconst LOADING = 1;\nconst DONE = 2;\n\nclass FileReader extends (EventTarget(...READER_EVENTS): any) {\n static EMPTY: number = EMPTY;\n static LOADING: number = LOADING;\n static DONE: number = DONE;\n\n EMPTY: number = EMPTY;\n LOADING: number = LOADING;\n DONE: number = DONE;\n\n _readyState: ReadyState;\n _error: ?Error;\n _result: ?ReaderResult;\n _aborted: boolean = false;\n\n constructor() {\n super();\n this._reset();\n }\n\n _reset(): void {\n this._readyState = EMPTY;\n this._error = null;\n this._result = null;\n }\n\n _setReadyState(newState: ReadyState) {\n this._readyState = newState;\n this.dispatchEvent({type: 'readystatechange'});\n if (newState === DONE) {\n if (this._aborted) {\n this.dispatchEvent({type: 'abort'});\n } else if (this._error) {\n this.dispatchEvent({type: 'error'});\n } else {\n this.dispatchEvent({type: 'load'});\n }\n this.dispatchEvent({type: 'loadend'});\n }\n }\n\n readAsArrayBuffer(): any {\n throw new Error('FileReader.readAsArrayBuffer is not implemented');\n }\n\n readAsDataURL(blob: ?Blob): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsDataURL(blob.data).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n this._result = text;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n readAsText(blob: ?Blob, encoding: string = 'UTF-8'): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsText(blob.data, encoding).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n this._result = text;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n abort() {\n this._aborted = true;\n // only call onreadystatechange if there is something to abort, as per spec\n if (this._readyState !== EMPTY && this._readyState !== DONE) {\n this._reset();\n this._setReadyState(DONE);\n }\n // Reset again after, in case modified in handler\n this._reset();\n }\n\n get readyState(): ReadyState {\n return this._readyState;\n }\n\n get error(): ?Error {\n return this._error;\n }\n\n get result(): ?ReaderResult {\n return this._result;\n }\n}\n\nmodule.exports = FileReader;\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +readAsDataURL: (data: Object) => Promise<string>;\n +readAsText: (data: Object, encoding: string) => Promise<string>;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>(\n 'FileReaderModule',\n): Spec);\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 * @format\n * @flow\n */\n\nimport type Blob from './Blob';\n\nimport NativeBlobModule from './NativeBlobModule';\n\nlet BLOB_URL_PREFIX = null;\n\nif (\n NativeBlobModule &&\n typeof NativeBlobModule.getConstants().BLOB_URI_SCHEME === 'string'\n) {\n const constants = NativeBlobModule.getConstants();\n // $FlowFixMe[incompatible-type] asserted above\n BLOB_URL_PREFIX = constants.BLOB_URI_SCHEME + ':';\n if (typeof constants.BLOB_URI_HOST === 'string') {\n BLOB_URL_PREFIX += `//${constants.BLOB_URI_HOST}/`;\n }\n}\n\n/**\n * To allow Blobs be accessed via `content://` URIs,\n * you need to register `BlobProvider` as a ContentProvider in your app's `AndroidManifest.xml`:\n *\n * ```xml\n * <manifest>\n * <application>\n * <provider\n * android:name=\"com.facebook.react.modules.blob.BlobProvider\"\n * android:authorities=\"@string/blob_provider_authority\"\n * android:exported=\"false\"\n * />\n * </application>\n * </manifest>\n * ```\n * And then define the `blob_provider_authority` string in `res/values/strings.xml`.\n * Use a dotted name that's entirely unique to your app:\n *\n * ```xml\n * <resources>\n * <string name=\"blob_provider_authority\">your.app.package.blobs</string>\n * </resources>\n * ```\n */\n\n// Small subset from whatwg-url: https://github.com/jsdom/whatwg-url/tree/master/src\n// The reference code bloat comes from Unicode issues with URLs, so those won't work here.\nexport class URLSearchParams {\n _searchParams: Array<Array<string>> = [];\n\n constructor(params: any) {\n if (typeof params === 'object') {\n Object.keys(params).forEach(key => this.append(key, params[key]));\n }\n }\n\n append(key: string, value: string): void {\n this._searchParams.push([key, value]);\n }\n\n delete(name: string): void {\n throw new Error('URLSearchParams.delete is not implemented');\n }\n\n get(name: string): void {\n throw new Error('URLSearchParams.get is not implemented');\n }\n\n getAll(name: string): void {\n throw new Error('URLSearchParams.getAll is not implemented');\n }\n\n has(name: string): void {\n throw new Error('URLSearchParams.has is not implemented');\n }\n\n set(name: string, value: string): void {\n throw new Error('URLSearchParams.set is not implemented');\n }\n\n sort(): void {\n throw new Error('URLSearchParams.sort is not implemented');\n }\n\n // $FlowFixMe[unsupported-syntax]\n // $FlowFixMe[missing-local-annot]\n [Symbol.iterator]() {\n return this._searchParams[Symbol.iterator]();\n }\n\n toString(): string {\n if (this._searchParams.length === 0) {\n return '';\n }\n const last = this._searchParams.length - 1;\n return this._searchParams.reduce((acc, curr, index) => {\n return (\n acc +\n encodeURIComponent(curr[0]) +\n '=' +\n encodeURIComponent(curr[1]) +\n (index === last ? '' : '&')\n );\n }, '');\n }\n}\n\nfunction validateBaseUrl(url: string) {\n // from this MIT-licensed gist: https://gist.github.com/dperini/729294\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)*(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/.test(\n url,\n );\n}\n\nexport class URL {\n _url: string;\n _searchParamsInstance = null;\n\n static createObjectURL(blob: Blob): string {\n if (BLOB_URL_PREFIX === null) {\n throw new Error('Cannot create URL for blob!');\n }\n return `${BLOB_URL_PREFIX}${blob.data.blobId}?offset=${blob.data.offset}&size=${blob.size}`;\n }\n\n static revokeObjectURL(url: string) {\n // Do nothing.\n }\n\n // $FlowFixMe[missing-local-annot]\n constructor(url: string, base: string | URL) {\n let baseUrl = null;\n if (!base || validateBaseUrl(url)) {\n this._url = url;\n if (!this._url.endsWith('/')) {\n this._url += '/';\n }\n } else {\n if (typeof base === 'string') {\n baseUrl = base;\n if (!validateBaseUrl(baseUrl)) {\n throw new TypeError(`Invalid base URL: ${baseUrl}`);\n }\n } else {\n baseUrl = base.toString();\n }\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!url.startsWith('/')) {\n url = `/${url}`;\n }\n if (baseUrl.endsWith(url)) {\n url = '';\n }\n this._url = `${baseUrl}${url}`;\n }\n }\n\n get hash(): string {\n throw new Error('URL.hash is not implemented');\n }\n\n get host(): string {\n throw new Error('URL.host is not implemented');\n }\n\n get hostname(): string {\n throw new Error('URL.hostname is not implemented');\n }\n\n get href(): string {\n return this.toString();\n }\n\n get origin(): string {\n throw new Error('URL.origin is not implemented');\n }\n\n get password(): string {\n throw new Error('URL.password is not implemented');\n }\n\n get pathname(): string {\n throw new Error('URL.pathname not implemented');\n }\n\n get port(): string {\n throw new Error('URL.port is not implemented');\n }\n\n get protocol(): string {\n throw new Error('URL.protocol is not implemented');\n }\n\n get search(): string {\n throw new Error('URL.search is not implemented');\n }\n\n get searchParams(): URLSearchParams {\n if (this._searchParamsInstance == null) {\n this._searchParamsInstance = new URLSearchParams();\n }\n return this._searchParamsInstance;\n }\n\n toJSON(): string {\n return this.toString();\n }\n\n toString(): string {\n if (this._searchParamsInstance === null) {\n return this._url;\n }\n const instanceString = this._searchParamsInstance.toString();\n const separator = this._url.indexOf('?') > -1 ? '&' : '?';\n return this._url + separator + instanceString;\n }\n\n get username(): string {\n throw new Error('URL.username is not implemented');\n }\n}\n","/**\n * @author Toru Nagashima <https://github.com/mysticatea>\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar eventTargetShim = require('event-target-shim');\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends eventTargetShim.EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\neventTargetShim.defineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n eventTargetShim.EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexports.AbortController = AbortController;\nexports.AbortSignal = AbortSignal;\nexports.default = AbortController;\n\nmodule.exports = AbortController\nmodule.exports.AbortController = module.exports[\"default\"] = AbortController\nmodule.exports.AbortSignal = AbortSignal\n//# sourceMappingURL=abort-controller.js.map\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 strict-local\n * @format\n */\n\n'use strict';\n\n/**\n * Set up alert().\n * You can use this module directly, or just require InitializeCore.\n */\nif (!global.alert) {\n global.alert = function (text) {\n // Require Alert on demand. Requiring it too early can lead to issues\n // with things like Platform not being fully initialized.\n require('../Alert/Alert').alert('Alert', '' + text);\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 * @format\n * @flow\n */\n\nimport type {DialogOptions} from '../NativeModules/specs/NativeDialogManagerAndroid';\n\nimport Platform from '../Utilities/Platform';\nimport RCTAlertManager from './RCTAlertManager';\n\nexport type AlertType =\n | 'default'\n | 'plain-text'\n | 'secure-text'\n | 'login-password';\nexport type AlertButtonStyle = 'default' | 'cancel' | 'destructive';\nexport type Buttons = Array<{\n text?: string,\n onPress?: ?Function,\n isPreferred?: boolean,\n style?: AlertButtonStyle,\n ...\n}>;\n\ntype Options = {\n cancelable?: ?boolean,\n userInterfaceStyle?: 'unspecified' | 'light' | 'dark',\n onDismiss?: ?() => void,\n ...\n};\n\n/**\n * Launches an alert dialog with the specified title and message.\n *\n * See https://reactnative.dev/docs/alert\n */\nclass Alert {\n static alert(\n title: ?string,\n message?: ?string,\n buttons?: Buttons,\n options?: Options,\n ): void {\n if (Platform.OS === 'ios') {\n Alert.prompt(\n title,\n message,\n buttons,\n 'default',\n undefined,\n undefined,\n options,\n );\n } else if (Platform.OS === 'android') {\n const NativeDialogManagerAndroid =\n require('../NativeModules/specs/NativeDialogManagerAndroid').default;\n if (!NativeDialogManagerAndroid) {\n return;\n }\n const constants = NativeDialogManagerAndroid.getConstants();\n\n const config: DialogOptions = {\n title: title || '',\n message: message || '',\n cancelable: false,\n };\n\n if (options && options.cancelable) {\n config.cancelable = options.cancelable;\n }\n // At most three buttons (neutral, negative, positive). Ignore rest.\n // The text 'OK' should be probably localized. iOS Alert does that in native.\n const defaultPositiveText = 'OK';\n const validButtons: Buttons = buttons\n ? buttons.slice(0, 3)\n : [{text: defaultPositiveText}];\n const buttonPositive = validButtons.pop();\n const buttonNegative = validButtons.pop();\n const buttonNeutral = validButtons.pop();\n\n if (buttonNeutral) {\n config.buttonNeutral = buttonNeutral.text || '';\n }\n if (buttonNegative) {\n config.buttonNegative = buttonNegative.text || '';\n }\n if (buttonPositive) {\n config.buttonPositive = buttonPositive.text || defaultPositiveText;\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n const onAction = (action, buttonKey) => {\n if (action === constants.buttonClicked) {\n if (buttonKey === constants.buttonNeutral) {\n buttonNeutral.onPress && buttonNeutral.onPress();\n } else if (buttonKey === constants.buttonNegative) {\n buttonNegative.onPress && buttonNegative.onPress();\n } else if (buttonKey === constants.buttonPositive) {\n buttonPositive.onPress && buttonPositive.onPress();\n }\n } else if (action === constants.dismissed) {\n options && options.onDismiss && options.onDismiss();\n }\n };\n const onError = (errorMessage: string) => console.warn(errorMessage);\n NativeDialogManagerAndroid.showAlert(config, onError, onAction);\n }\n }\n\n static prompt(\n title: ?string,\n message?: ?string,\n callbackOrButtons?: ?(((text: string) => void) | Buttons),\n type?: ?AlertType = 'plain-text',\n defaultValue?: string,\n keyboardType?: string,\n options?: Options,\n ): void {\n if (Platform.OS === 'ios') {\n let callbacks: Array<?any> = [];\n const buttons = [];\n let cancelButtonKey;\n let destructiveButtonKey;\n let preferredButtonKey;\n if (typeof callbackOrButtons === 'function') {\n callbacks = [callbackOrButtons];\n } else if (Array.isArray(callbackOrButtons)) {\n callbackOrButtons.forEach((btn, index) => {\n callbacks[index] = btn.onPress;\n if (btn.style === 'cancel') {\n cancelButtonKey = String(index);\n } else if (btn.style === 'destructive') {\n destructiveButtonKey = String(index);\n }\n if (btn.isPreferred) {\n preferredButtonKey = String(index);\n }\n if (btn.text || index < (callbackOrButtons || []).length - 1) {\n const btnDef: {[number]: string} = {};\n btnDef[index] = btn.text || '';\n buttons.push(btnDef);\n }\n });\n }\n\n RCTAlertManager.alertWithArgs(\n {\n title: title || '',\n message: message || undefined,\n buttons,\n type: type || undefined,\n defaultValue,\n cancelButtonKey,\n destructiveButtonKey,\n preferredButtonKey,\n keyboardType,\n userInterfaceStyle: options?.userInterfaceStyle || undefined,\n },\n (id, value) => {\n const cb = callbacks[id];\n cb && cb(value);\n },\n );\n }\n }\n}\n\nmodule.exports = Alert;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\n/* 'buttonClicked' | 'dismissed' */\ntype DialogAction = string;\n/*\n buttonPositive = -1,\n buttonNegative = -2,\n buttonNeutral = -3\n*/\ntype DialogButtonKey = number;\nexport type DialogOptions = {|\n title?: string,\n message?: string,\n buttonPositive?: string,\n buttonNegative?: string,\n buttonNeutral?: string,\n items?: Array<string>,\n cancelable?: boolean,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +buttonClicked: DialogAction,\n +dismissed: DialogAction,\n +buttonPositive: DialogButtonKey,\n +buttonNegative: DialogButtonKey,\n +buttonNeutral: DialogButtonKey,\n |};\n +showAlert: (\n config: DialogOptions,\n onError: (error: string) => void,\n onAction: (action: DialogAction, buttonKey?: DialogButtonKey) => void,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('DialogManagerAndroid'): ?Spec);\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 strict\n * @format\n */\n\n'use strict';\n\nconst {polyfillObjectProperty} = require('../Utilities/PolyfillFunctions');\n\nlet navigator = global.navigator;\nif (navigator === undefined) {\n global.navigator = navigator = {};\n}\n\n// see https://github.com/facebook/react-native/issues/10881\npolyfillObjectProperty(navigator, 'product', () => 'ReactNative');\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 strict-local\n * @format\n */\n\n'use strict';\n\nlet registerModule;\nif (global.RN$Bridgeless === true && global.RN$registerCallableModule) {\n registerModule = global.RN$registerCallableModule;\n} else {\n const BatchedBridge = require('../BatchedBridge/BatchedBridge');\n registerModule = (\n moduleName:\n | $TEMPORARY$string<'GlobalPerformanceLogger'>\n | $TEMPORARY$string<'HMRClient'>\n | $TEMPORARY$string<'HeapCapture'>\n | $TEMPORARY$string<'JSTimers'>\n | $TEMPORARY$string<'RCTDeviceEventEmitter'>\n | $TEMPORARY$string<'RCTLog'>\n | $TEMPORARY$string<'RCTNativeAppEventEmitter'>\n | $TEMPORARY$string<'SamplingProfiler'>\n | $TEMPORARY$string<'Systrace'>,\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n factory,\n ) => BatchedBridge.registerLazyCallableModule(moduleName, factory);\n}\n\nregisterModule('Systrace', () => require('../Performance/Systrace'));\nif (!(global.RN$Bridgeless === true)) {\n registerModule('JSTimers', () => require('./Timers/JSTimers'));\n}\nregisterModule('HeapCapture', () => require('../HeapCapture/HeapCapture'));\nregisterModule('SamplingProfiler', () =>\n require('../Performance/SamplingProfiler'),\n);\nregisterModule('RCTLog', () => require('../Utilities/RCTLog'));\nregisterModule(\n 'RCTDeviceEventEmitter',\n () => require('../EventEmitter/RCTDeviceEventEmitter').default,\n);\nregisterModule('RCTNativeAppEventEmitter', () =>\n require('../EventEmitter/RCTNativeAppEventEmitter'),\n);\nregisterModule('GlobalPerformanceLogger', () =>\n require('../Utilities/GlobalPerformanceLogger'),\n);\n\nif (__DEV__) {\n registerModule('HMRClient', () => require('../Utilities/HMRClient'));\n} else {\n registerModule('HMRClient', () => require('../Utilities/HMRClientProdShim'));\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 * @format\n * @flow strict\n */\n\nimport NativeJSCHeapCapture from './NativeJSCHeapCapture';\n\nconst HeapCapture = {\n captureHeap: function (path: string) {\n let error = null;\n try {\n global.nativeCaptureHeap(path);\n console.log('HeapCapture.captureHeap succeeded: ' + path);\n } catch (e) {\n console.log('HeapCapture.captureHeap error: ' + e.toString());\n error = e.toString();\n }\n if (NativeJSCHeapCapture) {\n NativeJSCHeapCapture.captureComplete(path, error);\n }\n },\n};\n\nmodule.exports = HeapCapture;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +captureComplete: (path: string, error: ?string) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('JSCHeapCapture'): ?Spec);\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nconst SamplingProfiler = {\n poke: function (token: number): void {\n let error = null;\n let result = null;\n try {\n result = global.pokeSamplingProfiler();\n if (result === null) {\n console.log('The JSC Sampling Profiler has started');\n } else {\n console.log('The JSC Sampling Profiler has stopped');\n }\n } catch (e) {\n console.log(\n 'Error occurred when restarting Sampling Profiler: ' + e.toString(),\n );\n error = e.toString();\n }\n\n const NativeJSCSamplingProfiler =\n require('./NativeJSCSamplingProfiler').default;\n if (NativeJSCSamplingProfiler) {\n NativeJSCSamplingProfiler.operationComplete(token, result, error);\n }\n },\n};\n\nmodule.exports = SamplingProfiler;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +operationComplete: (token: number, result: ?string, error: ?string) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('JSCSamplingProfiler'): ?Spec);\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nconst levelsMap = {\n log: 'log',\n info: 'info',\n warn: 'warn',\n error: 'error',\n fatal: 'error',\n};\n\nlet warningHandler: ?(...Array<mixed>) => void = null;\n\nconst RCTLog = {\n // level one of log, info, warn, error, mustfix\n logIfNoNativeHook(level: string, ...args: Array<mixed>): void {\n // We already printed in the native console, so only log here if using a js debugger\n if (typeof global.nativeLoggingHook === 'undefined') {\n RCTLog.logToConsole(level, ...args);\n } else {\n // Report native warnings to LogBox\n if (warningHandler && level === 'warn') {\n warningHandler(...args);\n }\n }\n },\n\n // Log to console regardless of nativeLoggingHook\n logToConsole(level: string, ...args: Array<mixed>): void {\n const logFn = levelsMap[level];\n invariant(\n logFn,\n 'Level \"' + level + '\" not one of ' + Object.keys(levelsMap).toString(),\n );\n\n console[logFn](...args);\n },\n\n setWarningHandler(handler: typeof warningHandler): void {\n warningHandler = handler;\n },\n};\n\nmodule.exports = RCTLog;\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 * @format\n * @flow strict-local\n */\n\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\n\n/**\n * Deprecated - subclass NativeEventEmitter to create granular event modules instead of\n * adding all event listeners directly to RCTNativeAppEventEmitter.\n */\nconst RCTNativeAppEventEmitter = RCTDeviceEventEmitter;\nmodule.exports = RCTNativeAppEventEmitter;\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 * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {HMRClientNativeInterface} from './HMRClient';\n\n// This shim ensures DEV binary builds don't crash in JS\n// when they're combined with a PROD JavaScript build.\nconst HMRClientProdShim: HMRClientNativeInterface = {\n setup() {},\n enable() {\n console.error(\n 'Fast Refresh is disabled in JavaScript bundles built in production mode. ' +\n 'Did you forget to run Metro?',\n );\n },\n disable() {},\n registerBundle() {},\n log() {},\n};\n\nmodule.exports = HMRClientProdShim;\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 strict-local\n * @format\n */\n\n'use strict';\n\nexport type FetchSegmentFunction = typeof __fetchSegment;\nexport type GetSegmentFunction = typeof __getSegment;\n\n/**\n * Set up SegmentFetcher.\n * You can use this module directly, or just require InitializeCore.\n */\n\nfunction __fetchSegment(\n segmentId: number,\n options: $ReadOnly<{\n otaBuildNumber: ?string,\n requestedModuleName: string,\n segmentHash: string,\n }>,\n callback: (?Error) => void,\n) {\n const SegmentFetcher =\n require('./SegmentFetcher/NativeSegmentFetcher').default;\n SegmentFetcher.fetchSegment(\n segmentId,\n options,\n (\n errorObject: ?{\n message: string,\n code: string,\n ...\n },\n ) => {\n if (errorObject) {\n const error = new Error(errorObject.message);\n (error: any).code = errorObject.code; // flowlint-line unclear-type: off\n callback(error);\n }\n\n callback(null);\n },\n );\n}\n\nglobal.__fetchSegment = __fetchSegment;\n\nfunction __getSegment(\n segmentId: number,\n options: $ReadOnly<{\n otaBuildNumber: ?string,\n requestedModuleName: string,\n segmentHash: string,\n }>,\n callback: (?Error, ?string) => void,\n) {\n const SegmentFetcher =\n require('./SegmentFetcher/NativeSegmentFetcher').default;\n\n if (!SegmentFetcher.getSegment) {\n throw new Error('SegmentFetcher.getSegment must be defined');\n }\n\n SegmentFetcher.getSegment(\n segmentId,\n options,\n (\n errorObject: ?{\n message: string,\n code: string,\n ...\n },\n path: ?string,\n ) => {\n if (errorObject) {\n const error = new Error(errorObject.message);\n (error: any).code = errorObject.code; // flowlint-line unclear-type: off\n callback(error);\n }\n\n callback(null, path);\n },\n );\n}\n\nglobal.__getSegment = __getSegment;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +fetchSegment: (\n segmentId: number,\n options: Object, // flowlint-line unclear-type: off\n callback: (error: ?Object) => void, // flowlint-line unclear-type: off\n ) => void;\n +getSegment?: (\n segmentId: number,\n options: Object, // flowlint-line unclear-type: off\n callback: (error: ?Object, path: ?string) => void, // flowlint-line unclear-type: off\n ) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('SegmentFetcher'): Spec);\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 * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport BatchedBridge from '../BatchedBridge/BatchedBridge';\nimport BugReporting from '../BugReporting/BugReporting';\nimport createPerformanceLogger from '../Utilities/createPerformanceLogger';\nimport infoLog from '../Utilities/infoLog';\nimport SceneTracker from '../Utilities/SceneTracker';\nimport {coerceDisplayMode} from './DisplayMode';\nimport HeadlessJsTaskError from './HeadlessJsTaskError';\nimport NativeHeadlessJsTaskSupport from './NativeHeadlessJsTaskSupport';\nimport renderApplication from './renderApplication';\nimport {unmountComponentAtNodeAndRemoveContainer} from './RendererProxy';\nimport invariant from 'invariant';\n\ntype Task = (taskData: any) => Promise<void>;\nexport type TaskProvider = () => Task;\ntype TaskCanceller = () => void;\ntype TaskCancelProvider = () => TaskCanceller;\n\nexport type ComponentProvider = () => React$ComponentType<any>;\nexport type ComponentProviderInstrumentationHook = (\n component: ComponentProvider,\n scopedPerformanceLogger: IPerformanceLogger,\n) => React$ComponentType<any>;\nexport type AppConfig = {\n appKey: string,\n component?: ComponentProvider,\n run?: Function,\n section?: boolean,\n ...\n};\nexport type Runnable = {\n component?: ComponentProvider,\n run: Function,\n ...\n};\nexport type Runnables = {[appKey: string]: Runnable, ...};\nexport type Registry = {\n sections: Array<string>,\n runnables: Runnables,\n ...\n};\nexport type WrapperComponentProvider = (\n appParameters: any,\n) => React$ComponentType<any>;\n\nconst runnables: Runnables = {};\nlet runCount = 1;\nconst sections: Runnables = {};\nconst taskProviders: Map<string, TaskProvider> = new Map();\nconst taskCancelProviders: Map<string, TaskCancelProvider> = new Map();\nlet componentProviderInstrumentationHook: ComponentProviderInstrumentationHook =\n (component: ComponentProvider) => component();\n\nlet wrapperComponentProvider: ?WrapperComponentProvider;\nlet showArchitectureIndicator = false;\n\n/**\n * `AppRegistry` is the JavaScript entry point to running all React Native apps.\n *\n * See https://reactnative.dev/docs/appregistry\n */\nconst AppRegistry = {\n setWrapperComponentProvider(provider: WrapperComponentProvider) {\n wrapperComponentProvider = provider;\n },\n\n enableArchitectureIndicator(enabled: boolean): void {\n showArchitectureIndicator = enabled;\n },\n\n registerConfig(config: Array<AppConfig>): void {\n config.forEach(appConfig => {\n if (appConfig.run) {\n AppRegistry.registerRunnable(appConfig.appKey, appConfig.run);\n } else {\n invariant(\n appConfig.component != null,\n 'AppRegistry.registerConfig(...): Every config is expected to set ' +\n 'either `run` or `component`, but `%s` has neither.',\n appConfig.appKey,\n );\n AppRegistry.registerComponent(\n appConfig.appKey,\n appConfig.component,\n appConfig.section,\n );\n }\n });\n },\n\n /**\n * Registers an app's root component.\n *\n * See https://reactnative.dev/docs/appregistry#registercomponent\n */\n registerComponent(\n appKey: string,\n componentProvider: ComponentProvider,\n section?: boolean,\n ): string {\n let scopedPerformanceLogger = createPerformanceLogger();\n runnables[appKey] = {\n componentProvider,\n run: (appParameters, displayMode) => {\n const concurrentRootEnabled =\n appParameters.initialProps?.concurrentRoot ||\n appParameters.concurrentRoot;\n renderApplication(\n componentProviderInstrumentationHook(\n componentProvider,\n scopedPerformanceLogger,\n ),\n appParameters.initialProps,\n appParameters.rootTag,\n wrapperComponentProvider && wrapperComponentProvider(appParameters),\n appParameters.fabric,\n showArchitectureIndicator,\n scopedPerformanceLogger,\n appKey === 'LogBox',\n appKey,\n coerceDisplayMode(displayMode),\n concurrentRootEnabled,\n );\n },\n };\n if (section) {\n sections[appKey] = runnables[appKey];\n }\n return appKey;\n },\n\n registerRunnable(appKey: string, run: Function): string {\n runnables[appKey] = {run};\n return appKey;\n },\n\n registerSection(appKey: string, component: ComponentProvider): void {\n AppRegistry.registerComponent(appKey, component, true);\n },\n\n getAppKeys(): Array<string> {\n return Object.keys(runnables);\n },\n\n getSectionKeys(): Array<string> {\n return Object.keys(sections);\n },\n\n getSections(): Runnables {\n return {\n ...sections,\n };\n },\n\n getRunnable(appKey: string): ?Runnable {\n return runnables[appKey];\n },\n\n getRegistry(): Registry {\n return {\n sections: AppRegistry.getSectionKeys(),\n runnables: {...runnables},\n };\n },\n\n setComponentProviderInstrumentationHook(\n hook: ComponentProviderInstrumentationHook,\n ) {\n componentProviderInstrumentationHook = hook;\n },\n\n /**\n * Loads the JavaScript bundle and runs the app.\n *\n * See https://reactnative.dev/docs/appregistry#runapplication\n */\n runApplication(\n appKey: string,\n appParameters: any,\n displayMode?: number,\n ): void {\n if (appKey !== 'LogBox') {\n const logParams = __DEV__\n ? '\" with ' + JSON.stringify(appParameters)\n : '';\n const msg = 'Running \"' + appKey + logParams;\n infoLog(msg);\n BugReporting.addSource(\n 'AppRegistry.runApplication' + runCount++,\n () => msg,\n );\n }\n invariant(\n runnables[appKey] && runnables[appKey].run,\n `\"${appKey}\" has not been registered. This can happen if:\\n` +\n '* Metro (the local dev server) is run from the wrong folder. ' +\n 'Check if Metro is running, stop it and restart it in the current project.\\n' +\n \"* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.\",\n );\n\n SceneTracker.setActiveScene({name: appKey});\n runnables[appKey].run(appParameters, displayMode);\n },\n\n /**\n * Update initial props for a surface that's already rendered\n */\n setSurfaceProps(\n appKey: string,\n appParameters: any,\n displayMode?: number,\n ): void {\n if (appKey !== 'LogBox') {\n const msg =\n 'Updating props for Surface \"' +\n appKey +\n '\" with ' +\n JSON.stringify(appParameters);\n infoLog(msg);\n BugReporting.addSource(\n 'AppRegistry.setSurfaceProps' + runCount++,\n () => msg,\n );\n }\n invariant(\n runnables[appKey] && runnables[appKey].run,\n `\"${appKey}\" has not been registered. This can happen if:\\n` +\n '* Metro (the local dev server) is run from the wrong folder. ' +\n 'Check if Metro is running, stop it and restart it in the current project.\\n' +\n \"* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.\",\n );\n\n runnables[appKey].run(appParameters, displayMode);\n },\n\n /**\n * Stops an application when a view should be destroyed.\n *\n * See https://reactnative.dev/docs/appregistry#unmountapplicationcomponentatroottag\n */\n unmountApplicationComponentAtRootTag(rootTag: RootTag): void {\n unmountComponentAtNodeAndRemoveContainer(rootTag);\n },\n\n /**\n * Register a headless task. A headless task is a bit of code that runs without a UI.\n *\n * See https://reactnative.dev/docs/appregistry#registerheadlesstask\n */\n registerHeadlessTask(taskKey: string, taskProvider: TaskProvider): void {\n // $FlowFixMe[object-this-reference]\n this.registerCancellableHeadlessTask(taskKey, taskProvider, () => () => {\n /* Cancel is no-op */\n });\n },\n\n /**\n * Register a cancellable headless task. A headless task is a bit of code that runs without a UI.\n *\n * See https://reactnative.dev/docs/appregistry#registercancellableheadlesstask\n */\n registerCancellableHeadlessTask(\n taskKey: string,\n taskProvider: TaskProvider,\n taskCancelProvider: TaskCancelProvider,\n ): void {\n if (taskProviders.has(taskKey)) {\n console.warn(\n `registerHeadlessTask or registerCancellableHeadlessTask called multiple times for same key '${taskKey}'`,\n );\n }\n taskProviders.set(taskKey, taskProvider);\n taskCancelProviders.set(taskKey, taskCancelProvider);\n },\n\n /**\n * Only called from native code. Starts a headless task.\n *\n * See https://reactnative.dev/docs/appregistry#startheadlesstask\n */\n startHeadlessTask(taskId: number, taskKey: string, data: any): void {\n const taskProvider = taskProviders.get(taskKey);\n if (!taskProvider) {\n console.warn(`No task registered for key ${taskKey}`);\n if (NativeHeadlessJsTaskSupport) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n return;\n }\n taskProvider()(data)\n .then(() => {\n if (NativeHeadlessJsTaskSupport) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n })\n .catch(reason => {\n console.error(reason);\n\n if (\n NativeHeadlessJsTaskSupport &&\n reason instanceof HeadlessJsTaskError\n ) {\n NativeHeadlessJsTaskSupport.notifyTaskRetry(taskId).then(\n retryPosted => {\n if (!retryPosted) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n },\n );\n }\n });\n },\n\n /**\n * Only called from native code. Cancels a headless task.\n *\n * See https://reactnative.dev/docs/appregistry#cancelheadlesstask\n */\n cancelHeadlessTask(taskId: number, taskKey: string): void {\n const taskCancelProvider = taskCancelProviders.get(taskKey);\n if (!taskCancelProvider) {\n throw new Error(`No task canceller registered for key '${taskKey}'`);\n }\n taskCancelProvider()();\n },\n};\n\nif (!(global.RN$Bridgeless === true)) {\n BatchedBridge.registerCallableModule('AppRegistry', AppRegistry);\n\n if (__DEV__) {\n const LogBoxInspector =\n require('../LogBox/LogBoxInspectorContainer').default;\n AppRegistry.registerComponent('LogBox', () => LogBoxInspector);\n } else {\n AppRegistry.registerComponent(\n 'LogBox',\n () =>\n function NoOp() {\n return null;\n },\n );\n }\n}\n\nmodule.exports = AppRegistry;\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 * @format\n * @flow strict-local\n */\n\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport NativeRedBox from '../NativeModules/specs/NativeRedBox';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport NativeBugReporting from './NativeBugReporting';\n\ntype ExtraData = {[key: string]: string, ...};\ntype SourceCallback = () => string;\ntype DebugData = {\n extras: ExtraData,\n files: ExtraData,\n ...\n};\n\nfunction defaultExtras() {\n BugReporting.addFileSource('react_hierarchy.txt', () =>\n require('./dumpReactTree')(),\n );\n}\n\n/**\n * A simple class for collecting bug report data. Components can add sources that will be queried when a bug report\n * is created via `collectExtraData`. For example, a list component might add a source that provides the list of rows\n * that are currently visible on screen. Components should also remember to call `remove()` on the object that is\n * returned by `addSource` when they are unmounted.\n */\nclass BugReporting {\n static _extraSources: Map<string, SourceCallback> = new Map();\n static _fileSources: Map<string, SourceCallback> = new Map();\n static _subscription: ?EventSubscription = null;\n static _redboxSubscription: ?EventSubscription = null;\n\n static _maybeInit() {\n if (!BugReporting._subscription) {\n BugReporting._subscription = RCTDeviceEventEmitter.addListener(\n 'collectBugExtraData',\n // $FlowFixMe[method-unbinding]\n BugReporting.collectExtraData,\n null,\n );\n defaultExtras();\n }\n\n if (!BugReporting._redboxSubscription) {\n BugReporting._redboxSubscription = RCTDeviceEventEmitter.addListener(\n 'collectRedBoxExtraData',\n // $FlowFixMe[method-unbinding]\n BugReporting.collectExtraData,\n null,\n );\n }\n }\n\n /**\n * Maps a string key to a simple callback that should return a string payload to be attached\n * to a bug report. Source callbacks are called when `collectExtraData` is called.\n *\n * Returns an object to remove the source when the component unmounts.\n *\n * Conflicts trample with a warning.\n */\n static addSource(\n key: string,\n callback: SourceCallback,\n ): {remove: () => void, ...} {\n return this._addSource(key, callback, BugReporting._extraSources);\n }\n\n /**\n * Maps a string key to a simple callback that should return a string payload to be attached\n * to a bug report. Source callbacks are called when `collectExtraData` is called.\n *\n * Returns an object to remove the source when the component unmounts.\n *\n * Conflicts trample with a warning.\n */\n static addFileSource(\n key: string,\n callback: SourceCallback,\n ): {remove: () => void, ...} {\n return this._addSource(key, callback, BugReporting._fileSources);\n }\n\n static _addSource(\n key: string,\n callback: SourceCallback,\n source: Map<string, SourceCallback>,\n ): {remove: () => void, ...} {\n BugReporting._maybeInit();\n if (source.has(key)) {\n console.warn(\n `BugReporting.add* called multiple times for same key '${key}'`,\n );\n }\n source.set(key, callback);\n return {\n remove: () => {\n source.delete(key);\n },\n };\n }\n\n /**\n * This can be called from a native bug reporting flow, or from JS code.\n *\n * If available, this will call `NativeModules.BugReporting.setExtraData(extraData)`\n * after collecting `extraData`.\n */\n static collectExtraData(): DebugData {\n const extraData: ExtraData = {};\n for (const [key, callback] of BugReporting._extraSources) {\n extraData[key] = callback();\n }\n const fileData: ExtraData = {};\n for (const [key, callback] of BugReporting._fileSources) {\n fileData[key] = callback();\n }\n\n if (NativeBugReporting != null && NativeBugReporting.setExtraData != null) {\n NativeBugReporting.setExtraData(extraData, fileData);\n }\n\n if (NativeRedBox != null && NativeRedBox.setExtraData != null) {\n NativeRedBox.setExtraData(extraData, 'From BugReporting.js');\n }\n\n return {extras: extraData, files: fileData};\n }\n}\n\nmodule.exports = BugReporting;\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 * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +setExtraData: (extraData: Object, forIdentifier: string) => void;\n +dismiss: () => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('RedBox'): ?Spec);\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 * @format\n * @flow\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +startReportAProblemFlow: () => void;\n +setExtraData: (extraData: Object, extraFiles: Object) => void;\n +setCategoryID: (categoryID: string) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('BugReporting'): ?Spec);\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 * @format\n * @flow strict\n */\n\n'use strict';\n\n/*\nconst getReactData = require('getReactData');\n\nconst INDENTATION_SIZE = 2;\nconst MAX_DEPTH = 2;\nconst MAX_STRING_LENGTH = 50;\n*/\n\n/**\n * Dump all React Native root views and their content. This function tries\n * it best to get the content but ultimately relies on implementation details\n * of React and will fail in future versions.\n */\nfunction dumpReactTree(): string {\n try {\n return getReactTree();\n } catch (e) {\n return 'Failed to dump react tree: ' + e;\n }\n}\n\nfunction getReactTree() {\n // TODO(sema): Reenable tree dumps using the Fiber tree structure. #15945684\n return (\n 'React tree dumps have been temporarily disabled while React is ' +\n 'upgraded to Fiber.'\n );\n /*\n let output = '';\n const rootIds = Object.getOwnPropertyNames(ReactNativeMount._instancesByContainerID);\n for (const rootId of rootIds) {\n const instance = ReactNativeMount._instancesByContainerID[rootId];\n output += `============ Root ID: ${rootId} ============\\n`;\n output += dumpNode(instance, 0);\n output += `============ End root ID: ${rootId} ============\\n`;\n }\n return output;\n*/\n}\n\n/*\nfunction dumpNode(node: Object, indentation: number) {\n const data = getReactData(node);\n if (data.nodeType === 'Text') {\n return indent(indentation) + data.text + '\\n';\n } else if (data.nodeType === 'Empty') {\n return '';\n }\n let output = indent(indentation) + `<${data.name}`;\n if (data.nodeType === 'Composite') {\n for (const propName of Object.getOwnPropertyNames(data.props || {})) {\n if (isNormalProp(propName)) {\n try {\n const value = convertValue(data.props[propName]);\n if (value) {\n output += ` ${propName}=${value}`;\n }\n } catch (e) {\n const message = `[Failed to get property: ${e}]`;\n output += ` ${propName}=${message}`;\n }\n }\n }\n }\n let childOutput = '';\n for (const child of data.children || []) {\n childOutput += dumpNode(child, indentation + 1);\n }\n\n if (childOutput) {\n output += '>\\n' + childOutput + indent(indentation) + `</${data.name}>\\n`;\n } else {\n output += ' />\\n';\n }\n\n return output;\n}\n\nfunction isNormalProp(name: string): boolean {\n switch (name) {\n case 'children':\n case 'key':\n case 'ref':\n return false;\n default:\n return true;\n }\n}\n\nfunction convertObject(object: Object, depth: number) {\n if (depth >= MAX_DEPTH) {\n return '[...omitted]';\n }\n let output = '{';\n let first = true;\n for (const key of Object.getOwnPropertyNames(object)) {\n if (!first) {\n output += ', ';\n }\n output += `${key}: ${convertValue(object[key], depth + 1)}`;\n first = false;\n }\n return output + '}';\n}\n\nfunction convertValue(value, depth = 0): ?string {\n if (!value) {\n return null;\n }\n\n switch (typeof value) {\n case 'string':\n return JSON.stringify(possiblyEllipsis(value).replace('\\n', '\\\\n'));\n case 'boolean':\n case 'number':\n return JSON.stringify(value);\n case 'function':\n return '[function]';\n case 'object':\n return convertObject(value, depth);\n default:\n return null;\n }\n}\n\nfunction possiblyEllipsis(value: string) {\n if (value.length > MAX_STRING_LENGTH) {\n return value.slice(0, MAX_STRING_LENGTH) + '...';\n } else {\n return value;\n }\n}\n\nfunction indent(size: number) {\n return ' '.repeat(size * INDENTATION_SIZE);\n}\n*/\n\nmodule.exports = dumpReactTree;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nexport type Scene = {name: string, ...};\n\nlet _listeners: Array<(scene: Scene) => void> = [];\n\nlet _activeScene = {name: 'default'};\n\nconst SceneTracker = {\n setActiveScene(scene: Scene) {\n _activeScene = scene;\n _listeners.forEach(listener => listener(_activeScene));\n },\n\n getActiveScene(): Scene {\n return _activeScene;\n },\n\n addActiveSceneChangedListener(callback: (scene: Scene) => void): {\n remove: () => void,\n ...\n } {\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n },\n };\n },\n};\n\nmodule.exports = SceneTracker;\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 strict-local\n * @format\n */\n\nexport opaque type DisplayModeType = number;\n\n/** DisplayMode should be in sync with the method displayModeToInt from\n * react/renderer/uimanager/primitives.h. */\nconst DisplayMode: {[string]: DisplayModeType} = Object.freeze({\n VISIBLE: 1,\n SUSPENDED: 2,\n HIDDEN: 3,\n});\n\nexport function coerceDisplayMode(value: ?number): DisplayModeType {\n switch (value) {\n case DisplayMode.SUSPENDED:\n return DisplayMode.SUSPENDED;\n case DisplayMode.HIDDEN:\n return DisplayMode.HIDDEN;\n default:\n return DisplayMode.VISIBLE;\n }\n}\n\nexport default DisplayMode;\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 strict-local\n * @format\n */\n\nexport default class HeadlessJsTaskError extends Error {}\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +notifyTaskFinished: (taskId: number) => void;\n +notifyTaskRetry: (taskId: number) => Promise<boolean>;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('HeadlessJsTaskSupport'): ?Spec);\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 * @format\n * @flow\n */\n\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport GlobalPerformanceLogger from '../Utilities/GlobalPerformanceLogger';\nimport PerformanceLoggerContext from '../Utilities/PerformanceLoggerContext';\nimport AppContainer from './AppContainer';\nimport DisplayMode, {type DisplayModeType} from './DisplayMode';\nimport getCachedComponentWithDebugName from './getCachedComponentWithDebugName';\nimport * as Renderer from './RendererProxy';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n// require BackHandler so it sets the default handler that exits the app if no listeners respond\nimport '../Utilities/BackHandler';\n\ntype OffscreenType = React.AbstractComponent<{\n mode: 'visible' | 'hidden',\n children: React.Node,\n}>;\n\nexport default function renderApplication<Props: Object>(\n RootComponent: React.ComponentType<Props>,\n initialProps: Props,\n rootTag: any,\n WrapperComponent?: ?React.ComponentType<any>,\n fabric?: boolean,\n showArchitectureIndicator?: boolean,\n scopedPerformanceLogger?: IPerformanceLogger,\n isLogBox?: boolean,\n debugName?: string,\n displayMode?: ?DisplayModeType,\n useConcurrentRoot?: boolean,\n useOffscreen?: boolean,\n) {\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n\n const performanceLogger = scopedPerformanceLogger ?? GlobalPerformanceLogger;\n\n let renderable: React.MixedElement = (\n <PerformanceLoggerContext.Provider value={performanceLogger}>\n <AppContainer\n rootTag={rootTag}\n fabric={fabric}\n showArchitectureIndicator={showArchitectureIndicator}\n WrapperComponent={WrapperComponent}\n initialProps={initialProps ?? Object.freeze({})}\n internal_excludeLogBox={isLogBox}>\n <RootComponent {...initialProps} rootTag={rootTag} />\n </AppContainer>\n </PerformanceLoggerContext.Provider>\n );\n\n if (__DEV__ && debugName) {\n const RootComponentWithMeaningfulName = getCachedComponentWithDebugName(\n `${debugName}(RootComponent)`,\n );\n renderable = (\n <RootComponentWithMeaningfulName>\n {renderable}\n </RootComponentWithMeaningfulName>\n );\n }\n\n if (useOffscreen && displayMode != null) {\n // $FlowFixMe[incompatible-type]\n // $FlowFixMe[prop-missing]\n const Offscreen: OffscreenType = React.unstable_Offscreen;\n\n renderable = (\n <Offscreen\n mode={displayMode === DisplayMode.VISIBLE ? 'visible' : 'hidden'}>\n {renderable}\n </Offscreen>\n );\n }\n\n performanceLogger.startTimespan('renderApplication_React_render');\n performanceLogger.setExtra(\n 'usedReactConcurrentRoot',\n useConcurrentRoot ? '1' : '0',\n );\n performanceLogger.setExtra('usedReactFabric', fabric ? '1' : '0');\n performanceLogger.setExtra(\n 'usedReactProfiler',\n Renderer.isProfilingRenderer(),\n );\n Renderer.renderElement({\n element: renderable,\n rootTag,\n useFabric: Boolean(fabric),\n useConcurrentRoot: Boolean(useConcurrentRoot),\n });\n performanceLogger.stopTimespan('renderApplication_React_render');\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 strict\n * @format\n */\n\nimport type {IPerformanceLogger} from './createPerformanceLogger';\n\nimport GlobalPerformanceLogger from './GlobalPerformanceLogger';\nimport * as React from 'react';\nimport {useContext} from 'react';\n\n/**\n * This is a React Context that provides a scoped instance of IPerformanceLogger.\n * We wrap every <AppContainer /> with a Provider for this context so the logger\n * should be available in every component.\n * See React docs about using Context: https://reactjs.org/docs/context.html\n */\nconst PerformanceLoggerContext: React.Context<IPerformanceLogger> =\n React.createContext(GlobalPerformanceLogger);\nif (__DEV__) {\n PerformanceLoggerContext.displayName = 'PerformanceLoggerContext';\n}\n\nexport function usePerformanceLogger(): IPerformanceLogger {\n return useContext(PerformanceLoggerContext);\n}\n\nexport default PerformanceLoggerContext;\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 * @format\n * @flow\n */\n\nimport type {RootTag} from './RootTag';\n\nimport View from '../Components/View/View';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport {RootTagContext, createRootTag} from './RootTag';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n children?: React.Node,\n fabric?: boolean,\n useConcurrentRoot?: boolean,\n rootTag: number | RootTag,\n initialProps?: {...},\n showArchitectureIndicator?: boolean,\n WrapperComponent?: ?React.ComponentType<any>,\n internal_excludeLogBox?: ?boolean,\n internal_excludeInspector?: ?boolean,\n|}>;\n\ntype State = {|\n inspector: ?React.Node,\n devtoolsOverlay: ?React.Node,\n mainKey: number,\n hasError: boolean,\n|};\n\nclass AppContainer extends React.Component<Props, State> {\n state: State = {\n inspector: null,\n devtoolsOverlay: null,\n mainKey: 1,\n hasError: false,\n };\n _mainRef: ?React.ElementRef<typeof View>;\n _subscription: ?EventSubscription = null;\n\n static getDerivedStateFromError: any = undefined;\n\n componentDidMount(): void {\n if (__DEV__) {\n if (!this.props.internal_excludeInspector) {\n this._subscription = RCTDeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n const Inspector = require('../Inspector/Inspector');\n const inspector = this.state.inspector ? null : (\n <Inspector\n inspectedView={this._mainRef}\n onRequestRerenderApp={updateInspectedView => {\n this.setState(\n s => ({mainKey: s.mainKey + 1}),\n () => updateInspectedView(this._mainRef),\n );\n }}\n />\n );\n this.setState({inspector});\n },\n );\n if (window.__REACT_DEVTOOLS_GLOBAL_HOOK__ != null) {\n const DevtoolsOverlay =\n require('../Inspector/DevtoolsOverlay').default;\n const devtoolsOverlay = (\n <DevtoolsOverlay inspectedView={this._mainRef} />\n );\n this.setState({devtoolsOverlay});\n }\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this._subscription != null) {\n this._subscription.remove();\n }\n }\n\n render(): React.Node {\n let logBox = null;\n if (__DEV__) {\n if (!this.props.internal_excludeLogBox) {\n const LogBoxNotificationContainer =\n require('../LogBox/LogBoxNotificationContainer').default;\n logBox = <LogBoxNotificationContainer />;\n }\n }\n\n let innerView: React.Node = (\n <View\n collapsable={!this.state.inspector && !this.state.devtoolsOverlay}\n key={this.state.mainKey}\n pointerEvents=\"box-none\"\n style={styles.appContainer}\n ref={ref => {\n this._mainRef = ref;\n }}>\n {this.props.children}\n </View>\n );\n\n const Wrapper = this.props.WrapperComponent;\n if (Wrapper != null) {\n innerView = (\n <Wrapper\n initialProps={this.props.initialProps}\n fabric={this.props.fabric === true}\n showArchitectureIndicator={\n this.props.showArchitectureIndicator === true\n }>\n {innerView}\n </Wrapper>\n );\n }\n return (\n <RootTagContext.Provider value={createRootTag(this.props.rootTag)}>\n <View style={styles.appContainer} pointerEvents=\"box-none\">\n {!this.state.hasError && innerView}\n {this.state.devtoolsOverlay}\n {this.state.inspector}\n {logBox}\n </View>\n </RootTagContext.Provider>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n appContainer: {\n flex: 1,\n },\n});\n\nmodule.exports = AppContainer;\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 * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from './ViewPropTypes';\n\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport TextAncestor from '../../Text/TextAncestor';\nimport {getAccessibilityRoleFromRole} from '../../Utilities/AcessibilityMapping';\nimport ViewNativeComponent from './ViewNativeComponent';\nimport * as React from 'react';\n\nexport type Props = ViewProps;\n\n/**\n * The most fundamental component for building a UI, View is a container that\n * supports layout with flexbox, style, some touch handling, and accessibility\n * controls.\n *\n * @see https://reactnative.dev/docs/view\n */\nconst View: React.AbstractComponent<\n ViewProps,\n React.ElementRef<typeof ViewNativeComponent>,\n> = React.forwardRef(\n (\n {\n accessibilityElementsHidden,\n accessibilityLabel,\n accessibilityLabelledBy,\n accessibilityLiveRegion,\n accessibilityRole,\n accessibilityState,\n accessibilityValue,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-live': ariaLive,\n 'aria-selected': ariaSelected,\n 'aria-valuemax': ariaValueMax,\n 'aria-valuemin': ariaValueMin,\n 'aria-valuenow': ariaValueNow,\n 'aria-valuetext': ariaValueText,\n focusable,\n id,\n importantForAccessibility,\n nativeID,\n pointerEvents,\n role,\n style,\n tabIndex,\n ...otherProps\n }: ViewProps,\n forwardedRef,\n ) => {\n const _accessibilityLabelledBy =\n ariaLabelledBy?.split(/\\s*,\\s*/g) ?? accessibilityLabelledBy;\n\n const _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n const _accessibilityValue = {\n max: ariaValueMax ?? accessibilityValue?.max,\n min: ariaValueMin ?? accessibilityValue?.min,\n now: ariaValueNow ?? accessibilityValue?.now,\n text: ariaValueText ?? accessibilityValue?.text,\n };\n\n const flattenedStyle = flattenStyle(style);\n const newPointerEvents = flattenedStyle?.pointerEvents || pointerEvents;\n\n return (\n <TextAncestor.Provider value={false}>\n <ViewNativeComponent\n {...otherProps}\n accessibilityLiveRegion={\n ariaLive === 'off' ? 'none' : ariaLive ?? accessibilityLiveRegion\n }\n accessibilityLabel={ariaLabel ?? accessibilityLabel}\n focusable={tabIndex !== undefined ? !tabIndex : focusable}\n accessibilityState={_accessibilityState}\n accessibilityRole={\n role ? getAccessibilityRoleFromRole(role) : accessibilityRole\n }\n accessibilityElementsHidden={\n ariaHidden ?? accessibilityElementsHidden\n }\n accessibilityLabelledBy={_accessibilityLabelledBy}\n accessibilityValue={_accessibilityValue}\n importantForAccessibility={\n ariaHidden === true\n ? 'no-hide-descendants'\n : importantForAccessibility\n }\n nativeID={id ?? nativeID}\n style={style}\n pointerEvents={newPointerEvents}\n ref={forwardedRef}\n />\n </TextAncestor.Provider>\n );\n },\n);\n\nView.displayName = 'View';\n\nmodule.exports = View;\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 strict\n * @format\n */\n\n'use strict';\n\nconst React = require('react');\n\n/**\n * Whether the current element is the descendant of a <Text> element.\n */\nconst TextAncestorContext = (React.createContext(\n false,\n): React$Context<$FlowFixMe>);\nif (__DEV__) {\n TextAncestorContext.displayName = 'TextAncestorContext';\n}\nmodule.exports = TextAncestorContext;\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 strict-local\n * @format\n */\n\n'use strict';\n\nimport type {\n AccessibilityRole,\n Role,\n} from '../Components/View/ViewAccessibility';\n\n// Map role values to AccessibilityRole values\nexport function getAccessibilityRoleFromRole(role: Role): ?AccessibilityRole {\n switch (role) {\n case 'alert':\n return 'alert';\n case 'alertdialog':\n return undefined;\n case 'application':\n return undefined;\n case 'article':\n return undefined;\n case 'banner':\n return undefined;\n case 'button':\n return 'button';\n case 'cell':\n return undefined;\n case 'checkbox':\n return 'checkbox';\n case 'columnheader':\n return undefined;\n case 'combobox':\n return 'combobox';\n case 'complementary':\n return undefined;\n case 'contentinfo':\n return undefined;\n case 'definition':\n return undefined;\n case 'dialog':\n return undefined;\n case 'directory':\n return undefined;\n case 'document':\n return undefined;\n case 'feed':\n return undefined;\n case 'figure':\n return undefined;\n case 'form':\n return undefined;\n case 'grid':\n return 'grid';\n case 'group':\n return undefined;\n case 'heading':\n return 'header';\n case 'img':\n return 'image';\n case 'link':\n return 'link';\n case 'list':\n return 'list';\n case 'listitem':\n return undefined;\n case 'log':\n return undefined;\n case 'main':\n return undefined;\n case 'marquee':\n return undefined;\n case 'math':\n return undefined;\n case 'menu':\n return 'menu';\n case 'menubar':\n return 'menubar';\n case 'menuitem':\n return 'menuitem';\n case 'meter':\n return undefined;\n case 'navigation':\n return undefined;\n case 'none':\n return 'none';\n case 'note':\n return undefined;\n case 'option':\n return undefined;\n case 'presentation':\n return 'none';\n case 'progressbar':\n return 'progressbar';\n case 'radio':\n return 'radio';\n case 'radiogroup':\n return 'radiogroup';\n case 'region':\n return undefined;\n case 'row':\n return undefined;\n case 'rowgroup':\n return undefined;\n case 'rowheader':\n return undefined;\n case 'scrollbar':\n return 'scrollbar';\n case 'searchbox':\n return 'search';\n case 'separator':\n return undefined;\n case 'slider':\n return 'adjustable';\n case 'spinbutton':\n return 'spinbutton';\n case 'status':\n return undefined;\n case 'summary':\n return 'summary';\n case 'switch':\n return 'switch';\n case 'tab':\n return 'tab';\n case 'table':\n return undefined;\n case 'tablist':\n return 'tablist';\n case 'tabpanel':\n return undefined;\n case 'term':\n return undefined;\n case 'timer':\n return 'timer';\n case 'toolbar':\n return 'toolbar';\n case 'tooltip':\n return undefined;\n case 'tree':\n return undefined;\n case 'treegrid':\n return undefined;\n case 'treeitem':\n return undefined;\n }\n\n return undefined;\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 strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport Platform from '../../Utilities/Platform';\nimport {type ViewProps as Props} from './ViewPropTypes';\nimport * as React from 'react';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTView',\n validAttributes: {\n // ReactClippingViewManager @ReactProps\n removeClippedSubviews: true,\n\n // ReactViewManager @ReactProps\n accessible: true,\n hasTVPreferredFocus: true,\n nextFocusDown: true,\n nextFocusForward: true,\n nextFocusLeft: true,\n nextFocusRight: true,\n nextFocusUp: true,\n\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomRightRadius: true,\n borderBottomLeftRadius: true,\n borderTopStartRadius: true,\n borderTopEndRadius: true,\n borderBottomStartRadius: true,\n borderBottomEndRadius: true,\n\n borderStyle: true,\n hitSlop: true,\n pointerEvents: true,\n nativeBackgroundAndroid: true,\n nativeForegroundAndroid: true,\n needsOffscreenAlphaCompositing: true,\n\n borderWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n borderStartWidth: true,\n borderEndWidth: true,\n\n borderColor: {process: require('../../StyleSheet/processColor')},\n borderLeftColor: {process: require('../../StyleSheet/processColor')},\n borderRightColor: {process: require('../../StyleSheet/processColor')},\n borderTopColor: {process: require('../../StyleSheet/processColor')},\n borderBottomColor: {\n process: require('../../StyleSheet/processColor'),\n },\n borderStartColor: {process: require('../../StyleSheet/processColor')},\n borderEndColor: {process: require('../../StyleSheet/processColor')},\n\n focusable: true,\n overflow: true,\n backfaceVisibility: true,\n },\n }\n : {\n uiViewClassName: 'RCTView',\n };\n\nconst ViewNativeComponent: HostComponent<Props> =\n NativeComponentRegistry.get<Props>('RCTView', () => __INTERNAL_VIEW_CONFIG);\n\ninterface NativeCommands {\n +hotspotUpdate: (\n viewRef: React.ElementRef<HostComponent<mixed>>,\n x: number,\n y: number,\n ) => void;\n +setPressed: (\n viewRef: React.ElementRef<HostComponent<mixed>>,\n pressed: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['hotspotUpdate', 'setPressed'],\n});\n\nexport default ViewNativeComponent;\n\nexport type ViewNativeComponentType = HostComponent<Props>;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, 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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\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 * @format\n */\n\n'use strict';\n\nimport type {\n ____ColorValue_Internal,\n ____DangerouslyImpreciseStyle_Internal,\n ____DangerouslyImpreciseStyleProp_Internal,\n ____ImageStyle_Internal,\n ____ImageStyleProp_Internal,\n ____Styles_Internal,\n ____TextStyle_Internal,\n ____TextStyleProp_Internal,\n ____ViewStyle_Internal,\n ____ViewStyleProp_Internal,\n} from './StyleSheetTypes';\n\nconst ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');\nconst PixelRatio = require('../Utilities/PixelRatio');\nconst flatten = require('./flattenStyle');\n\n/**\n * This type should be used as the type for anything that is a color. It is\n * most useful when using DynamicColorIOS which can be a string or a dynamic\n * color object.\n *\n * type props = {backgroundColor: ColorValue};\n */\nexport type ColorValue = ____ColorValue_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to a <View>'s `style` prop. This ensures call sites of the component\n * can't pass styles that View doesn't support such as `fontSize`.`\n *\n * type Props = {style: ViewStyleProp}\n * const MyComponent = (props: Props) => <View style={props.style} />\n */\nexport type ViewStyleProp = ____ViewStyleProp_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to a <Text>'s `style` prop. This ensures call sites of the component\n * can't pass styles that Text doesn't support such as `resizeMode`.`\n *\n * type Props = {style: TextStyleProp}\n * const MyComponent = (props: Props) => <Text style={props.style} />\n */\nexport type TextStyleProp = ____TextStyleProp_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to an <Image>'s `style` prop. This ensures call sites of the component\n * can't pass styles that Image doesn't support such as `fontSize`.`\n *\n * type Props = {style: ImageStyleProp}\n * const MyComponent = (props: Props) => <Image style={props.style} />\n */\nexport type ImageStyleProp = ____ImageStyleProp_Internal;\n\n/**\n * WARNING: You probably shouldn't be using this type. This type\n * is similar to the ones above except it allows styles that are accepted\n * by all of View, Text, or Image. It is therefore very unsafe to pass this\n * through to an underlying component. Using this is almost always a mistake\n * and using one of the other more restrictive types is likely the right choice.\n */\nexport type DangerouslyImpreciseStyleProp =\n ____DangerouslyImpreciseStyleProp_Internal;\n\n/**\n * Utility type for getting the values for specific style keys.\n *\n * The following is bad because position is more restrictive than 'string':\n * ```\n * type Props = {position: string};\n * ```\n *\n * You should use the following instead:\n *\n * ```\n * type Props = {position: TypeForStyleKey<'position'>};\n * ```\n *\n * This will correctly give you the type 'absolute' | 'relative'\n */\nexport type TypeForStyleKey<\n +key: $Keys<____DangerouslyImpreciseStyle_Internal>,\n> = $ElementType<____DangerouslyImpreciseStyle_Internal, key>;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for View.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using ViewStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to a View that can't be precomputed with\n * StyleSheet.create.\n */\nexport type ViewStyle = ____ViewStyle_Internal;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for Text.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using TextStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to a Text that can't be precomputed with\n * StyleSheet.create.\n */\nexport type TextStyle = ____TextStyle_Internal;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for Image.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using ImageStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to an Image that can't be precomputed with\n * StyleSheet.create.\n */\nexport type ImageStyle = ____ImageStyle_Internal;\n\n/**\n * WARNING: You probably shouldn't be using this type. This type is an object\n * with all possible style keys and their values. Note that this isn't\n * a safe way to type a style prop for a component as results from\n * StyleSheet.create return an internal identifier, not an object of styles.\n *\n * If you want to type the style prop of a function, consider using\n * ViewStyleProp, TextStyleProp, or ImageStyleProp.\n *\n * This should only be used by very core utilities that operate on an object\n * containing any possible style value.\n */\nexport type DangerouslyImpreciseStyle = ____DangerouslyImpreciseStyle_Internal;\n\nlet hairlineWidth: number = PixelRatio.roundToNearestPixel(0.4);\nif (hairlineWidth === 0) {\n hairlineWidth = 1 / PixelRatio.get();\n}\n\nconst absoluteFill = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\nif (__DEV__) {\n Object.freeze(absoluteFill);\n}\n\n/**\n * A StyleSheet is an abstraction similar to CSS StyleSheets\n *\n * Create a new StyleSheet:\n *\n * ```\n * const styles = StyleSheet.create({\n * container: {\n * borderRadius: 4,\n * borderWidth: 0.5,\n * borderColor: '#d6d7da',\n * },\n * title: {\n * fontSize: 19,\n * fontWeight: 'bold',\n * },\n * activeTitle: {\n * color: 'red',\n * },\n * });\n * ```\n *\n * Use a StyleSheet:\n *\n * ```\n * <View style={styles.container}>\n * <Text style={[styles.title, this.props.isActive && styles.activeTitle]} />\n * </View>\n * ```\n *\n * Code quality:\n *\n * - By moving styles away from the render function, you're making the code\n * easier to understand.\n * - Naming the styles is a good way to add meaning to the low level components\n * in the render function.\n *\n * Performance:\n *\n * - Making a stylesheet from a style object makes it possible to refer to it\n * by ID instead of creating a new style object every time.\n * - It also allows to send the style only once through the bridge. All\n * subsequent uses are going to refer an id (not implemented yet).\n */\nmodule.exports = {\n /**\n * This is defined as the width of a thin line on the platform. It can be\n * used as the thickness of a border or division between two elements.\n * Example:\n * ```\n * {\n * borderBottomColor: '#bbb',\n * borderBottomWidth: StyleSheet.hairlineWidth\n * }\n * ```\n *\n * This constant will always be a round number of pixels (so a line defined\n * by it look crisp) and will try to match the standard width of a thin line\n * on the underlying platform. However, you should not rely on it being a\n * constant size, because on different platforms and screen densities its\n * value may be calculated differently.\n *\n * A line with hairline width may not be visible if your simulator is downscaled.\n */\n hairlineWidth,\n\n /**\n * A very common pattern is to create overlays with position absolute and zero positioning,\n * so `absoluteFill` can be used for convenience and to reduce duplication of these repeated\n * styles.\n */\n absoluteFill: (absoluteFill: any), // TODO: This should be updated after we fix downstream Flow sites.\n\n /**\n * Sometimes you may want `absoluteFill` but with a couple tweaks - `absoluteFillObject` can be\n * used to create a customized entry in a `StyleSheet`, e.g.:\n *\n * const styles = StyleSheet.create({\n * wrapper: {\n * ...StyleSheet.absoluteFillObject,\n * top: 10,\n * backgroundColor: 'transparent',\n * },\n * });\n */\n absoluteFillObject: absoluteFill,\n\n /**\n * Combines two styles such that `style2` will override any styles in `style1`.\n * If either style is falsy, the other one is returned without allocating an\n * array, saving allocations and maintaining reference equality for\n * PureComponent checks.\n */\n compose<T: DangerouslyImpreciseStyleProp>(\n style1: ?T,\n style2: ?T,\n ): ?T | $ReadOnlyArray<T> {\n if (style1 != null && style2 != null) {\n return ([style1, style2]: $ReadOnlyArray<T>);\n } else {\n return style1 != null ? style1 : style2;\n }\n },\n\n /**\n * Flattens an array of style objects, into one aggregated style object.\n * Alternatively, this method can be used to lookup IDs, returned by\n * StyleSheet.register.\n *\n * > **NOTE**: Exercise caution as abusing this can tax you in terms of\n * > optimizations.\n * >\n * > IDs enable optimizations through the bridge and memory in general. Referring\n * > to style objects directly will deprive you of these optimizations.\n *\n * Example:\n * ```\n * const styles = StyleSheet.create({\n * listItem: {\n * flex: 1,\n * fontSize: 16,\n * color: 'white'\n * },\n * selectedListItem: {\n * color: 'green'\n * }\n * });\n *\n * StyleSheet.flatten([styles.listItem, styles.selectedListItem])\n * // returns { flex: 1, fontSize: 16, color: 'green' }\n * ```\n * Alternative use:\n * ```\n * StyleSheet.flatten(styles.listItem);\n * // return { flex: 1, fontSize: 16, color: 'white' }\n * // Simply styles.listItem would return its ID (number)\n * ```\n * This method internally uses `StyleSheetRegistry.getStyleByID(style)`\n * to resolve style objects represented by IDs. Thus, an array of style\n * objects (instances of StyleSheet.create), are individually resolved to,\n * their respective objects, merged as one and then returned. This also explains\n * the alternative use.\n */\n flatten,\n\n /**\n * WARNING: EXPERIMENTAL. Breaking changes will probably happen a lot and will\n * not be reliably announced. The whole thing might be deleted, who knows? Use\n * at your own risk.\n *\n * Sets a function to use to pre-process a style property value. This is used\n * internally to process color and transform values. You should not use this\n * unless you really know what you are doing and have exhausted other options.\n */\n setStyleAttributePreprocessor(\n property: string,\n process: (nextProp: mixed) => mixed,\n ) {\n let value;\n\n if (ReactNativeStyleAttributes[property] === true) {\n value = {process};\n } else if (typeof ReactNativeStyleAttributes[property] === 'object') {\n value = {...ReactNativeStyleAttributes[property], process};\n } else {\n console.error(`${property} is not a valid style attribute`);\n return;\n }\n\n if (\n __DEV__ &&\n typeof value.process === 'function' &&\n typeof ReactNativeStyleAttributes[property]?.process === 'function' &&\n value.process !== ReactNativeStyleAttributes[property]?.process\n ) {\n console.warn(`Overwriting ${property} style attribute preprocessor`);\n }\n\n ReactNativeStyleAttributes[property] = value;\n },\n\n /**\n * Creates a StyleSheet style reference from the given object.\n */\n create<+S: ____Styles_Internal>(obj: S): $ReadOnly<S> {\n // TODO: This should return S as the return type. But first,\n // we need to codemod all the callsites that are typing this\n // return value as a number (even though it was opaque).\n if (__DEV__) {\n for (const key in obj) {\n if (obj[key]) {\n Object.freeze(obj[key]);\n }\n }\n }\n return obj;\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 strict\n * @format\n */\n\nimport * as React from 'react';\n\nexport opaque type RootTag = number;\n\nexport const RootTagContext: React$Context<RootTag> =\n React.createContext<RootTag>(0);\n\nif (__DEV__) {\n RootTagContext.displayName = 'RootTagContext';\n}\n\n/**\n * Intended to only be used by `AppContainer`.\n */\nexport function createRootTag(rootTag: number | RootTag): RootTag {\n return rootTag;\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 strict\n * @format\n */\n\nimport type {AbstractComponent, Node} from 'react';\n\ntype NoopComponent = AbstractComponent<{children: Node}>;\n\nconst cache: Map<\n string, // displayName\n NoopComponent, // ComponentWithDisplayName\n> = new Map();\n\nexport default function getCachedComponentWithDisplayName(\n displayName: string,\n): NoopComponent {\n let ComponentWithDisplayName = cache.get(displayName);\n\n if (!ComponentWithDisplayName) {\n ComponentWithDisplayName = ({\n children,\n }: $TEMPORARY$object<{children: Node}>) => children;\n // $FlowFixMe[prop-missing]\n ComponentWithDisplayName.displayName = displayName;\n cache.set(displayName, ComponentWithDisplayName);\n }\n\n return ComponentWithDisplayName;\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, 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'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\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 * @noformat\n * @flow\n * @generated SignedSource<<744176db456e2656dac661d36e55f42a>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport type {ReactNativeType} from './ReactNativeTypes';\n\nlet ReactNative;\n\nif (__DEV__) {\n ReactNative = require('../implementations/ReactNativeRenderer-dev');\n} else {\n ReactNative = require('../implementations/ReactNativeRenderer-prod');\n}\n\nmodule.exports = (ReactNative: ReactNativeType);\n","/**\n * Copyright (c) Facebook, 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 * @noflow\n * @nolint\n * @providesModule ReactNativeRenderer-prod\n * @preventMunge\n * @generated SignedSource<<07cf699c0d1c149943b7a02432aa1550>>\n */\n\n\"use strict\";\nrequire(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore\");\nvar ReactNativePrivateInterface = require(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInterface\"),\n React = require(\"react\"),\n Scheduler = require(\"scheduler\");\nfunction invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\nvar hasError = !1,\n caughtError = null,\n hasRethrowError = !1,\n rethrowError = null,\n reporter = {\n onError: function(error) {\n hasError = !0;\n caughtError = error;\n }\n };\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = !1;\n caughtError = null;\n invokeGuardedCallbackImpl.apply(reporter, arguments);\n}\nfunction invokeGuardedCallbackAndCatchFirstError(\n name,\n func,\n context,\n a,\n b,\n c,\n d,\n e,\n f\n) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n if (hasError) {\n var error = caughtError;\n hasError = !1;\n caughtError = null;\n } else\n throw Error(\n \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\"\n );\n hasRethrowError || ((hasRethrowError = !0), (rethrowError = error));\n }\n}\nvar isArrayImpl = Array.isArray,\n getFiberCurrentPropsFromNode = null,\n getInstanceFromNode = null,\n getNodeFromInstance = null;\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || \"unknown-event\";\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, void 0, event);\n event.currentTarget = null;\n}\nfunction executeDirectDispatch(event) {\n var dispatchListener = event._dispatchListeners,\n dispatchInstance = event._dispatchInstances;\n if (isArrayImpl(dispatchListener))\n throw Error(\"executeDirectDispatch(...): Invalid `event`.\");\n event.currentTarget = dispatchListener\n ? getNodeFromInstance(dispatchInstance)\n : null;\n dispatchListener = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return dispatchListener;\n}\nvar assign = Object.assign;\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction SyntheticEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n) {\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n this._dispatchInstances = this._dispatchListeners = null;\n dispatchConfig = this.constructor.Interface;\n for (var propName in dispatchConfig)\n dispatchConfig.hasOwnProperty(propName) &&\n ((targetInst = dispatchConfig[propName])\n ? (this[propName] = targetInst(nativeEvent))\n : \"target\" === propName\n ? (this.target = nativeEventTarget)\n : (this[propName] = nativeEvent[propName]));\n this.isDefaultPrevented = (null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue)\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n}\nassign(SyntheticEvent.prototype, {\n preventDefault: function() {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble && (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function() {\n this.isPersistent = functionThatReturnsTrue;\n },\n isPersistent: functionThatReturnsFalse,\n destructor: function() {\n var Interface = this.constructor.Interface,\n propName;\n for (propName in Interface) this[propName] = null;\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\nSyntheticEvent.Interface = {\n type: null,\n target: null,\n currentTarget: function() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\nSyntheticEvent.extend = function(Interface) {\n function E() {}\n function Class() {\n return Super.apply(this, arguments);\n }\n var Super = this;\n E.prototype = Super.prototype;\n var prototype = new E();\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.extend = Super.extend;\n addEventPoolingTo(Class);\n return Class;\n};\naddEventPoolingTo(SyntheticEvent);\nfunction createOrGetPooledEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeInst\n) {\n if (this.eventPool.length) {\n var instance = this.eventPool.pop();\n this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new this(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\nfunction releasePooledEvent(event) {\n if (!(event instanceof this))\n throw Error(\n \"Trying to release an event instance into a pool of a different type.\"\n );\n event.destructor();\n 10 > this.eventPool.length && this.eventPool.push(event);\n}\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.getPooled = createOrGetPooledEvent;\n EventConstructor.eventPool = [];\n EventConstructor.release = releasePooledEvent;\n}\nvar ResponderSyntheticEvent = SyntheticEvent.extend({\n touchHistory: function() {\n return null;\n }\n});\nfunction isStartish(topLevelType) {\n return \"topTouchStart\" === topLevelType;\n}\nfunction isMoveish(topLevelType) {\n return \"topTouchMove\" === topLevelType;\n}\nvar startDependencies = [\"topTouchStart\"],\n moveDependencies = [\"topTouchMove\"],\n endDependencies = [\"topTouchCancel\", \"topTouchEnd\"],\n touchBank = [],\n touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\nfunction timestampForTouch(touch) {\n return touch.timeStamp || touch.timestamp;\n}\nfunction getTouchIdentifier(_ref) {\n _ref = _ref.identifier;\n if (null == _ref) throw Error(\"Touch object is missing identifier.\");\n return _ref;\n}\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch),\n touchRecord = touchBank[identifier];\n touchRecord\n ? ((touchRecord.touchActive = !0),\n (touchRecord.startPageX = touch.pageX),\n (touchRecord.startPageY = touch.pageY),\n (touchRecord.startTimeStamp = timestampForTouch(touch)),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchRecord.previousPageX = touch.pageX),\n (touchRecord.previousPageY = touch.pageY),\n (touchRecord.previousTimeStamp = timestampForTouch(touch)))\n : ((touchRecord = {\n touchActive: !0,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n }),\n (touchBank[identifier] = touchRecord));\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !0),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !1),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nvar instrumentationCallback,\n ResponderTouchHistoryStore = {\n instrument: function(callback) {\n instrumentationCallback = callback;\n },\n recordTouchTrack: function(topLevelType, nativeEvent) {\n null != instrumentationCallback &&\n instrumentationCallback(topLevelType, nativeEvent);\n if (isMoveish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchMove);\n else if (isStartish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchStart),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches &&\n (touchHistory.indexOfSingleActiveTouch =\n nativeEvent.touches[0].identifier);\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (\n (nativeEvent.changedTouches.forEach(recordTouchEnd),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches)\n )\n for (\n topLevelType = 0;\n topLevelType < touchBank.length;\n topLevelType++\n )\n if (\n ((nativeEvent = touchBank[topLevelType]),\n null != nativeEvent && nativeEvent.touchActive)\n ) {\n touchHistory.indexOfSingleActiveTouch = topLevelType;\n break;\n }\n },\n touchHistory: touchHistory\n };\nfunction accumulate(current, next) {\n if (null == next)\n throw Error(\n \"accumulate(...): Accumulated items must not be null or undefined.\"\n );\n return null == current\n ? next\n : isArrayImpl(current)\n ? current.concat(next)\n : isArrayImpl(next)\n ? [current].concat(next)\n : [current, next];\n}\nfunction accumulateInto(current, next) {\n if (null == next)\n throw Error(\n \"accumulateInto(...): Accumulated items must not be null or undefined.\"\n );\n if (null == current) return next;\n if (isArrayImpl(current)) {\n if (isArrayImpl(next)) return current.push.apply(current, next), current;\n current.push(next);\n return current;\n }\n return isArrayImpl(next) ? [current].concat(next) : [current, next];\n}\nfunction forEachAccumulated(arr, cb, scope) {\n Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr);\n}\nvar responderInst = null,\n trackedTouchCount = 0;\nfunction changeResponder(nextResponderInst, blockHostResponder) {\n var oldResponderInst = responderInst;\n responderInst = nextResponderInst;\n if (null !== ResponderEventPlugin.GlobalResponderHandler)\n ResponderEventPlugin.GlobalResponderHandler.onChange(\n oldResponderInst,\n nextResponderInst,\n blockHostResponder\n );\n}\nvar eventTypes = {\n startShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onStartShouldSetResponder\",\n captured: \"onStartShouldSetResponderCapture\"\n },\n dependencies: startDependencies\n },\n scrollShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onScrollShouldSetResponder\",\n captured: \"onScrollShouldSetResponderCapture\"\n },\n dependencies: [\"topScroll\"]\n },\n selectionChangeShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onSelectionChangeShouldSetResponder\",\n captured: \"onSelectionChangeShouldSetResponderCapture\"\n },\n dependencies: [\"topSelectionChange\"]\n },\n moveShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onMoveShouldSetResponder\",\n captured: \"onMoveShouldSetResponderCapture\"\n },\n dependencies: moveDependencies\n },\n responderStart: {\n registrationName: \"onResponderStart\",\n dependencies: startDependencies\n },\n responderMove: {\n registrationName: \"onResponderMove\",\n dependencies: moveDependencies\n },\n responderEnd: {\n registrationName: \"onResponderEnd\",\n dependencies: endDependencies\n },\n responderRelease: {\n registrationName: \"onResponderRelease\",\n dependencies: endDependencies\n },\n responderTerminationRequest: {\n registrationName: \"onResponderTerminationRequest\",\n dependencies: []\n },\n responderGrant: { registrationName: \"onResponderGrant\", dependencies: [] },\n responderReject: { registrationName: \"onResponderReject\", dependencies: [] },\n responderTerminate: {\n registrationName: \"onResponderTerminate\",\n dependencies: []\n }\n};\nfunction getParent(inst) {\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n return inst ? inst : null;\n}\nfunction traverseTwoPhase(inst, fn, arg) {\n for (var path = []; inst; ) path.push(inst), (inst = getParent(inst));\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction getListener(inst, registrationName) {\n inst = inst.stateNode;\n if (null === inst) return null;\n inst = getFiberCurrentPropsFromNode(inst);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n return inst;\n}\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (\n (phase = getListener(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase]\n ))\n )\n (event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n phase\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n ));\n}\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listener = getListener(inst, event.dispatchConfig.registrationName);\n listener &&\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listener\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n )));\n }\n }\n}\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n targetInst = targetInst ? getParent(targetInst) : null;\n traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event);\n }\n}\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n}\nvar ResponderEventPlugin = {\n _getResponder: function() {\n return responderInst;\n },\n eventTypes: eventTypes,\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (isStartish(topLevelType)) trackedTouchCount += 1;\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (0 <= trackedTouchCount) --trackedTouchCount;\n else return null;\n ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent);\n if (\n targetInst &&\n ((\"topScroll\" === topLevelType && !nativeEvent.responderIgnoreScroll) ||\n (0 < trackedTouchCount && \"topSelectionChange\" === topLevelType) ||\n isStartish(topLevelType) ||\n isMoveish(topLevelType))\n ) {\n var shouldSetEventType = isStartish(topLevelType)\n ? eventTypes.startShouldSetResponder\n : isMoveish(topLevelType)\n ? eventTypes.moveShouldSetResponder\n : \"topSelectionChange\" === topLevelType\n ? eventTypes.selectionChangeShouldSetResponder\n : eventTypes.scrollShouldSetResponder;\n if (responderInst)\n b: {\n var JSCompiler_temp = responderInst;\n for (\n var depthA = 0, tempA = JSCompiler_temp;\n tempA;\n tempA = getParent(tempA)\n )\n depthA++;\n tempA = 0;\n for (var tempB = targetInst; tempB; tempB = getParent(tempB))\n tempA++;\n for (; 0 < depthA - tempA; )\n (JSCompiler_temp = getParent(JSCompiler_temp)), depthA--;\n for (; 0 < tempA - depthA; )\n (targetInst = getParent(targetInst)), tempA--;\n for (; depthA--; ) {\n if (\n JSCompiler_temp === targetInst ||\n JSCompiler_temp === targetInst.alternate\n )\n break b;\n JSCompiler_temp = getParent(JSCompiler_temp);\n targetInst = getParent(targetInst);\n }\n JSCompiler_temp = null;\n }\n else JSCompiler_temp = targetInst;\n targetInst = JSCompiler_temp;\n JSCompiler_temp = targetInst === responderInst;\n shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory;\n JSCompiler_temp\n ? forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingleSkipTarget\n )\n : forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingle\n );\n b: {\n JSCompiler_temp = shouldSetEventType._dispatchListeners;\n targetInst = shouldSetEventType._dispatchInstances;\n if (isArrayImpl(JSCompiler_temp))\n for (\n depthA = 0;\n depthA < JSCompiler_temp.length &&\n !shouldSetEventType.isPropagationStopped();\n depthA++\n ) {\n if (\n JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])\n ) {\n JSCompiler_temp = targetInst[depthA];\n break b;\n }\n }\n else if (\n JSCompiler_temp &&\n JSCompiler_temp(shouldSetEventType, targetInst)\n ) {\n JSCompiler_temp = targetInst;\n break b;\n }\n JSCompiler_temp = null;\n }\n shouldSetEventType._dispatchInstances = null;\n shouldSetEventType._dispatchListeners = null;\n shouldSetEventType.isPersistent() ||\n shouldSetEventType.constructor.release(shouldSetEventType);\n if (JSCompiler_temp && JSCompiler_temp !== responderInst)\n if (\n ((shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderGrant,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (targetInst = !0 === executeDirectDispatch(shouldSetEventType)),\n responderInst)\n )\n if (\n ((depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminationRequest,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (depthA.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle),\n (tempA =\n !depthA._dispatchListeners || executeDirectDispatch(depthA)),\n depthA.isPersistent() || depthA.constructor.release(depthA),\n tempA)\n ) {\n depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminate,\n responderInst,\n nativeEvent,\n nativeEventTarget\n );\n depthA.touchHistory = ResponderTouchHistoryStore.touchHistory;\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle);\n var JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n [shouldSetEventType, depthA]\n );\n changeResponder(JSCompiler_temp, targetInst);\n } else\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderReject,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n else\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n )),\n changeResponder(JSCompiler_temp, targetInst);\n else JSCompiler_temp$jscomp$0 = null;\n } else JSCompiler_temp$jscomp$0 = null;\n shouldSetEventType = responderInst && isStartish(topLevelType);\n JSCompiler_temp = responderInst && isMoveish(topLevelType);\n targetInst =\n responderInst &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType);\n if (\n (shouldSetEventType = shouldSetEventType\n ? eventTypes.responderStart\n : JSCompiler_temp\n ? eventTypes.responderMove\n : targetInst\n ? eventTypes.responderEnd\n : null)\n )\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n shouldSetEventType = responderInst && \"topTouchCancel\" === topLevelType;\n if (\n (topLevelType =\n responderInst &&\n !shouldSetEventType &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType))\n )\n a: {\n if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length)\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < topLevelType.length;\n JSCompiler_temp++\n )\n if (\n ((targetInst = topLevelType[JSCompiler_temp].target),\n null !== targetInst &&\n void 0 !== targetInst &&\n 0 !== targetInst)\n ) {\n depthA = getInstanceFromNode(targetInst);\n b: {\n for (targetInst = responderInst; depthA; ) {\n if (\n targetInst === depthA ||\n targetInst === depthA.alternate\n ) {\n targetInst = !0;\n break b;\n }\n depthA = getParent(depthA);\n }\n targetInst = !1;\n }\n if (targetInst) {\n topLevelType = !1;\n break a;\n }\n }\n topLevelType = !0;\n }\n if (\n (topLevelType = shouldSetEventType\n ? eventTypes.responderTerminate\n : topLevelType\n ? eventTypes.responderRelease\n : null)\n )\n (nativeEvent = ResponderSyntheticEvent.getPooled(\n topLevelType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n nativeEvent\n )),\n changeResponder(null);\n return JSCompiler_temp$jscomp$0;\n },\n GlobalResponderHandler: null,\n injection: {\n injectGlobalResponderHandler: function(GlobalResponderHandler) {\n ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;\n }\n }\n },\n eventPluginOrder = null,\n namesToPlugins = {};\nfunction recomputePluginOrdering() {\n if (eventPluginOrder)\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName],\n pluginIndex = eventPluginOrder.indexOf(pluginName);\n if (-1 >= pluginIndex)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" +\n (pluginName + \"`.\")\n );\n if (!plugins[pluginIndex]) {\n if (!pluginModule.extractEvents)\n throw Error(\n \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" +\n (pluginName + \"` does not.\")\n );\n plugins[pluginIndex] = pluginModule;\n pluginIndex = pluginModule.eventTypes;\n for (var eventName in pluginIndex) {\n var JSCompiler_inline_result = void 0;\n var dispatchConfig = pluginIndex[eventName],\n eventName$jscomp$0 = eventName;\n if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0))\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" +\n (eventName$jscomp$0 + \"`.\")\n );\n eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (JSCompiler_inline_result in phasedRegistrationNames)\n phasedRegistrationNames.hasOwnProperty(\n JSCompiler_inline_result\n ) &&\n publishRegistrationName(\n phasedRegistrationNames[JSCompiler_inline_result],\n pluginModule,\n eventName$jscomp$0\n );\n JSCompiler_inline_result = !0;\n } else\n dispatchConfig.registrationName\n ? (publishRegistrationName(\n dispatchConfig.registrationName,\n pluginModule,\n eventName$jscomp$0\n ),\n (JSCompiler_inline_result = !0))\n : (JSCompiler_inline_result = !1);\n if (!JSCompiler_inline_result)\n throw Error(\n \"EventPluginRegistry: Failed to publish event `\" +\n eventName +\n \"` for plugin `\" +\n pluginName +\n \"`.\"\n );\n }\n }\n }\n}\nfunction publishRegistrationName(registrationName, pluginModule) {\n if (registrationNameModules[registrationName])\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" +\n (registrationName + \"`.\")\n );\n registrationNameModules[registrationName] = pluginModule;\n}\nvar plugins = [],\n eventNameDispatchConfigs = {},\n registrationNameModules = {};\nfunction getListeners(\n inst,\n registrationName,\n phase,\n dispatchToImperativeListeners\n) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n inst = getFiberCurrentPropsFromNode(stateNode);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n if (\n !(\n dispatchToImperativeListeners &&\n stateNode.canonical &&\n stateNode.canonical._eventListeners\n )\n )\n return inst;\n var listeners = [];\n inst && listeners.push(inst);\n var requestedPhaseIsCapture = \"captured\" === phase,\n mangledImperativeRegistrationName = requestedPhaseIsCapture\n ? \"rn:\" + registrationName.replace(/Capture$/, \"\")\n : \"rn:\" + registrationName;\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName] &&\n 0 <\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName]\n .length &&\n stateNode.canonical._eventListeners[\n mangledImperativeRegistrationName\n ].forEach(function(listenerObj) {\n if (\n (null != listenerObj.options.capture && listenerObj.options.capture) ===\n requestedPhaseIsCapture\n ) {\n var listenerFnWrapper = function(syntheticEvent) {\n var eventInst = new ReactNativePrivateInterface.CustomEvent(\n mangledImperativeRegistrationName,\n { detail: syntheticEvent.nativeEvent }\n );\n eventInst.isTrusted = !0;\n eventInst.setSyntheticEvent(syntheticEvent);\n for (\n var _len = arguments.length,\n args = Array(1 < _len ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n )\n args[_key - 1] = arguments[_key];\n listenerObj.listener.apply(listenerObj, [eventInst].concat(args));\n };\n listenerObj.options.once\n ? listeners.push(function() {\n stateNode.canonical.removeEventListener_unstable(\n mangledImperativeRegistrationName,\n listenerObj.listener,\n listenerObj.capture\n );\n listenerObj.invalidated ||\n ((listenerObj.invalidated = !0),\n listenerObj.listener.apply(listenerObj, arguments));\n })\n : listeners.push(listenerFnWrapper);\n }\n });\n return 0 === listeners.length\n ? null\n : 1 === listeners.length\n ? listeners[0]\n : listeners;\n}\nvar customBubblingEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customBubblingEventTypes,\n customDirectEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customDirectEventTypes;\nfunction accumulateListenersAndInstances(inst, event, listeners) {\n var listenersLength = listeners\n ? isArrayImpl(listeners)\n ? listeners.length\n : 1\n : 0;\n if (0 < listenersLength)\n if (\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listeners\n )),\n null == event._dispatchInstances && 1 === listenersLength)\n )\n event._dispatchInstances = inst;\n else\n for (\n event._dispatchInstances = event._dispatchInstances || [],\n isArrayImpl(event._dispatchInstances) ||\n (event._dispatchInstances = [event._dispatchInstances]),\n listeners = 0;\n listeners < listenersLength;\n listeners++\n )\n event._dispatchInstances.push(inst);\n}\nfunction accumulateDirectionalDispatches$1(inst, phase, event) {\n phase = getListeners(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase],\n phase,\n !0\n );\n accumulateListenersAndInstances(inst, event, phase);\n}\nfunction traverseTwoPhase$1(inst, fn, arg, skipBubbling) {\n for (var path = []; inst; ) {\n path.push(inst);\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n inst = inst ? inst : null;\n }\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n if (skipBubbling) fn(path[0], \"bubbled\", arg);\n else\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction accumulateTwoPhaseDispatchesSingle$1(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n event._targetInst,\n accumulateDirectionalDispatches$1,\n event,\n !1\n );\n}\nfunction accumulateDirectDispatchesSingle$1(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listeners = getListeners(\n inst,\n event.dispatchConfig.registrationName,\n \"bubbled\",\n !1\n );\n accumulateListenersAndInstances(inst, event, listeners);\n }\n }\n}\nif (eventPluginOrder)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\"\n );\neventPluginOrder = Array.prototype.slice.call([\n \"ResponderEventPlugin\",\n \"ReactNativeBridgeEventPlugin\"\n]);\nrecomputePluginOrdering();\nvar injectedNamesToPlugins$jscomp$inline_229 = {\n ResponderEventPlugin: ResponderEventPlugin,\n ReactNativeBridgeEventPlugin: {\n eventTypes: {},\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (null == targetInst) return null;\n var bubbleDispatchConfig = customBubblingEventTypes[topLevelType],\n directDispatchConfig = customDirectEventTypes[topLevelType];\n if (!bubbleDispatchConfig && !directDispatchConfig)\n throw Error(\n 'Unsupported top level event type \"' + topLevelType + '\" dispatched'\n );\n topLevelType = SyntheticEvent.getPooled(\n bubbleDispatchConfig || directDispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n if (bubbleDispatchConfig)\n null != topLevelType &&\n null != topLevelType.dispatchConfig.phasedRegistrationNames &&\n topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling\n ? topLevelType &&\n topLevelType.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n topLevelType._targetInst,\n accumulateDirectionalDispatches$1,\n topLevelType,\n !0\n )\n : forEachAccumulated(\n topLevelType,\n accumulateTwoPhaseDispatchesSingle$1\n );\n else if (directDispatchConfig)\n forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);\n else return null;\n return topLevelType;\n }\n }\n },\n isOrderingDirty$jscomp$inline_230 = !1,\n pluginName$jscomp$inline_231;\nfor (pluginName$jscomp$inline_231 in injectedNamesToPlugins$jscomp$inline_229)\n if (\n injectedNamesToPlugins$jscomp$inline_229.hasOwnProperty(\n pluginName$jscomp$inline_231\n )\n ) {\n var pluginModule$jscomp$inline_232 =\n injectedNamesToPlugins$jscomp$inline_229[pluginName$jscomp$inline_231];\n if (\n !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_231) ||\n namesToPlugins[pluginName$jscomp$inline_231] !==\n pluginModule$jscomp$inline_232\n ) {\n if (namesToPlugins[pluginName$jscomp$inline_231])\n throw Error(\n \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" +\n (pluginName$jscomp$inline_231 + \"`.\")\n );\n namesToPlugins[\n pluginName$jscomp$inline_231\n ] = pluginModule$jscomp$inline_232;\n isOrderingDirty$jscomp$inline_230 = !0;\n }\n }\nisOrderingDirty$jscomp$inline_230 && recomputePluginOrdering();\nvar instanceCache = new Map(),\n instanceProps = new Map();\nfunction getInstanceFromTag(tag) {\n return instanceCache.get(tag) || null;\n}\nfunction batchedUpdatesImpl(fn, bookkeeping) {\n return fn(bookkeeping);\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) return fn(bookkeeping);\n isInsideEventHandler = !0;\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = !1;\n }\n}\nvar eventQueue = null;\nfunction executeDispatchesAndReleaseTopLevel(e) {\n if (e) {\n var dispatchListeners = e._dispatchListeners,\n dispatchInstances = e._dispatchInstances;\n if (isArrayImpl(dispatchListeners))\n for (\n var i = 0;\n i < dispatchListeners.length && !e.isPropagationStopped();\n i++\n )\n executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);\n else\n dispatchListeners &&\n executeDispatch(e, dispatchListeners, dispatchInstances);\n e._dispatchListeners = null;\n e._dispatchInstances = null;\n e.isPersistent() || e.constructor.release(e);\n }\n}\nvar EMPTY_NATIVE_EVENT = {};\nfunction _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam) {\n var nativeEvent = nativeEventParam || EMPTY_NATIVE_EVENT,\n inst = getInstanceFromTag(rootNodeID),\n target = null;\n null != inst && (target = inst.stateNode);\n batchedUpdates(function() {\n var JSCompiler_inline_result = target;\n for (\n var events = null, legacyPlugins = plugins, i = 0;\n i < legacyPlugins.length;\n i++\n ) {\n var possiblePlugin = legacyPlugins[i];\n possiblePlugin &&\n (possiblePlugin = possiblePlugin.extractEvents(\n topLevelType,\n inst,\n nativeEvent,\n JSCompiler_inline_result\n )) &&\n (events = accumulateInto(events, possiblePlugin));\n }\n JSCompiler_inline_result = events;\n null !== JSCompiler_inline_result &&\n (eventQueue = accumulateInto(eventQueue, JSCompiler_inline_result));\n JSCompiler_inline_result = eventQueue;\n eventQueue = null;\n if (JSCompiler_inline_result) {\n forEachAccumulated(\n JSCompiler_inline_result,\n executeDispatchesAndReleaseTopLevel\n );\n if (eventQueue)\n throw Error(\n \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\"\n );\n if (hasRethrowError)\n throw ((JSCompiler_inline_result = rethrowError),\n (hasRethrowError = !1),\n (rethrowError = null),\n JSCompiler_inline_result);\n }\n });\n}\nReactNativePrivateInterface.RCTEventEmitter.register({\n receiveEvent: function(rootNodeID, topLevelType, nativeEventParam) {\n _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam);\n },\n receiveTouches: function(eventTopLevelType, touches, changedIndices) {\n if (\n \"topTouchEnd\" === eventTopLevelType ||\n \"topTouchCancel\" === eventTopLevelType\n ) {\n var JSCompiler_temp = [];\n for (var i = 0; i < changedIndices.length; i++) {\n var index$0 = changedIndices[i];\n JSCompiler_temp.push(touches[index$0]);\n touches[index$0] = null;\n }\n for (i = changedIndices = 0; i < touches.length; i++)\n (index$0 = touches[i]),\n null !== index$0 && (touches[changedIndices++] = index$0);\n touches.length = changedIndices;\n } else\n for (JSCompiler_temp = [], i = 0; i < changedIndices.length; i++)\n JSCompiler_temp.push(touches[changedIndices[i]]);\n for (\n changedIndices = 0;\n changedIndices < JSCompiler_temp.length;\n changedIndices++\n ) {\n i = JSCompiler_temp[changedIndices];\n i.changedTouches = JSCompiler_temp;\n i.touches = touches;\n index$0 = null;\n var target = i.target;\n null === target || void 0 === target || 1 > target || (index$0 = target);\n _receiveRootNodeIDEvent(index$0, eventTopLevelType, i);\n }\n }\n});\ngetFiberCurrentPropsFromNode = function(stateNode) {\n return instanceProps.get(stateNode._nativeTag) || null;\n};\ngetInstanceFromNode = getInstanceFromTag;\ngetNodeFromInstance = function(inst) {\n inst = inst.stateNode;\n var tag = inst._nativeTag;\n void 0 === tag && ((inst = inst.canonical), (tag = inst._nativeTag));\n if (!tag) throw Error(\"All native instances should have a tag.\");\n return inst;\n};\nResponderEventPlugin.injection.injectGlobalResponderHandler({\n onChange: function(from, to, blockNativeResponder) {\n null !== to\n ? ReactNativePrivateInterface.UIManager.setJSResponder(\n to.stateNode._nativeTag,\n blockNativeResponder\n )\n : ReactNativePrivateInterface.UIManager.clearJSResponder();\n }\n});\nvar ReactSharedInternals =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.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_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\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\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar 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}\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nfunction getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (type.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n }\n return null;\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$1 = parentA.child; child$1; ) {\n if (child$1 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$1 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$1 = child$1.sibling;\n }\n if (!didFindChild) {\n for (child$1 = parentB.child; child$1; ) {\n if (child$1 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$1 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$1 = child$1.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiber(parent) {\n parent = findCurrentFiberUsingSlowPath(parent);\n return null !== parent ? findCurrentHostFiberImpl(parent) : null;\n}\nfunction findCurrentHostFiberImpl(node) {\n if (5 === node.tag || 6 === node.tag) return node;\n for (node = node.child; null !== node; ) {\n var match = findCurrentHostFiberImpl(node);\n if (null !== match) return match;\n node = node.sibling;\n }\n return null;\n}\nvar emptyObject = {},\n removedKeys = null,\n removedKeyCount = 0,\n deepDifferOptions = { unsafelyIgnoreFunctions: !0 };\nfunction defaultDiffer(prevProp, nextProp) {\n return \"object\" !== typeof nextProp || null === nextProp\n ? !0\n : ReactNativePrivateInterface.deepDiffer(\n prevProp,\n nextProp,\n deepDifferOptions\n );\n}\nfunction restoreDeletedValuesInNestedArray(\n updatePayload,\n node,\n validAttributes\n) {\n if (isArrayImpl(node))\n for (var i = node.length; i-- && 0 < removedKeyCount; )\n restoreDeletedValuesInNestedArray(\n updatePayload,\n node[i],\n validAttributes\n );\n else if (node && 0 < removedKeyCount)\n for (i in removedKeys)\n if (removedKeys[i]) {\n var nextProp = node[i];\n if (void 0 !== nextProp) {\n var attributeConfig = validAttributes[i];\n if (attributeConfig) {\n \"function\" === typeof nextProp && (nextProp = !0);\n \"undefined\" === typeof nextProp && (nextProp = null);\n if (\"object\" !== typeof attributeConfig)\n updatePayload[i] = nextProp;\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (nextProp =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[i] = nextProp);\n removedKeys[i] = !1;\n removedKeyCount--;\n }\n }\n }\n}\nfunction diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n validAttributes\n) {\n if (!updatePayload && prevProp === nextProp) return updatePayload;\n if (!prevProp || !nextProp)\n return nextProp\n ? addNestedProperty(updatePayload, nextProp, validAttributes)\n : prevProp\n ? clearNestedProperty(updatePayload, prevProp, validAttributes)\n : updatePayload;\n if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp))\n return diffProperties(updatePayload, prevProp, nextProp, validAttributes);\n if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) {\n var minLength =\n prevProp.length < nextProp.length ? prevProp.length : nextProp.length,\n i;\n for (i = 0; i < minLength; i++)\n updatePayload = diffNestedProperty(\n updatePayload,\n prevProp[i],\n nextProp[i],\n validAttributes\n );\n for (; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n for (; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n }\n return isArrayImpl(prevProp)\n ? diffProperties(\n updatePayload,\n ReactNativePrivateInterface.flattenStyle(prevProp),\n nextProp,\n validAttributes\n )\n : diffProperties(\n updatePayload,\n prevProp,\n ReactNativePrivateInterface.flattenStyle(nextProp),\n validAttributes\n );\n}\nfunction addNestedProperty(updatePayload, nextProp, validAttributes) {\n if (!nextProp) return updatePayload;\n if (!isArrayImpl(nextProp))\n return diffProperties(\n updatePayload,\n emptyObject,\n nextProp,\n validAttributes\n );\n for (var i = 0; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction clearNestedProperty(updatePayload, prevProp, validAttributes) {\n if (!prevProp) return updatePayload;\n if (!isArrayImpl(prevProp))\n return diffProperties(\n updatePayload,\n prevProp,\n emptyObject,\n validAttributes\n );\n for (var i = 0; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction diffProperties(updatePayload, prevProps, nextProps, validAttributes) {\n var attributeConfig, propKey;\n for (propKey in nextProps)\n if ((attributeConfig = validAttributes[propKey])) {\n var prevProp = prevProps[propKey];\n var nextProp = nextProps[propKey];\n \"function\" === typeof nextProp &&\n ((nextProp = !0), \"function\" === typeof prevProp && (prevProp = !0));\n \"undefined\" === typeof nextProp &&\n ((nextProp = null),\n \"undefined\" === typeof prevProp && (prevProp = null));\n removedKeys && (removedKeys[propKey] = !1);\n if (updatePayload && void 0 !== updatePayload[propKey])\n if (\"object\" !== typeof attributeConfig)\n updatePayload[propKey] = nextProp;\n else {\n if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[propKey] = attributeConfig);\n }\n else if (prevProp !== nextProp)\n if (\"object\" !== typeof attributeConfig)\n defaultDiffer(prevProp, nextProp) &&\n ((updatePayload || (updatePayload = {}))[propKey] = nextProp);\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ) {\n if (\n void 0 === prevProp ||\n (\"function\" === typeof attributeConfig.diff\n ? attributeConfig.diff(prevProp, nextProp)\n : defaultDiffer(prevProp, nextProp))\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n ((updatePayload || (updatePayload = {}))[\n propKey\n ] = attributeConfig);\n } else\n (removedKeys = null),\n (removedKeyCount = 0),\n (updatePayload = diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n attributeConfig\n )),\n 0 < removedKeyCount &&\n updatePayload &&\n (restoreDeletedValuesInNestedArray(\n updatePayload,\n nextProp,\n attributeConfig\n ),\n (removedKeys = null));\n }\n for (var propKey$3 in prevProps)\n void 0 === nextProps[propKey$3] &&\n (!(attributeConfig = validAttributes[propKey$3]) ||\n (updatePayload && void 0 !== updatePayload[propKey$3]) ||\n ((prevProp = prevProps[propKey$3]),\n void 0 !== prevProp &&\n (\"object\" !== typeof attributeConfig ||\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ? (((updatePayload || (updatePayload = {}))[propKey$3] = null),\n removedKeys || (removedKeys = {}),\n removedKeys[propKey$3] ||\n ((removedKeys[propKey$3] = !0), removedKeyCount++))\n : (updatePayload = clearNestedProperty(\n updatePayload,\n prevProp,\n attributeConfig\n )))));\n return updatePayload;\n}\nfunction mountSafeCallback_NOT_REALLY_SAFE(context, callback) {\n return function() {\n if (\n callback &&\n (\"boolean\" !== typeof context.__isMounted || context.__isMounted)\n )\n return callback.apply(context, arguments);\n };\n}\nvar ReactNativeFiberHostComponent = (function() {\n function ReactNativeFiberHostComponent(tag, viewConfig) {\n this._nativeTag = tag;\n this._children = [];\n this.viewConfig = viewConfig;\n }\n var _proto = ReactNativeFiberHostComponent.prototype;\n _proto.blur = function() {\n ReactNativePrivateInterface.TextInputState.blurTextInput(this);\n };\n _proto.focus = function() {\n ReactNativePrivateInterface.TextInputState.focusTextInput(this);\n };\n _proto.measure = function(callback) {\n ReactNativePrivateInterface.UIManager.measure(\n this._nativeTag,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureInWindow = function(callback) {\n ReactNativePrivateInterface.UIManager.measureInWindow(\n this._nativeTag,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureLayout = function(relativeToNativeNode, onSuccess, onFail) {\n if (\"number\" === typeof relativeToNativeNode)\n var relativeNode = relativeToNativeNode;\n else\n relativeToNativeNode._nativeTag &&\n (relativeNode = relativeToNativeNode._nativeTag);\n null != relativeNode &&\n ReactNativePrivateInterface.UIManager.measureLayout(\n this._nativeTag,\n relativeNode,\n mountSafeCallback_NOT_REALLY_SAFE(this, onFail),\n mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)\n );\n };\n _proto.setNativeProps = function(nativeProps) {\n nativeProps = diffProperties(\n null,\n emptyObject,\n nativeProps,\n this.viewConfig.validAttributes\n );\n null != nativeProps &&\n ReactNativePrivateInterface.UIManager.updateView(\n this._nativeTag,\n this.viewConfig.uiViewClassName,\n nativeProps\n );\n };\n return ReactNativeFiberHostComponent;\n })(),\n scheduleCallback = Scheduler.unstable_scheduleCallback,\n cancelCallback = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority = Scheduler.unstable_NormalPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 64,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return lanes & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n nonIdlePendingLanes = pendingLanes & 268435455;\n if (0 !== nonIdlePendingLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n 0 !== nonIdleUnblockedLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes)));\n } else\n (nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes));\n if (0 === nextLanes) return 0;\n if (\n 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (pingedLanes = wipLanes & -wipLanes),\n suspendedLanes >= pingedLanes ||\n (16 === suspendedLanes && 0 !== (pingedLanes & 4194240)))\n )\n return wipLanes;\n 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16);\n wipLanes = root.entangledLanes;\n if (0 !== wipLanes)\n for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes; )\n (pendingLanes = 31 - clz32(wipLanes)),\n (suspendedLanes = 1 << pendingLanes),\n (nextLanes |= root[pendingLanes]),\n (wipLanes &= ~suspendedLanes);\n return nextLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n return currentTime + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n root = root.pendingLanes & -1073741825;\n return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane;\n 536870912 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0));\n root = root.eventTimes;\n updateLane = 31 - clz32(updateLane);\n root[updateLane] = eventTime;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n remainingLanes = root.entanglements;\n var eventTimes = root.eventTimes;\n for (root = root.expirationTimes; 0 < noLongerPendingLanes; ) {\n var index$8 = 31 - clz32(noLongerPendingLanes),\n lane = 1 << index$8;\n remainingLanes[index$8] = 0;\n eventTimes[index$8] = -1;\n root[index$8] = -1;\n noLongerPendingLanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$9 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$9;\n (lane & entangledLanes) | (root[index$9] & entangledLanes) &&\n (root[index$9] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nvar currentUpdatePriority = 0;\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 1 < lanes\n ? 4 < lanes\n ? 0 !== (lanes & 268435455)\n ? 16\n : 536870912\n : 4\n : 1;\n}\nfunction shim() {\n throw Error(\n \"The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nvar getViewConfigForType =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,\n UPDATE_SIGNAL = {},\n nextReactTag = 3;\nfunction allocateTag() {\n var tag = nextReactTag;\n 1 === tag % 10 && (tag += 2);\n nextReactTag = tag + 2;\n return tag;\n}\nfunction recursivelyUncacheFiberNode(node) {\n if (\"number\" === typeof node)\n instanceCache.delete(node), instanceProps.delete(node);\n else {\n var tag = node._nativeTag;\n instanceCache.delete(tag);\n instanceProps.delete(tag);\n node._children.forEach(recursivelyUncacheFiberNode);\n }\n}\nfunction finalizeInitialChildren(parentInstance) {\n if (0 === parentInstance._children.length) return !1;\n var nativeTags = parentInstance._children.map(function(child) {\n return \"number\" === typeof child ? child : child._nativeTag;\n });\n ReactNativePrivateInterface.UIManager.setChildren(\n parentInstance._nativeTag,\n nativeTags\n );\n return !1;\n}\nvar scheduleTimeout = setTimeout,\n cancelTimeout = clearTimeout;\nfunction describeComponentFrame(name, source, ownerName) {\n source = \"\";\n ownerName && (source = \" (created by \" + ownerName + \")\");\n return \"\\n in \" + (name || \"Unknown\") + source;\n}\nfunction describeFunctionComponentFrame(fn, source) {\n return fn\n ? describeComponentFrame(fn.displayName || fn.name || null, source, null)\n : \"\";\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar emptyContextObject = {},\n contextStackCursor = createCursor(emptyContextObject),\n didPerformWorkStackCursor = createCursor(!1),\n previousContext = emptyContextObject;\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var contextTypes = workInProgress.type.contextTypes;\n if (!contextTypes) return emptyContextObject;\n var instance = workInProgress.stateNode;\n if (\n instance &&\n instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext\n )\n return instance.__reactInternalMemoizedMaskedChildContext;\n var context = {},\n key;\n for (key in contextTypes) context[key] = unmaskedContext[key];\n instance &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return context;\n}\nfunction isContextProvider(type) {\n type = type.childContextTypes;\n return null !== type && void 0 !== type;\n}\nfunction popContext() {\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n}\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n if (contextStackCursor.current !== emptyContextObject)\n throw Error(\n \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\"\n );\n push(contextStackCursor, context);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction processChildContext(fiber, type, parentContext) {\n var instance = fiber.stateNode;\n type = type.childContextTypes;\n if (\"function\" !== typeof instance.getChildContext) return parentContext;\n instance = instance.getChildContext();\n for (var contextKey in instance)\n if (!(contextKey in type))\n throw Error(\n (getComponentNameFromFiber(fiber) || \"Unknown\") +\n '.getChildContext(): key \"' +\n contextKey +\n '\" is not defined in childContextTypes.'\n );\n return assign({}, parentContext, instance);\n}\nfunction pushContextProvider(workInProgress) {\n workInProgress =\n ((workInProgress = workInProgress.stateNode) &&\n workInProgress.__reactInternalMemoizedMergedChildContext) ||\n emptyContextObject;\n previousContext = contextStackCursor.current;\n push(contextStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current);\n return !0;\n}\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n var instance = workInProgress.stateNode;\n if (!instance)\n throw Error(\n \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didChange\n ? ((workInProgress = processChildContext(\n workInProgress,\n type,\n previousContext\n )),\n (instance.__reactInternalMemoizedMergedChildContext = workInProgress),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n push(contextStackCursor, workInProgress))\n : pop(didPerformWorkStackCursor);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n syncQueue = null,\n includesLegacySyncCallbacks = !1,\n isFlushingSyncQueue = !1;\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && null !== syncQueue) {\n isFlushingSyncQueue = !0;\n var i = 0,\n previousUpdatePriority = currentUpdatePriority;\n try {\n var queue = syncQueue;\n for (currentUpdatePriority = 1; i < queue.length; i++) {\n var callback = queue[i];\n do callback = callback(!0);\n while (null !== callback);\n }\n syncQueue = null;\n includesLegacySyncCallbacks = !1;\n } catch (error) {\n throw (null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n error);\n } finally {\n (currentUpdatePriority = previousUpdatePriority),\n (isFlushingSyncQueue = !1);\n }\n }\n return null;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null;\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n --forkStackIndex,\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null);\n}\nvar hydrationErrors = null,\n ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n return describeComponentFrame(fiber.type, null, null);\n case 16:\n return describeComponentFrame(\"Lazy\", null, null);\n case 13:\n return describeComponentFrame(\"Suspense\", null, null);\n case 19:\n return describeComponentFrame(\"SuspenseList\", null, null);\n case 0:\n case 2:\n case 15:\n return describeFunctionComponentFrame(fiber.type, null);\n case 11:\n return describeFunctionComponentFrame(fiber.type.render, null);\n case 1:\n return (fiber = describeFunctionComponentFrame(fiber.type, null)), fiber;\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n baseProps = assign({}, baseProps);\n Component = Component.defaultProps;\n for (var propName in Component)\n void 0 === baseProps[propName] &&\n (baseProps[propName] = Component[propName]);\n return baseProps;\n }\n return baseProps;\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null,\n lastFullyObservedContext = null;\nfunction resetContextDependencies() {\n lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null;\n}\nfunction popProvider(context) {\n var currentValue = valueCursor.current;\n pop(valueCursor);\n context._currentValue = currentValue;\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastFullyObservedContext = lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress &&\n null !== workInProgress.firstContext &&\n (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = !0),\n (workInProgress.firstContext = null));\n}\nfunction readContext(context) {\n var value = context._currentValue;\n if (lastFullyObservedContext !== context)\n if (\n ((context = { context: context, memoizedValue: value, next: null }),\n null === lastContextDependency)\n ) {\n if (null === currentlyRenderingFiber)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n currentlyRenderingFiber.dependencies = {\n lanes: 0,\n firstContext: context\n };\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n null === concurrentQueues\n ? (concurrentQueues = [queue])\n : concurrentQueues.push(queue);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n alternate = sourceFiber;\n for (sourceFiber = sourceFiber.return; null !== sourceFiber; )\n (sourceFiber.childLanes |= lane),\n (alternate = sourceFiber.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n (alternate = sourceFiber),\n (sourceFiber = sourceFiber.return);\n return 3 === alternate.tag ? alternate.stateNode : null;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, interleaved: null, lanes: 0 },\n effects: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n effects: current.effects\n });\n}\nfunction createUpdate(eventTime, lane) {\n return {\n eventTime: eventTime,\n lane: lane,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n }\n pending = updateQueue.interleaved;\n null === pending\n ? ((update.next = update), pushConcurrentUpdateQueue(updateQueue))\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194240))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n eventTime: queue.eventTime,\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: queue.callback,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n effects: current.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance,\n renderLanes\n) {\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane,\n updateEventTime = pendingQueue.eventTime;\n if ((renderLanes & updateLane) === updateLane) {\n null !== current &&\n (current = current.next = {\n eventTime: updateEventTime,\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n updateEventTime = instance;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(\n updateEventTime,\n newState,\n updateLane\n );\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(updateEventTime, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n null !== pendingQueue.callback &&\n 0 !== pendingQueue.lane &&\n ((workInProgress$jscomp$0.flags |= 64),\n (updateLane = queue.effects),\n null === updateLane\n ? (queue.effects = [pendingQueue])\n : updateLane.push(pendingQueue));\n } else\n (updateEventTime = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = updateEventTime),\n (lastPendingUpdate = newState))\n : (current = current.next = updateEventTime),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (updateLane = pendingQueue),\n (pendingQueue = updateLane.next),\n (updateLane.next = null),\n (queue.lastBaseUpdate = updateLane),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n props = queue.shared.interleaved;\n if (null !== props) {\n queue = props;\n do (lastBaseUpdate |= queue.lane), (queue = queue.next);\n while (queue !== props);\n } else null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n finishedWork = finishedQueue.effects;\n finishedQueue.effects = null;\n if (null !== finishedWork)\n for (\n finishedQueue = 0;\n finishedQueue < finishedWork.length;\n finishedQueue++\n ) {\n var effect = finishedWork[finishedQueue],\n callback = effect.callback;\n if (null !== callback) {\n effect.callback = null;\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(instance);\n }\n }\n}\nvar emptyRefsObject = new React.Component().refs;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function(component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function(inst, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane, eventTime),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = !1,\n unmaskedContext = emptyContextObject;\n var context = ctor.contextType;\n \"object\" === typeof context && null !== context\n ? (context = readContext(context))\n : ((unmaskedContext = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (isLegacyContextConsumer = ctor.contextTypes),\n (context = (isLegacyContextConsumer =\n null !== isLegacyContextConsumer && void 0 !== isLegacyContextConsumer)\n ? getMaskedContext(workInProgress, unmaskedContext)\n : emptyContextObject));\n ctor = new ctor(props, context);\n workInProgress.memoizedState =\n null !== ctor.state && void 0 !== ctor.state ? ctor.state : null;\n ctor.updater = classComponentUpdater;\n workInProgress.stateNode = ctor;\n ctor._reactInternals = workInProgress;\n isLegacyContextConsumer &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return ctor;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (instance.context = readContext(contextType))\n : ((contextType = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (instance.context = getMaskedContext(workInProgress, contextType)));\n instance.state = workInProgress.memoizedState;\n contextType = ctor.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof ctor.getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n ((ctor = instance.state),\n \"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount(),\n ctor !== instance.state &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null),\n processUpdateQueue(workInProgress, newProps, instance, renderLanes),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4);\n}\nfunction coerceRef(returnFiber, current, element) {\n returnFiber = element.ref;\n if (\n null !== returnFiber &&\n \"function\" !== typeof returnFiber &&\n \"object\" !== typeof returnFiber\n ) {\n if (element._owner) {\n element = element._owner;\n if (element) {\n if (1 !== element.tag)\n throw Error(\n \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\"\n );\n var inst = element.stateNode;\n }\n if (!inst)\n throw Error(\n \"Missing owner for string ref \" +\n returnFiber +\n \". This error is likely caused by a bug in React. Please file an issue.\"\n );\n var resolvedInst = inst,\n stringRef = \"\" + returnFiber;\n if (\n null !== current &&\n null !== current.ref &&\n \"function\" === typeof current.ref &&\n current.ref._stringRef === stringRef\n )\n return current.ref;\n current = function(value) {\n var refs = resolvedInst.refs;\n refs === emptyRefsObject && (refs = resolvedInst.refs = {});\n null === value ? delete refs[stringRef] : (refs[stringRef] = value);\n };\n current._stringRef = stringRef;\n return current;\n }\n if (\"string\" !== typeof returnFiber)\n throw Error(\n \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\"\n );\n if (!element._owner)\n throw Error(\n \"Element ref was specified as a string (\" +\n returnFiber +\n \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\"\n );\n }\n return returnFiber;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n for (returnFiber = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? returnFiber.set(currentFirstChild.key, currentFirstChild)\n : returnFiber.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return returnFiber;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 2;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 2);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (lanes = useFiber(current, element.props)),\n (lanes.ref = coerceRef(returnFiber, current, element)),\n (lanes.return = returnFiber),\n lanes\n );\n lanes = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n lanes.ref = coerceRef(returnFiber, current, element);\n lanes.return = returnFiber;\n return lanes;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(returnFiber, null, newChild)),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return createChild(returnFiber, init(newChild._payload), lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n init(newChild._payload),\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildrenIterable,\n lanes\n ) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n if (\"function\" !== typeof iteratorFn)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n newChildrenIterable = iteratorFn.call(newChildrenIterable);\n if (null == newChildrenIterable)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var previousNewFiber = (iteratorFn = null),\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildrenIterable.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildrenIterable.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (iteratorFn = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn;\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildrenIterable.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n return iteratorFn;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n !step.done;\n newIdx++, step = newChildrenIterable.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return iteratorFn;\n }\n function reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (\n var key = newChild.key, child = currentFirstChild;\n null !== child;\n\n ) {\n if (child.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === child.tag) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(\n child,\n newChild.props.children\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n } else if (\n child.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === child.type)\n ) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(child, newChild.props);\n currentFirstChild.ref = coerceRef(\n returnFiber,\n child,\n newChild\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n deleteRemainingChildren(returnFiber, child);\n break;\n } else deleteChild(returnFiber, child);\n child = child.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((currentFirstChild = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(\n returnFiber,\n currentFirstChild,\n newChild\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (child = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === child)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n currentFirstChild = useFiber(\n currentFirstChild,\n newChild.children || []\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n currentFirstChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (child = newChild._init),\n reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n child(newChild._payload),\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild))\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (currentFirstChild = useFiber(currentFirstChild, newChild)),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (currentFirstChild = createFiberFromText(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return reconcileChildFibers;\n}\nvar reconcileChildFibers = ChildReconciler(!0),\n mountChildFibers = ChildReconciler(!1),\n NO_CONTEXT = {},\n contextStackCursor$1 = createCursor(NO_CONTEXT),\n contextFiberStackCursor = createCursor(NO_CONTEXT),\n rootInstanceStackCursor = createCursor(NO_CONTEXT);\nfunction requiredContext(c) {\n if (c === NO_CONTEXT)\n throw Error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n}\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor$1, NO_CONTEXT);\n pop(contextStackCursor$1);\n push(contextStackCursor$1, { isInAParentText: !1 });\n}\nfunction popHostContainer() {\n pop(contextStackCursor$1);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var JSCompiler_inline_result = fiber.type;\n JSCompiler_inline_result =\n \"AndroidTextInput\" === JSCompiler_inline_result ||\n \"RCTMultilineTextInputView\" === JSCompiler_inline_result ||\n \"RCTSinglelineTextInputView\" === JSCompiler_inline_result ||\n \"RCTText\" === JSCompiler_inline_result ||\n \"RCTVirtualText\" === JSCompiler_inline_result;\n JSCompiler_inline_result =\n context.isInAParentText !== JSCompiler_inline_result\n ? { isInAParentText: JSCompiler_inline_result }\n : context;\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor$1, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor$1), pop(contextFiberStackCursor));\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (null !== state && (null === state.dehydrated || shim() || shim()))\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++)\n workInProgressSources[i]._workInProgressVersionPrimary = null;\n workInProgressSources.length = 0;\n}\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig,\n renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactCurrentDispatcher$1.current =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n current = Component(props, secondArg);\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n nextRenderLanes = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= nextRenderLanes)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n nextRenderLanes += 1;\n workInProgressHook = currentHook = null;\n workInProgress.updateQueue = null;\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender;\n current = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n }\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n workInProgress = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n if (workInProgress)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return current;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook)\n throw Error(\"Rendered more hooks than during the previous render.\");\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var current = currentHook,\n baseQueue = current.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n if (null !== baseQueue) {\n pendingQueue = baseQueue.next;\n current = current.baseState;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = pendingQueue;\n do {\n var updateLane = update.lane;\n if ((renderLanes & updateLane) === updateLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next = {\n lane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n (current = update.hasEagerState\n ? update.eagerState\n : reducer(current, update.action));\n else {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = clone),\n (baseFirst = current))\n : (newBaseQueueLast = newBaseQueueLast.next = clone);\n currentlyRenderingFiber$1.lanes |= updateLane;\n workInProgressRootSkippedLanes |= updateLane;\n }\n update = update.next;\n } while (null !== update && update !== pendingQueue);\n null === newBaseQueueLast\n ? (baseFirst = current)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n objectIs(current, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = current;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = current;\n }\n reducer = queue.interleaved;\n if (null !== reducer) {\n baseQueue = reducer;\n do\n (pendingQueue = baseQueue.lane),\n (currentlyRenderingFiber$1.lanes |= pendingQueue),\n (workInProgressRootSkippedLanes |= pendingQueue),\n (baseQueue = baseQueue.next);\n while (baseQueue !== reducer);\n } else null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateMutableSource() {}\nfunction updateSyncExternalStore(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n nextSnapshot = getSnapshot(),\n snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot);\n snapshotChanged &&\n ((hook.memoizedState = nextSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n return nextSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function() {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = markUpdateLaneFromFiberToRoot(fiber, 1);\n null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1);\n}\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n \"function\" === typeof initialState && (initialState = initialState());\n hook.memoizedState = hook.baseState = initialState;\n initialState = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = initialState;\n initialState = initialState.dispatch = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n initialState\n );\n return [hook.memoizedState, initialState];\n}\nfunction pushEffect(tag, create, destroy, deps) {\n tag = { tag: tag, create: create, destroy: destroy, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create\n ? ((create = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = create),\n (create.lastEffect = tag.next = tag))\n : ((destroy = create.lastEffect),\n null === destroy\n ? (create.lastEffect = tag.next = tag)\n : ((deps = destroy.next),\n (destroy.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag)));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n void 0,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var destroy = void 0;\n if (null !== currentHook) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, deps);\n return;\n }\n }\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps);\n}\nfunction mountEffect(create, deps) {\n return mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n return updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref)\n return (\n (create = create()),\n ref(create),\n function() {\n ref(null);\n }\n );\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function() {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return updateEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n if (0 === (renderLanes & 21))\n return (\n hook.baseState && ((hook.baseState = !1), (didReceiveUpdate = !0)),\n (hook.memoizedState = value)\n );\n objectIs(value, prevValue) ||\n ((value = claimNextTransitionLane()),\n (currentlyRenderingFiber$1.lanes |= value),\n (workInProgressRootSkippedLanes |= value),\n (hook.baseState = !0));\n return prevValue;\n}\nfunction startTransition(setPending, callback) {\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority =\n 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4;\n setPending(!0);\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = {};\n try {\n setPending(!1), callback();\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$1.transition = prevTransition);\n }\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane(fiber);\n action = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);\n else if (\n ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action)\n ) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(action, fiber, lane, eventTime);\n entangleTransitionUpdate(action, queue, lane);\n }\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane(fiber),\n update = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState)) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return;\n }\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n null !== action &&\n ((update = requestEventTime()),\n scheduleUpdateOnFiber(action, fiber, lane, update),\n entangleTransitionUpdate(action, queue, lane));\n }\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194240)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n useCallback: function(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return mountEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function(create, deps) {\n return mountEffectImpl(4, 4, create, deps);\n },\n useInsertionEffect: function(create, deps) {\n return mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n },\n useReducer: function(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n initialArg = void 0 !== init ? init(initialArg) : initialArg;\n hook.memoizedState = hook.baseState = initialArg;\n reducer = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialArg\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: mountState,\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n return (mountWorkInProgressHook().memoizedState = value);\n },\n useTransition: function() {\n var _mountState = mountState(!1),\n isPending = _mountState[0];\n _mountState = startTransition.bind(null, _mountState[1]);\n mountWorkInProgressHook().memoizedState = _mountState;\n return [isPending, _mountState];\n },\n useMutableSource: function() {},\n useSyncExternalStore: function(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n var nextSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n hook.memoizedState = nextSnapshot;\n var inst = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n return nextSnapshot;\n },\n useId: function() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix,\n globalClientId = globalClientIdCounter++;\n identifierPrefix =\n \":\" + identifierPrefix + \"r\" + globalClientId.toString(32) + \":\";\n return (hook.memoizedState = identifierPrefix);\n },\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function() {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function() {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? (hook.memoizedState = value)\n : updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n };\nfunction createCapturedValueAtFiber(value, source) {\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source),\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: null != stack ? stack : null,\n digest: null != digest ? digest : null\n };\n}\nif (\n \"function\" !==\n typeof ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog\n)\n throw Error(\n \"Expected ReactFiberErrorDialog.showErrorDialog to be a function.\"\n );\nfunction logCapturedError(boundary, errorInfo) {\n try {\n !1 !==\n ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog({\n componentStack: null !== errorInfo.stack ? errorInfo.stack : \"\",\n error: errorInfo.value,\n errorBoundary:\n null !== boundary && 1 === boundary.tag ? boundary.stateNode : null\n }) && console.error(errorInfo.value);\n } catch (e) {\n setTimeout(function() {\n throw e;\n });\n }\n}\nvar PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n lane.payload = { element: null };\n var error = errorInfo.value;\n lane.callback = function() {\n hasUncaughtError || ((hasUncaughtError = !0), (firstUncaughtError = error));\n logCapturedError(fiber, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n lane.payload = function() {\n return getDerivedStateFromError(error);\n };\n lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n return lane;\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n (threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner,\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n prepareToReadContext(workInProgress, renderLanes);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n ref,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare &&\n void 0 === Component.defaultProps\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (0 === (current.lanes & renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n 0 !== (current.lanes & renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode)\n if (0 === (workInProgress.mode & 1))\n (workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= renderLanes);\n else {\n if (0 === (renderLanes & 1073741824))\n return (\n (current =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes),\n (workInProgress.lanes = workInProgress.childLanes = 1073741824),\n (workInProgress.memoizedState = {\n baseLanes: current,\n cachePool: null,\n transitions: null\n }),\n (workInProgress.updateQueue = null),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= current),\n null\n );\n workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n nextProps = null !== prevState ? prevState.baseLanes : renderLanes;\n push(subtreeRenderLanesCursor, subtreeRenderLanes);\n subtreeRenderLanes |= nextProps;\n }\n else\n null !== prevState\n ? ((nextProps = prevState.baseLanes | renderLanes),\n (workInProgress.memoizedState = null))\n : (nextProps = renderLanes),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= nextProps);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (\n (null === current && null !== ref) ||\n (null !== current && current.ref !== ref)\n )\n workInProgress.flags |= 512;\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n var context = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current;\n context = getMaskedContext(workInProgress, context);\n prepareToReadContext(workInProgress, renderLanes);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n context,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n prepareToReadContext(workInProgress, renderLanes);\n if (null === workInProgress.stateNode)\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n constructClassInstance(workInProgress, Component, nextProps),\n mountClassInstance(workInProgress, Component, nextProps, renderLanes),\n (nextProps = !0);\n else if (null === current) {\n var instance = workInProgress.stateNode,\n oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context,\n contextType = Component.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (contextType = readContext(contextType))\n : ((contextType = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (contextType = getMaskedContext(workInProgress, contextType)));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps,\n hasNewLifecycles =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate;\n hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== nextProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n oldContext = workInProgress.memoizedState;\n oldProps !== nextProps ||\n oldState !== oldContext ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n (\"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount()),\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (instance.props = nextProps),\n (instance.state = oldContext),\n (instance.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (nextProps = !1));\n } else {\n instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n oldProps = workInProgress.memoizedProps;\n contextType =\n workInProgress.type === workInProgress.elementType\n ? oldProps\n : resolveDefaultProps(workInProgress.type, oldProps);\n instance.props = contextType;\n hasNewLifecycles = workInProgress.pendingProps;\n oldState = instance.context;\n oldContext = Component.contextType;\n \"object\" === typeof oldContext && null !== oldContext\n ? (oldContext = readContext(oldContext))\n : ((oldContext = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (oldContext = getMaskedContext(workInProgress, oldContext)));\n var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps;\n (getDerivedStateFromProps =\n \"function\" === typeof getDerivedStateFromProps$jscomp$0 ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== hasNewLifecycles || oldState !== oldContext) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n oldContext\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n var newState = workInProgress.memoizedState;\n oldProps !== hasNewLifecycles ||\n oldState !== newState ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps$jscomp$0 &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps$jscomp$0,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType,\n nextProps,\n oldState,\n newState,\n oldContext\n ) ||\n !1)\n ? (getDerivedStateFromProps ||\n (\"function\" !== typeof instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof instance.componentWillUpdate) ||\n (\"function\" === typeof instance.componentWillUpdate &&\n instance.componentWillUpdate(nextProps, newState, oldContext),\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldContext\n )),\n \"function\" === typeof instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (instance.props = nextProps),\n (instance.state = newState),\n (instance.context = oldContext),\n (nextProps = contextType))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n return finishClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n hasContext,\n renderLanes\n );\n}\nfunction finishClassComponent(\n current,\n workInProgress,\n Component,\n shouldUpdate,\n hasContext,\n renderLanes\n) {\n markRef(current, workInProgress);\n var didCaptureError = 0 !== (workInProgress.flags & 128);\n if (!shouldUpdate && !didCaptureError)\n return (\n hasContext && invalidateContextProvider(workInProgress, Component, !1),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n shouldUpdate = workInProgress.stateNode;\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren =\n didCaptureError && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : shouldUpdate.render();\n workInProgress.flags |= 1;\n null !== current && didCaptureError\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n nextChildren,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n workInProgress.memoizedState = shouldUpdate.state;\n hasContext && invalidateContextProvider(workInProgress, Component, !0);\n return workInProgress.child;\n}\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n root.pendingContext\n ? pushTopLevelContextObject(\n workInProgress,\n root.pendingContext,\n root.pendingContext !== root.context\n )\n : root.context &&\n pushTopLevelContextObject(workInProgress, root.context, !1);\n pushHostContainer(workInProgress, root.containerInfo);\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: null, transitions: null };\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n suspenseContext = suspenseStackCursor.current,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseContext & 2));\n if (JSCompiler_temp) (showFallback = !0), (workInProgress.flags &= -129);\n else if (null === current || null !== current.memoizedState)\n suspenseContext |= 1;\n push(suspenseStackCursor, suspenseContext & 1);\n if (null === current) {\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated)\n return (\n 0 === (workInProgress.mode & 1)\n ? (workInProgress.lanes = 1)\n : shim()\n ? (workInProgress.lanes = 8)\n : (workInProgress.lanes = 1073741824),\n null\n );\n didSuspend = nextProps.children;\n current = nextProps.fallback;\n return showFallback\n ? ((nextProps = workInProgress.mode),\n (showFallback = workInProgress.child),\n (didSuspend = { mode: \"hidden\", children: didSuspend }),\n 0 === (nextProps & 1) && null !== showFallback\n ? ((showFallback.childLanes = 0),\n (showFallback.pendingProps = didSuspend))\n : (showFallback = createFiberFromOffscreen(\n didSuspend,\n nextProps,\n 0,\n null\n )),\n (current = createFiberFromFragment(\n current,\n nextProps,\n renderLanes,\n null\n )),\n (showFallback.return = workInProgress),\n (current.return = workInProgress),\n (showFallback.sibling = current),\n (workInProgress.child = showFallback),\n (workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n current)\n : mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n suspenseContext = current.memoizedState;\n if (\n null !== suspenseContext &&\n ((JSCompiler_temp = suspenseContext.dehydrated), null !== JSCompiler_temp)\n )\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n JSCompiler_temp,\n suspenseContext,\n renderLanes\n );\n if (showFallback) {\n showFallback = nextProps.fallback;\n didSuspend = workInProgress.mode;\n suspenseContext = current.child;\n JSCompiler_temp = suspenseContext.sibling;\n var primaryChildProps = { mode: \"hidden\", children: nextProps.children };\n 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext\n ? ((nextProps = workInProgress.child),\n (nextProps.childLanes = 0),\n (nextProps.pendingProps = primaryChildProps),\n (workInProgress.deletions = null))\n : ((nextProps = createWorkInProgress(suspenseContext, primaryChildProps)),\n (nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064));\n null !== JSCompiler_temp\n ? (showFallback = createWorkInProgress(JSCompiler_temp, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2));\n showFallback.return = workInProgress;\n nextProps.return = workInProgress;\n nextProps.sibling = showFallback;\n workInProgress.child = nextProps;\n nextProps = showFallback;\n showFallback = workInProgress.child;\n didSuspend = current.child.memoizedState;\n didSuspend =\n null === didSuspend\n ? mountSuspenseOffscreenState(renderLanes)\n : {\n baseLanes: didSuspend.baseLanes | renderLanes,\n cachePool: null,\n transitions: didSuspend.transitions\n };\n showFallback.memoizedState = didSuspend;\n showFallback.childLanes = current.childLanes & ~renderLanes;\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return nextProps;\n }\n showFallback = current.child;\n current = showFallback.sibling;\n nextProps = createWorkInProgress(showFallback, {\n mode: \"visible\",\n children: nextProps.children\n });\n 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes);\n nextProps.return = workInProgress;\n nextProps.sibling = null;\n null !== current &&\n ((renderLanes = workInProgress.deletions),\n null === renderLanes\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : renderLanes.push(current));\n workInProgress.child = nextProps;\n workInProgress.memoizedState = null;\n return nextProps;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = createFiberFromOffscreen(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode,\n 0,\n null\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n recoverableError\n) {\n null !== recoverableError &&\n (null === hydrationErrors\n ? (hydrationErrors = [recoverableError])\n : hydrationErrors.push(recoverableError));\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n (workInProgress.flags &= -257),\n (suspenseState = createCapturedValue(\n Error(\n \"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"\n )\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n suspenseState = nextProps.fallback;\n didSuspend = workInProgress.mode;\n nextProps = createFiberFromOffscreen(\n { mode: \"visible\", children: nextProps.children },\n didSuspend,\n 0,\n null\n );\n suspenseState = createFiberFromFragment(\n suspenseState,\n didSuspend,\n renderLanes,\n null\n );\n suspenseState.flags |= 2;\n nextProps.return = workInProgress;\n suspenseState.return = workInProgress;\n nextProps.sibling = suspenseState;\n workInProgress.child = nextProps;\n 0 !== (workInProgress.mode & 1) &&\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return suspenseState;\n }\n if (0 === (workInProgress.mode & 1))\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n null\n );\n if (shim())\n return (\n (suspenseState = shim().digest),\n (suspenseState = createCapturedValue(\n Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n ),\n suspenseState,\n void 0\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n didSuspend = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didSuspend) {\n nextProps = workInProgressRoot;\n if (null !== nextProps) {\n switch (renderLanes & -renderLanes) {\n case 4:\n didSuspend = 2;\n break;\n case 16:\n didSuspend = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n didSuspend = 32;\n break;\n case 536870912:\n didSuspend = 268435456;\n break;\n default:\n didSuspend = 0;\n }\n didSuspend =\n 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes))\n ? 0\n : didSuspend;\n 0 !== didSuspend &&\n didSuspend !== suspenseState.retryLane &&\n ((suspenseState.retryLane = didSuspend),\n markUpdateLaneFromFiberToRoot(current, didSuspend),\n scheduleUpdateOnFiber(nextProps, current, didSuspend, -1));\n }\n renderDidSuspendDelayIfPossible();\n suspenseState = createCapturedValue(\n Error(\n \"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"\n )\n );\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n );\n }\n if (shim())\n return (\n (workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n retryDehydratedSuspenseBoundary.bind(null, current),\n shim(),\n null\n );\n current = mountSuspensePrimaryChildren(workInProgress, nextProps.children);\n current.flags |= 4096;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;\n else\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n 0 === (workInProgress.mode & 1) &&\n null !== current &&\n ((current.alternate = null),\n (workInProgress.alternate = null),\n (workInProgress.flags |= 2));\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes)) return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling = createWorkInProgress(\n current,\n current.pendingProps\n )),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostRootContext(workInProgress);\n break;\n case 5:\n pushHostContext(workInProgress);\n break;\n case 1:\n isContextProvider(workInProgress.type) &&\n pushContextProvider(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n var context = workInProgress.type._context,\n nextValue = workInProgress.memoizedProps.value;\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n break;\n case 13:\n context = workInProgress.memoizedState;\n if (null !== context) {\n if (null !== context.dehydrated)\n return (\n push(suspenseStackCursor, suspenseStackCursor.current & 1),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n break;\n case 19:\n context = 0 !== (renderLanes & workInProgress.childLanes);\n if (0 !== (current.flags & 128)) {\n if (context)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n nextValue = workInProgress.memoizedState;\n null !== nextValue &&\n ((nextValue.rendering = null),\n (nextValue.tail = null),\n (nextValue.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (context) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nvar appendAllChildren,\n updateHostContainer,\n updateHostComponent$1,\n updateHostText$1;\nappendAllChildren = function(parent, workInProgress) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag || 6 === node.tag) parent._children.push(node.stateNode);\n else if (4 !== node.tag && null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n};\nupdateHostContainer = function() {};\nupdateHostComponent$1 = function(current, workInProgress, type, newProps) {\n current.memoizedProps !== newProps &&\n (requiredContext(contextStackCursor$1.current),\n (workInProgress.updateQueue = UPDATE_SIGNAL)) &&\n (workInProgress.flags |= 4);\n};\nupdateHostText$1 = function(current, workInProgress, oldText, newText) {\n oldText !== newText && (workInProgress.flags |= 4);\n};\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$62 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$62\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$62.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags & 14680064),\n (subtreeFlags |= child$63.flags & 14680064),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n else\n for (child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags),\n (subtreeFlags |= child$63.flags),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 3:\n return (\n (renderLanes = workInProgress.stateNode),\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null)),\n (null !== current && null !== current.child) ||\n null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null))),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 5:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n updateHostComponent$1(\n current,\n workInProgress,\n type,\n newProps,\n renderLanes\n ),\n current.ref !== workInProgress.ref && (workInProgress.flags |= 512);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n requiredContext(contextStackCursor$1.current);\n current = allocateTag();\n type = getViewConfigForType(type);\n var updatePayload = diffProperties(\n null,\n emptyObject,\n newProps,\n type.validAttributes\n );\n ReactNativePrivateInterface.UIManager.createView(\n current,\n type.uiViewClassName,\n renderLanes,\n updatePayload\n );\n renderLanes = new ReactNativeFiberHostComponent(\n current,\n type,\n workInProgress\n );\n instanceCache.set(current, workInProgress);\n instanceProps.set(current, newProps);\n appendAllChildren(renderLanes, workInProgress, !1, !1);\n workInProgress.stateNode = renderLanes;\n finalizeInitialChildren(renderLanes) && (workInProgress.flags |= 4);\n null !== workInProgress.ref && (workInProgress.flags |= 512);\n }\n bubbleProperties(workInProgress);\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n updateHostText$1(\n current,\n workInProgress,\n current.memoizedProps,\n newProps\n );\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n if (!requiredContext(contextStackCursor$1.current).isInAParentText)\n throw Error(\n \"Text strings must be rendered within a <Text> component.\"\n );\n renderLanes = allocateTag();\n ReactNativePrivateInterface.UIManager.createView(\n renderLanes,\n \"RCTRawText\",\n current,\n { text: newProps }\n );\n instanceCache.set(renderLanes, workInProgress);\n workInProgress.stateNode = renderLanes;\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n throw Error(\n \"Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null);\n workInProgress.flags |= 4;\n bubbleProperties(workInProgress);\n type = !1;\n } else\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n (type = !0);\n if (!type) return workInProgress.flags & 65536 ? workInProgress : null;\n }\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n renderLanes !== (null !== current && null !== current.memoizedState) &&\n renderLanes &&\n ((workInProgress.child.flags |= 8192),\n 0 !== (workInProgress.mode & 1) &&\n (null === current || 0 !== (suspenseStackCursor.current & 1)\n ? 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3)\n : renderDidSuspendDelayIfPossible()));\n null !== workInProgress.updateQueue && (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type._context),\n bubbleProperties(workInProgress),\n null\n );\n case 17:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n updatePayload = type.rendering;\n if (null === updatePayload)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n updatePayload = findFirstSuspended(current);\n if (null !== updatePayload) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = updatePayload.updateQueue;\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4));\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n (newProps = renderLanes),\n (type = current),\n (newProps.flags &= 14680066),\n (updatePayload = newProps.alternate),\n null === updatePayload\n ? ((newProps.childLanes = 0),\n (newProps.lanes = type),\n (newProps.child = null),\n (newProps.subtreeFlags = 0),\n (newProps.memoizedProps = null),\n (newProps.memoizedState = null),\n (newProps.updateQueue = null),\n (newProps.dependencies = null),\n (newProps.stateNode = null))\n : ((newProps.childLanes = updatePayload.childLanes),\n (newProps.lanes = updatePayload.lanes),\n (newProps.child = updatePayload.child),\n (newProps.subtreeFlags = 0),\n (newProps.deletions = null),\n (newProps.memoizedProps = updatePayload.memoizedProps),\n (newProps.memoizedState = updatePayload.memoizedState),\n (newProps.updateQueue = updatePayload.updateQueue),\n (newProps.type = updatePayload.type),\n (type = updatePayload.dependencies),\n (newProps.dependencies =\n null === type\n ? null\n : {\n lanes: type.lanes,\n firstContext: type.firstContext\n })),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(updatePayload)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4)),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !updatePayload.alternate)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 1073741824 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((updatePayload.sibling = workInProgress.child),\n (workInProgress.child = updatePayload))\n : ((current = type.last),\n null !== current\n ? (current.sibling = updatePayload)\n : (workInProgress.child = updatePayload),\n (type.last = updatePayload));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popRenderLanes(),\n (renderLanes = null !== workInProgress.memoizedState),\n null !== current &&\n (null !== current.memoizedState) !== renderLanes &&\n (workInProgress.flags |= 8192),\n renderLanes && 0 !== (workInProgress.mode & 1)\n ? 0 !== (subtreeRenderLanes & 1073741824) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n null\n );\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n pop(suspenseStackCursor);\n current = workInProgress.memoizedState;\n if (\n null !== current &&\n null !== current.dehydrated &&\n null === workInProgress.alternate\n )\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type._context), null;\n case 22:\n case 23:\n return popRenderLanes(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n if (null !== ref)\n if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n else ref.current = null;\n}\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nvar shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((root = nextEffect),\n (firstChild = root.child),\n 0 !== (root.subtreeFlags & 1028) && null !== firstChild)\n )\n (firstChild.return = root), (nextEffect = firstChild);\n else\n for (; null !== nextEffect; ) {\n root = nextEffect;\n try {\n var current = root.alternate;\n if (0 !== (root.flags & 1024))\n switch (root.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState,\n instance = root.stateNode,\n snapshot = instance.getSnapshotBeforeUpdate(\n root.elementType === root.type\n ? prevProps\n : resolveDefaultProps(root.type, prevProps),\n prevState\n );\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n break;\n case 3:\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(root, root.return, error);\n }\n firstChild = root.sibling;\n if (null !== firstChild) {\n firstChild.return = root.return;\n nextEffect = firstChild;\n break;\n }\n nextEffect = root.return;\n }\n current = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return current;\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n) {\n var updateQueue = finishedWork.updateQueue;\n updateQueue = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== updateQueue) {\n var effect = (updateQueue = updateQueue.next);\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = void 0;\n void 0 !== destroy &&\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n }\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n finishedWork = finishedWork.updateQueue;\n finishedWork = null !== finishedWork ? finishedWork.lastEffect : null;\n if (null !== finishedWork) {\n var effect = (finishedWork = finishedWork.next);\n do {\n if ((effect.tag & flags) === flags) {\n var create$75 = effect.create;\n effect.destroy = create$75();\n }\n effect = effect.next;\n } while (effect !== finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nfunction isHostParent(fiber) {\n return 5 === fiber.tag || 3 === fiber.tag || 4 === fiber.tag;\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n if (((node = node.stateNode), before)) {\n if (\"number\" === typeof parent)\n throw Error(\"Container does not support insertBefore operation\");\n } else\n ReactNativePrivateInterface.UIManager.setChildren(parent, [\n \"number\" === typeof node ? node : node._nativeTag\n ]);\n else if (4 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n if (((node = node.stateNode), before)) {\n tag = parent._children;\n var index = tag.indexOf(node);\n 0 <= index\n ? (tag.splice(index, 1),\n (before = tag.indexOf(before)),\n tag.splice(before, 0, node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [index],\n [before],\n [],\n [],\n []\n ))\n : ((before = tag.indexOf(before)),\n tag.splice(before, 0, node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [],\n [],\n [\"number\" === typeof node ? node : node._nativeTag],\n [before],\n []\n ));\n } else\n (before = \"number\" === typeof node ? node : node._nativeTag),\n (tag = parent._children),\n (index = tag.indexOf(node)),\n 0 <= index\n ? (tag.splice(index, 1),\n tag.push(node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [index],\n [tag.length - 1],\n [],\n [],\n []\n ))\n : (tag.push(node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [],\n [],\n [before],\n [tag.length - 1],\n []\n ));\n else if (4 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 5:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n recursivelyUncacheFiberNode(deletedFiber.stateNode),\n ReactNativePrivateInterface.UIManager.manageChildren(\n finishedRoot,\n [],\n [],\n [],\n [],\n [0]\n ))\n : ((finishedRoot = hostParent),\n (nearestMountedAncestor = deletedFiber.stateNode),\n recursivelyUncacheFiberNode(nearestMountedAncestor),\n (deletedFiber = finishedRoot._children),\n (nearestMountedAncestor = deletedFiber.indexOf(\n nearestMountedAncestor\n )),\n deletedFiber.splice(nearestMountedAncestor, 1),\n ReactNativePrivateInterface.UIManager.manageChildren(\n finishedRoot._nativeTag,\n [],\n [],\n [],\n [],\n [nearestMountedAncestor]\n )));\n break;\n case 18:\n null !== hostParent && shim(hostParent, deletedFiber.stateNode);\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n prevHostParent = deletedFiber.updateQueue;\n if (\n null !== prevHostParent &&\n ((prevHostParent = prevHostParent.lastEffect), null !== prevHostParent)\n ) {\n prevHostParentIsContainer = prevHostParent = prevHostParent.next;\n do {\n var _effect = prevHostParentIsContainer,\n destroy = _effect.destroy;\n _effect = _effect.tag;\n void 0 !== destroy &&\n (0 !== (_effect & 2)\n ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)\n : 0 !== (_effect & 4) &&\n safelyCallDestroy(\n deletedFiber,\n nearestMountedAncestor,\n destroy\n ));\n prevHostParentIsContainer = prevHostParentIsContainer.next;\n } while (prevHostParentIsContainer !== prevHostParent);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n prevHostParent = deletedFiber.stateNode;\n if (\"function\" === typeof prevHostParent.componentWillUnmount)\n try {\n (prevHostParent.props = deletedFiber.memoizedProps),\n (prevHostParent.state = deletedFiber.memoizedState),\n prevHostParent.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n if (null !== wakeables) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n wakeables.forEach(function(wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n }\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n try {\n var root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent)\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n var alternate = childToDelete.alternate;\n null !== alternate && (alternate.return = null);\n childToDelete.return = null;\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n if (parentFiber.subtreeFlags & 12854)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n try {\n commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n try {\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return);\n } catch (error$85) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$85);\n }\n }\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n if (flags & 4) {\n var instance$87 = finishedWork.stateNode;\n if (null != instance$87) {\n var newProps = finishedWork.memoizedProps,\n oldProps = null !== current ? current.memoizedProps : newProps,\n updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n if (null !== updatePayload)\n try {\n var viewConfig = instance$87.viewConfig;\n instanceProps.set(instance$87._nativeTag, newProps);\n var updatePayload$jscomp$0 = diffProperties(\n null,\n oldProps,\n newProps,\n viewConfig.validAttributes\n );\n null != updatePayload$jscomp$0 &&\n ReactNativePrivateInterface.UIManager.updateView(\n instance$87._nativeTag,\n viewConfig.uiViewClassName,\n updatePayload$jscomp$0\n );\n } catch (error$88) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$88\n );\n }\n }\n }\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(\n \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\"\n );\n viewConfig = finishedWork.stateNode;\n updatePayload$jscomp$0 = finishedWork.memoizedProps;\n try {\n ReactNativePrivateInterface.UIManager.updateView(\n viewConfig,\n \"RCTRawText\",\n { text: updatePayload$jscomp$0 }\n );\n } catch (error$89) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$89);\n }\n }\n break;\n case 3:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 4:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n viewConfig = finishedWork.child;\n viewConfig.flags & 8192 &&\n ((updatePayload$jscomp$0 = null !== viewConfig.memoizedState),\n (viewConfig.stateNode.isHidden = updatePayload$jscomp$0),\n !updatePayload$jscomp$0 ||\n (null !== viewConfig.alternate &&\n null !== viewConfig.alternate.memoizedState) ||\n (globalMostRecentFallbackTime = now()));\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 22:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n viewConfig = null !== finishedWork.memoizedState,\n finishedWork.stateNode.isHidden = viewConfig,\n updatePayload$jscomp$0 = null,\n current = finishedWork;\n ;\n\n ) {\n if (5 === current.tag) {\n if (null === updatePayload$jscomp$0) {\n updatePayload$jscomp$0 = current;\n try {\n if (((instance$87 = current.stateNode), viewConfig))\n (newProps = instance$87.viewConfig),\n (oldProps = diffProperties(\n null,\n emptyObject,\n { style: { display: \"none\" } },\n newProps.validAttributes\n )),\n ReactNativePrivateInterface.UIManager.updateView(\n instance$87._nativeTag,\n newProps.uiViewClassName,\n oldProps\n );\n else {\n updatePayload = current.stateNode;\n var props = current.memoizedProps,\n viewConfig$jscomp$0 = updatePayload.viewConfig,\n prevProps = assign({}, props, {\n style: [props.style, { display: \"none\" }]\n });\n var updatePayload$jscomp$1 = diffProperties(\n null,\n prevProps,\n props,\n viewConfig$jscomp$0.validAttributes\n );\n ReactNativePrivateInterface.UIManager.updateView(\n updatePayload._nativeTag,\n viewConfig$jscomp$0.uiViewClassName,\n updatePayload$jscomp$1\n );\n }\n } catch (error) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error\n );\n }\n }\n } else if (6 === current.tag) {\n if (null === updatePayload$jscomp$0)\n try {\n throw Error(\"Not yet implemented.\");\n } catch (error$80) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$80\n );\n }\n } else if (\n ((22 !== current.tag && 23 !== current.tag) ||\n null === current.memoizedState ||\n current === finishedWork) &&\n null !== current.child\n ) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === finishedWork) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === finishedWork)\n break a;\n updatePayload$jscomp$0 === current &&\n (updatePayload$jscomp$0 = null);\n current = current.return;\n }\n updatePayload$jscomp$0 === current && (updatePayload$jscomp$0 = null);\n current.sibling.return = current.return;\n current = current.sibling;\n }\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n a: {\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isHostParent(parent)) {\n var JSCompiler_inline_result = parent;\n break a;\n }\n parent = parent.return;\n }\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n switch (JSCompiler_inline_result.tag) {\n case 5:\n var parent$jscomp$0 = JSCompiler_inline_result.stateNode;\n JSCompiler_inline_result.flags & 32 &&\n (JSCompiler_inline_result.flags &= -33);\n var before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0);\n break;\n case 3:\n case 4:\n var parent$81 = JSCompiler_inline_result.stateNode.containerInfo,\n before$82 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$82,\n parent$81\n );\n break;\n default:\n throw Error(\n \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction commitLayoutEffects(finishedWork) {\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n var fiber = nextEffect,\n firstChild = fiber.child;\n if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild)\n (firstChild.return = fiber), (nextEffect = firstChild);\n else\n for (fiber = finishedWork; null !== nextEffect; ) {\n firstChild = nextEffect;\n if (0 !== (firstChild.flags & 8772)) {\n var current = firstChild.alternate;\n try {\n if (0 !== (firstChild.flags & 8772))\n switch (firstChild.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(5, firstChild);\n break;\n case 1:\n var instance = firstChild.stateNode;\n if (firstChild.flags & 4)\n if (null === current) instance.componentDidMount();\n else {\n var prevProps =\n firstChild.elementType === firstChild.type\n ? current.memoizedProps\n : resolveDefaultProps(\n firstChild.type,\n current.memoizedProps\n );\n instance.componentDidUpdate(\n prevProps,\n current.memoizedState,\n instance.__reactInternalSnapshotBeforeUpdate\n );\n }\n var updateQueue = firstChild.updateQueue;\n null !== updateQueue &&\n commitUpdateQueue(firstChild, updateQueue, instance);\n break;\n case 3:\n var updateQueue$76 = firstChild.updateQueue;\n if (null !== updateQueue$76) {\n current = null;\n if (null !== firstChild.child)\n switch (firstChild.child.tag) {\n case 5:\n current = firstChild.child.stateNode;\n break;\n case 1:\n current = firstChild.child.stateNode;\n }\n commitUpdateQueue(firstChild, updateQueue$76, current);\n }\n break;\n case 5:\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (firstChild.flags & 512) {\n current = void 0;\n var ref = firstChild.ref;\n if (null !== ref) {\n var instance$jscomp$0 = firstChild.stateNode;\n switch (firstChild.tag) {\n case 5:\n current = instance$jscomp$0;\n break;\n default:\n current = instance$jscomp$0;\n }\n \"function\" === typeof ref\n ? ref(current)\n : (ref.current = current);\n }\n }\n } catch (error) {\n captureCommitPhaseError(firstChild, firstChild.return, error);\n }\n }\n if (firstChild === fiber) {\n nextEffect = null;\n break;\n }\n current = firstChild.sibling;\n if (null !== current) {\n current.return = firstChild.return;\n nextEffect = current;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n}\nvar ceil = Math.ceil,\n ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n subtreeRenderLanes = 0,\n subtreeRenderLanesCursor = createCursor(0),\n workInProgressRootExitStatus = 0,\n workInProgressRootFatalError = null,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n hasUncaughtError = !1,\n firstUncaughtError = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n rootDoesHavePassiveEffects = !1,\n rootWithPendingPassiveEffects = null,\n pendingPassiveEffectsLanes = 0,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n currentEventTime = -1,\n currentEventTransitionLane = 0;\nfunction requestEventTime() {\n return 0 !== (executionContext & 6)\n ? now()\n : -1 !== currentEventTime\n ? currentEventTime\n : (currentEventTime = now());\n}\nfunction requestUpdateLane(fiber) {\n if (0 === (fiber.mode & 1)) return 1;\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactCurrentBatchConfig.transition)\n return (\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane()),\n currentEventTransitionLane\n );\n fiber = currentUpdatePriority;\n return 0 !== fiber ? fiber : 16;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n if (50 < nestedUpdateCount)\n throw ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ));\n markRootUpdated(root, lane, eventTime);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended$1(root, workInProgressRootRenderLanes)),\n ensureRootIsScheduled(root, eventTime),\n 1 === lane &&\n 0 === executionContext &&\n 0 === (fiber.mode & 1) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n}\nfunction ensureRootIsScheduled(root, currentTime) {\n for (\n var existingCallbackNode = root.callbackNode,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes;\n 0 < lanes;\n\n ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6,\n expirationTime = expirationTimes[index$6];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$6] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n suspendedLanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === suspendedLanes)\n null !== existingCallbackNode && cancelCallback(existingCallbackNode),\n (root.callbackNode = null),\n (root.callbackPriority = 0);\n else if (\n ((currentTime = suspendedLanes & -suspendedLanes),\n root.callbackPriority !== currentTime)\n ) {\n null != existingCallbackNode && cancelCallback(existingCallbackNode);\n if (1 === currentTime)\n 0 === root.tag\n ? ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n (includesLegacySyncCallbacks = !0),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode))\n : ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n (existingCallbackNode = null);\n else {\n switch (lanesToEventPriority(suspendedLanes)) {\n case 1:\n existingCallbackNode = ImmediatePriority;\n break;\n case 4:\n existingCallbackNode = UserBlockingPriority;\n break;\n case 16:\n existingCallbackNode = NormalPriority;\n break;\n case 536870912:\n existingCallbackNode = IdlePriority;\n break;\n default:\n existingCallbackNode = NormalPriority;\n }\n existingCallbackNode = scheduleCallback$1(\n existingCallbackNode,\n performConcurrentWorkOnRoot.bind(null, root)\n );\n }\n root.callbackPriority = currentTime;\n root.callbackNode = existingCallbackNode;\n }\n}\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n currentEventTime = -1;\n currentEventTransitionLane = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n var originalCallbackNode = root.callbackNode;\n if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var lanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === lanes) return null;\n if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout)\n didTimeout = renderRootSync(root, lanes);\n else {\n didTimeout = lanes;\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== didTimeout\n )\n (workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, didTimeout);\n do\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n ReactCurrentDispatcher$2.current = prevDispatcher;\n executionContext = prevExecutionContext;\n null !== workInProgress\n ? (didTimeout = 0)\n : ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n (didTimeout = workInProgressRootExitStatus));\n }\n if (0 !== didTimeout) {\n 2 === didTimeout &&\n ((prevExecutionContext = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevExecutionContext &&\n ((lanes = prevExecutionContext),\n (didTimeout = recoverFromConcurrentError(root, prevExecutionContext))));\n if (1 === didTimeout)\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n if (6 === didTimeout) markRootSuspended$1(root, lanes);\n else {\n prevExecutionContext = root.current.alternate;\n if (\n 0 === (lanes & 30) &&\n !isRenderConsistentWithExternalStores(prevExecutionContext) &&\n ((didTimeout = renderRootSync(root, lanes)),\n 2 === didTimeout &&\n ((prevDispatcher = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevDispatcher &&\n ((lanes = prevDispatcher),\n (didTimeout = recoverFromConcurrentError(root, prevDispatcher)))),\n 1 === didTimeout)\n )\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n root.finishedWork = prevExecutionContext;\n root.finishedLanes = lanes;\n switch (didTimeout) {\n case 0:\n case 1:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case 2:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 3:\n markRootSuspended$1(root, lanes);\n if (\n (lanes & 130023424) === lanes &&\n ((didTimeout = globalMostRecentFallbackTime + 500 - now()),\n 10 < didTimeout)\n ) {\n if (0 !== getNextLanes(root, 0)) break;\n prevExecutionContext = root.suspendedLanes;\n if ((prevExecutionContext & lanes) !== lanes) {\n requestEventTime();\n root.pingedLanes |= root.suspendedLanes & prevExecutionContext;\n break;\n }\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n didTimeout\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 4:\n markRootSuspended$1(root, lanes);\n if ((lanes & 4194240) === lanes) break;\n didTimeout = root.eventTimes;\n for (prevExecutionContext = -1; 0 < lanes; ) {\n var index$5 = 31 - clz32(lanes);\n prevDispatcher = 1 << index$5;\n index$5 = didTimeout[index$5];\n index$5 > prevExecutionContext && (prevExecutionContext = index$5);\n lanes &= ~prevDispatcher;\n }\n lanes = prevExecutionContext;\n lanes = now() - lanes;\n lanes =\n (120 > lanes\n ? 120\n : 480 > lanes\n ? 480\n : 1080 > lanes\n ? 1080\n : 1920 > lanes\n ? 1920\n : 3e3 > lanes\n ? 3e3\n : 4320 > lanes\n ? 4320\n : 1960 * ceil(lanes / 1960)) - lanes;\n if (10 < lanes) {\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n lanes\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 5:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n }\n }\n ensureRootIsScheduled(root, now());\n return root.callbackNode === originalCallbackNode\n ? performConcurrentWorkOnRoot.bind(null, root)\n : null;\n}\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n root.current.memoizedState.isDehydrated &&\n (prepareFreshStack(root, errorRetryLanes).flags |= 256);\n root = renderRootSync(root, errorRetryLanes);\n 2 !== root &&\n ((errorRetryLanes = workInProgressRootRecoverableErrors),\n (workInProgressRootRecoverableErrors = errorsFromFirstAttempt),\n null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes));\n return root;\n}\nfunction queueRecoverableErrors(errors) {\n null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = errors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n errors\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n if (node.flags & 16384) {\n var updateQueue = node.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.stores), null !== updateQueue)\n )\n for (var i = 0; i < updateQueue.length; i++) {\n var check = updateQueue[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n }\n updateQueue = node.child;\n if (node.subtreeFlags & 16384 && null !== updateQueue)\n (updateQueue.return = node), (node = updateQueue);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n for (root = root.expirationTimes; 0 < suspendedLanes; ) {\n var index$7 = 31 - clz32(suspendedLanes),\n lane = 1 << index$7;\n root[index$7] = -1;\n suspendedLanes &= ~lane;\n }\n}\nfunction performSyncWorkOnRoot(root) {\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n flushPassiveEffects();\n var lanes = getNextLanes(root, 0);\n if (0 === (lanes & 1)) return ensureRootIsScheduled(root, now()), null;\n var exitStatus = renderRootSync(root, lanes);\n if (0 !== root.tag && 2 === exitStatus) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n 0 !== errorRetryLanes &&\n ((lanes = errorRetryLanes),\n (exitStatus = recoverFromConcurrentError(root, errorRetryLanes)));\n }\n if (1 === exitStatus)\n throw ((exitStatus = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n exitStatus);\n if (6 === exitStatus)\n throw Error(\"Root did not complete. This is a bug in React.\");\n root.finishedWork = root.current.alternate;\n root.finishedLanes = lanes;\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction popRenderLanes() {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor);\n}\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = 0;\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n if (null !== workInProgress)\n for (timeoutHandle = workInProgress.return; null !== timeoutHandle; ) {\n var interruptedWork = timeoutHandle;\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 1:\n interruptedWork = interruptedWork.type.childContextTypes;\n null !== interruptedWork &&\n void 0 !== interruptedWork &&\n popContext();\n break;\n case 3:\n popHostContainer();\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n resetWorkInProgressVersions();\n break;\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n pop(suspenseStackCursor);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type._context);\n break;\n case 22:\n case 23:\n popRenderLanes();\n }\n timeoutHandle = timeoutHandle.return;\n }\n workInProgressRoot = root;\n workInProgress = root = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = lanes;\n workInProgressRootExitStatus = 0;\n workInProgressRootFatalError = null;\n workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null;\n if (null !== concurrentQueues) {\n for (lanes = 0; lanes < concurrentQueues.length; lanes++)\n if (\n ((timeoutHandle = concurrentQueues[lanes]),\n (interruptedWork = timeoutHandle.interleaved),\n null !== interruptedWork)\n ) {\n timeoutHandle.interleaved = null;\n var firstInterleavedUpdate = interruptedWork.next,\n lastPendingUpdate = timeoutHandle.pending;\n if (null !== lastPendingUpdate) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n interruptedWork.next = firstPendingUpdate;\n }\n timeoutHandle.pending = interruptedWork;\n }\n concurrentQueues = null;\n }\n return root;\n}\nfunction handleError(root$jscomp$0, thrownValue) {\n do {\n var erroredWork = workInProgress;\n try {\n resetContextDependencies();\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n if (didScheduleRenderPhaseUpdate) {\n for (\n var hook = currentlyRenderingFiber$1.memoizedState;\n null !== hook;\n\n ) {\n var queue = hook.queue;\n null !== queue && (queue.pending = null);\n hook = hook.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n ReactCurrentOwner$2.current = null;\n if (null === erroredWork || null === erroredWork.return) {\n workInProgressRootExitStatus = 1;\n workInProgressRootFatalError = thrownValue;\n workInProgress = null;\n break;\n }\n a: {\n var root = root$jscomp$0,\n returnFiber = erroredWork.return,\n sourceFiber = erroredWork,\n value = thrownValue;\n thrownValue = workInProgressRootRenderLanes;\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n var wakeable = value,\n sourceFiber$jscomp$0 = sourceFiber,\n tag = sourceFiber$jscomp$0.tag;\n if (\n 0 === (sourceFiber$jscomp$0.mode & 1) &&\n (0 === tag || 11 === tag || 15 === tag)\n ) {\n var currentSource = sourceFiber$jscomp$0.alternate;\n currentSource\n ? ((sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue),\n (sourceFiber$jscomp$0.memoizedState =\n currentSource.memoizedState),\n (sourceFiber$jscomp$0.lanes = currentSource.lanes))\n : ((sourceFiber$jscomp$0.updateQueue = null),\n (sourceFiber$jscomp$0.memoizedState = null));\n }\n b: {\n sourceFiber$jscomp$0 = returnFiber;\n do {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag)) {\n var nextState = sourceFiber$jscomp$0.memoizedState;\n JSCompiler_temp =\n null !== nextState\n ? null !== nextState.dehydrated\n ? !0\n : !1\n : !0;\n }\n if (JSCompiler_temp) {\n var suspenseBoundary = sourceFiber$jscomp$0;\n break b;\n }\n sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return;\n } while (null !== sourceFiber$jscomp$0);\n suspenseBoundary = null;\n }\n if (null !== suspenseBoundary) {\n suspenseBoundary.flags &= -257;\n value = suspenseBoundary;\n sourceFiber$jscomp$0 = thrownValue;\n if (0 === (value.mode & 1))\n if (value === returnFiber) value.flags |= 65536;\n else {\n value.flags |= 128;\n sourceFiber.flags |= 131072;\n sourceFiber.flags &= -52805;\n if (1 === sourceFiber.tag)\n if (null === sourceFiber.alternate) sourceFiber.tag = 17;\n else {\n var update = createUpdate(-1, 1);\n update.tag = 2;\n enqueueUpdate(sourceFiber, update, 1);\n }\n sourceFiber.lanes |= 1;\n }\n else (value.flags |= 65536), (value.lanes = sourceFiber$jscomp$0);\n suspenseBoundary.mode & 1 &&\n attachPingListener(root, wakeable, thrownValue);\n thrownValue = suspenseBoundary;\n root = wakeable;\n var wakeables = thrownValue.updateQueue;\n if (null === wakeables) {\n var updateQueue = new Set();\n updateQueue.add(root);\n thrownValue.updateQueue = updateQueue;\n } else wakeables.add(root);\n break a;\n } else {\n if (0 === (thrownValue & 1)) {\n attachPingListener(root, wakeable, thrownValue);\n renderDidSuspendDelayIfPossible();\n break a;\n }\n value = Error(\n \"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\"\n );\n }\n }\n root = value = createCapturedValueAtFiber(value, sourceFiber);\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [root])\n : workInProgressRootConcurrentErrors.push(root);\n root = returnFiber;\n do {\n switch (root.tag) {\n case 3:\n wakeable = value;\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$jscomp$0 = createRootErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$jscomp$0);\n break a;\n case 1:\n wakeable = value;\n var ctor = root.type,\n instance = root.stateNode;\n if (\n 0 === (root.flags & 128) &&\n (\"function\" === typeof ctor.getDerivedStateFromError ||\n (null !== instance &&\n \"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance))))\n ) {\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$34 = createClassErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$34);\n break a;\n }\n }\n root = root.return;\n } while (null !== root);\n }\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n workInProgress === erroredWork &&\n null !== erroredWork &&\n (workInProgress = erroredWork = erroredWork.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (\n 0 === workInProgressRootExitStatus ||\n 3 === workInProgressRootExitStatus ||\n 2 === workInProgressRootExitStatus\n )\n workInProgressRootExitStatus = 4;\n null === workInProgressRoot ||\n (0 === (workInProgressRootSkippedLanes & 268435455) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455)) ||\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n}\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n do\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactCurrentDispatcher$2.current = prevDispatcher;\n if (null !== workInProgress)\n throw Error(\n \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\"\n );\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n return workInProgressRootExitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction workLoopConcurrent() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n ReactCurrentOwner$2.current = null;\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n if (0 === (completedWork.flags & 32768)) {\n if (\n ((current = completeWork(current, completedWork, subtreeRenderLanes)),\n null !== current)\n ) {\n workInProgress = current;\n return;\n }\n } else {\n current = unwindWork(current, completedWork);\n if (null !== current) {\n current.flags &= 32767;\n workInProgress = current;\n return;\n }\n if (null !== unitOfWork)\n (unitOfWork.flags |= 32768),\n (unitOfWork.subtreeFlags = 0),\n (unitOfWork.deletions = null);\n else {\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n return;\n }\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = currentUpdatePriority,\n prevTransition = ReactCurrentBatchConfig$2.transition;\n try {\n (ReactCurrentBatchConfig$2.transition = null),\n (currentUpdatePriority = 1),\n commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n previousUpdateLanePriority\n );\n } finally {\n (ReactCurrentBatchConfig$2.transition = prevTransition),\n (currentUpdatePriority = previousUpdateLanePriority);\n }\n return null;\n}\nfunction commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n renderPriorityLevel\n) {\n do flushPassiveEffects();\n while (null !== rootWithPendingPassiveEffects);\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n transitions = root.finishedWork;\n var lanes = root.finishedLanes;\n if (null === transitions) return null;\n root.finishedWork = null;\n root.finishedLanes = 0;\n if (transitions === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n root.callbackNode = null;\n root.callbackPriority = 0;\n var remainingLanes = transitions.lanes | transitions.childLanes;\n markRootFinished(root, remainingLanes);\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n (0 === (transitions.subtreeFlags & 2064) &&\n 0 === (transitions.flags & 2064)) ||\n rootDoesHavePassiveEffects ||\n ((rootDoesHavePassiveEffects = !0),\n scheduleCallback$1(NormalPriority, function() {\n flushPassiveEffects();\n return null;\n }));\n remainingLanes = 0 !== (transitions.flags & 15990);\n if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) {\n remainingLanes = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = null;\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority = 1;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n ReactCurrentOwner$2.current = null;\n commitBeforeMutationEffects(root, transitions);\n commitMutationEffectsOnFiber(transitions, root);\n root.current = transitions;\n commitLayoutEffects(transitions, root, lanes);\n requestPaint();\n executionContext = prevExecutionContext;\n currentUpdatePriority = previousPriority;\n ReactCurrentBatchConfig$2.transition = remainingLanes;\n } else root.current = transitions;\n rootDoesHavePassiveEffects &&\n ((rootDoesHavePassiveEffects = !1),\n (rootWithPendingPassiveEffects = root),\n (pendingPassiveEffectsLanes = lanes));\n remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n onCommitRoot(transitions.stateNode, renderPriorityLevel);\n ensureRootIsScheduled(root, now());\n if (null !== recoverableErrors)\n for (\n renderPriorityLevel = root.onRecoverableError, transitions = 0;\n transitions < recoverableErrors.length;\n transitions++\n )\n (lanes = recoverableErrors[transitions]),\n renderPriorityLevel(lanes.value, {\n componentStack: lanes.stack,\n digest: lanes.digest\n });\n if (hasUncaughtError)\n throw ((hasUncaughtError = !1),\n (root = firstUncaughtError),\n (firstUncaughtError = null),\n root);\n 0 !== (pendingPassiveEffectsLanes & 1) &&\n 0 !== root.tag &&\n flushPassiveEffects();\n remainingLanes = root.pendingLanes;\n 0 !== (remainingLanes & 1)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncCallbacks();\n return null;\n}\nfunction flushPassiveEffects() {\n if (null !== rootWithPendingPassiveEffects) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n prevTransition = ReactCurrentBatchConfig$2.transition,\n previousPriority = currentUpdatePriority;\n try {\n ReactCurrentBatchConfig$2.transition = null;\n currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority;\n if (null === rootWithPendingPassiveEffects)\n var JSCompiler_inline_result = !1;\n else {\n renderPriority = rootWithPendingPassiveEffects;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Cannot flush passive effects while already rendering.\");\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n for (nextEffect = renderPriority.current; null !== nextEffect; ) {\n var fiber = nextEffect,\n child = fiber.child;\n if (0 !== (nextEffect.flags & 16)) {\n var deletions = fiber.deletions;\n if (null !== deletions) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n for (nextEffect = fiberToDelete; null !== nextEffect; ) {\n var fiber$jscomp$0 = nextEffect;\n switch (fiber$jscomp$0.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber$jscomp$0, fiber);\n }\n var child$jscomp$0 = fiber$jscomp$0.child;\n if (null !== child$jscomp$0)\n (child$jscomp$0.return = fiber$jscomp$0),\n (nextEffect = child$jscomp$0);\n else\n for (; null !== nextEffect; ) {\n fiber$jscomp$0 = nextEffect;\n var sibling = fiber$jscomp$0.sibling,\n returnFiber = fiber$jscomp$0.return;\n detachFiberAfterEffects(fiber$jscomp$0);\n if (fiber$jscomp$0 === fiberToDelete) {\n nextEffect = null;\n break;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break;\n }\n nextEffect = returnFiber;\n }\n }\n }\n var previousFiber = fiber.alternate;\n if (null !== previousFiber) {\n var detachedChild = previousFiber.child;\n if (null !== detachedChild) {\n previousFiber.child = null;\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (null !== detachedChild);\n }\n }\n nextEffect = fiber;\n }\n }\n if (0 !== (fiber.subtreeFlags & 2064) && null !== child)\n (child.return = fiber), (nextEffect = child);\n else\n b: for (; null !== nextEffect; ) {\n fiber = nextEffect;\n if (0 !== (fiber.flags & 2048))\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(9, fiber, fiber.return);\n }\n var sibling$jscomp$0 = fiber.sibling;\n if (null !== sibling$jscomp$0) {\n sibling$jscomp$0.return = fiber.return;\n nextEffect = sibling$jscomp$0;\n break b;\n }\n nextEffect = fiber.return;\n }\n }\n var finishedWork = renderPriority.current;\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n child = nextEffect;\n var firstChild = child.child;\n if (0 !== (child.subtreeFlags & 2064) && null !== firstChild)\n (firstChild.return = child), (nextEffect = firstChild);\n else\n b: for (child = finishedWork; null !== nextEffect; ) {\n deletions = nextEffect;\n if (0 !== (deletions.flags & 2048))\n try {\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(9, deletions);\n }\n } catch (error) {\n captureCommitPhaseError(deletions, deletions.return, error);\n }\n if (deletions === child) {\n nextEffect = null;\n break b;\n }\n var sibling$jscomp$1 = deletions.sibling;\n if (null !== sibling$jscomp$1) {\n sibling$jscomp$1.return = deletions.return;\n nextEffect = sibling$jscomp$1;\n break b;\n }\n nextEffect = deletions.return;\n }\n }\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);\n } catch (err) {}\n JSCompiler_inline_result = !0;\n }\n return JSCompiler_inline_result;\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$2.transition = prevTransition);\n }\n }\n return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1);\n sourceFiber = requestEventTime();\n null !== rootFiber &&\n (markRootUpdated(rootFiber, 1, sourceFiber),\n ensureRootIsScheduled(rootFiber, sourceFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (\n nearestMountedAncestor = sourceFiber.return;\n null !== nearestMountedAncestor;\n\n ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createClassErrorUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n nearestMountedAncestor = enqueueUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n sourceFiber = requestEventTime();\n null !== nearestMountedAncestor &&\n (markRootUpdated(nearestMountedAncestor, 1, sourceFiber),\n ensureRootIsScheduled(nearestMountedAncestor, sourceFiber));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n wakeable = requestEventTime();\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 130023424) ===\n workInProgressRootRenderLanes &&\n 500 > now() - globalMostRecentFallbackTime)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes));\n ensureRootIsScheduled(root, wakeable);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane &&\n (0 === (boundaryFiber.mode & 1)\n ? (retryLane = 1)\n : ((retryLane = nextRetryLane),\n (nextRetryLane <<= 1),\n 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304)));\n var eventTime = requestEventTime();\n boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated(boundaryFiber, retryLane, eventTime),\n ensureRootIsScheduled(boundaryFiber, eventTime));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nvar beginWork$1;\nbeginWork$1 = function(current, workInProgress, renderLanes) {\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n didPerformWorkStackCursor.current\n )\n didReceiveUpdate = !0;\n else {\n if (\n 0 === (current.lanes & renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else didReceiveUpdate = !1;\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 2:\n var Component = workInProgress.type;\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n var context = getMaskedContext(\n workInProgress,\n contextStackCursor.current\n );\n prepareToReadContext(workInProgress, renderLanes);\n context = renderWithHooks(\n null,\n workInProgress,\n Component,\n current,\n context,\n renderLanes\n );\n workInProgress.flags |= 1;\n if (\n \"object\" === typeof context &&\n null !== context &&\n \"function\" === typeof context.render &&\n void 0 === context.$$typeof\n ) {\n workInProgress.tag = 1;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state\n ? context.state\n : null;\n initializeUpdateQueue(workInProgress);\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n mountClassInstance(workInProgress, Component, current, renderLanes);\n workInProgress = finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n hasContext,\n renderLanes\n );\n } else\n (workInProgress.tag = 0),\n reconcileChildren(null, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child);\n return workInProgress;\n case 16:\n Component = workInProgress.elementType;\n a: {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n context = Component._init;\n Component = context(Component._payload);\n workInProgress.type = Component;\n context = workInProgress.tag = resolveLazyComponentTag(Component);\n current = resolveDefaultProps(Component, current);\n switch (context) {\n case 0:\n workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 1:\n workInProgress = updateClassComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 11:\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 14:\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n Component,\n resolveDefaultProps(Component.type, current),\n renderLanes\n );\n break a;\n }\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n Component +\n \". Lazy element type must resolve to a class or function.\"\n );\n }\n return workInProgress;\n case 0:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateFunctionComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 1:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateClassComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 3:\n pushHostRootContext(workInProgress);\n if (null === current)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n context = workInProgress.pendingProps;\n Component = workInProgress.memoizedState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, context, null, renderLanes);\n context = workInProgress.memoizedState.element;\n context === Component\n ? (workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ))\n : (reconcileChildren(current, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child));\n return workInProgress;\n case 5:\n return (\n pushHostContext(workInProgress),\n (Component = workInProgress.pendingProps.children),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 6:\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (Component = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 11:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateForwardRef(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n a: {\n Component = workInProgress.type._context;\n context = workInProgress.pendingProps;\n hasContext = workInProgress.memoizedProps;\n var newValue = context.value;\n push(valueCursor, Component._currentValue);\n Component._currentValue = newValue;\n if (null !== hasContext)\n if (objectIs(hasContext.value, newValue)) {\n if (\n hasContext.children === context.children &&\n !didPerformWorkStackCursor.current\n ) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n } else\n for (\n hasContext = workInProgress.child,\n null !== hasContext && (hasContext.return = workInProgress);\n null !== hasContext;\n\n ) {\n var list = hasContext.dependencies;\n if (null !== list) {\n newValue = hasContext.child;\n for (\n var dependency = list.firstContext;\n null !== dependency;\n\n ) {\n if (dependency.context === Component) {\n if (1 === hasContext.tag) {\n dependency = createUpdate(-1, renderLanes & -renderLanes);\n dependency.tag = 2;\n var updateQueue = hasContext.updateQueue;\n if (null !== updateQueue) {\n updateQueue = updateQueue.shared;\n var pending = updateQueue.pending;\n null === pending\n ? (dependency.next = dependency)\n : ((dependency.next = pending.next),\n (pending.next = dependency));\n updateQueue.pending = dependency;\n }\n }\n hasContext.lanes |= renderLanes;\n dependency = hasContext.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n hasContext.return,\n renderLanes,\n workInProgress\n );\n list.lanes |= renderLanes;\n break;\n }\n dependency = dependency.next;\n }\n } else if (10 === hasContext.tag)\n newValue =\n hasContext.type === workInProgress.type\n ? null\n : hasContext.child;\n else if (18 === hasContext.tag) {\n newValue = hasContext.return;\n if (null === newValue)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n newValue.lanes |= renderLanes;\n list = newValue.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n newValue,\n renderLanes,\n workInProgress\n );\n newValue = hasContext.sibling;\n } else newValue = hasContext.child;\n if (null !== newValue) newValue.return = hasContext;\n else\n for (newValue = hasContext; null !== newValue; ) {\n if (newValue === workInProgress) {\n newValue = null;\n break;\n }\n hasContext = newValue.sibling;\n if (null !== hasContext) {\n hasContext.return = newValue.return;\n newValue = hasContext;\n break;\n }\n newValue = newValue.return;\n }\n hasContext = newValue;\n }\n reconcileChildren(\n current,\n workInProgress,\n context.children,\n renderLanes\n );\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 9:\n return (\n (context = workInProgress.type),\n (Component = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress, renderLanes),\n (context = readContext(context)),\n (Component = Component(context)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 14:\n return (\n (Component = workInProgress.type),\n (context = resolveDefaultProps(Component, workInProgress.pendingProps)),\n (context = resolveDefaultProps(Component.type, context)),\n updateMemoComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 17:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n (workInProgress.tag = 1),\n isContextProvider(Component)\n ? ((current = !0), pushContextProvider(workInProgress))\n : (current = !1),\n prepareToReadContext(workInProgress, renderLanes),\n constructClassInstance(workInProgress, Component, context),\n mountClassInstance(workInProgress, Component, context, renderLanes),\n finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n current,\n renderLanes\n )\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n};\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback(priorityLevel, callback);\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction resolveLazyComponentTag(Component) {\n if (\"function\" === typeof Component)\n return shouldConstruct(Component) ? 1 : 0;\n if (void 0 !== Component && null !== Component) {\n Component = Component.$$typeof;\n if (Component === REACT_FORWARD_REF_TYPE) return 11;\n if (Component === REACT_MEMO_TYPE) return 14;\n }\n return 2;\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 14680064;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 2;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type) fiberTag = 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 8;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiber(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiber(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiber(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONTEXT_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n throw Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n ((null == type ? type : typeof type) + \".\")\n );\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiber(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n pendingProps.stateNode = { isHidden: !1 };\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onRecoverableError\n) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = createLaneMap(0);\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = createLaneMap(0);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n}\nfunction createPortal(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nfunction findHostInstance(component) {\n var fiber = component._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof component.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n component = Object.keys(component).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" + component\n );\n }\n component = findCurrentHostFiber(fiber);\n return null === component ? null : component.stateNode;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n var current = container.current,\n eventTime = requestEventTime(),\n lane = requestUpdateLane(current);\n a: if (parentComponent) {\n parentComponent = parentComponent._reactInternals;\n b: {\n if (\n getNearestMountedFiber(parentComponent) !== parentComponent ||\n 1 !== parentComponent.tag\n )\n throw Error(\n \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var JSCompiler_inline_result = parentComponent;\n do {\n switch (JSCompiler_inline_result.tag) {\n case 3:\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode.context;\n break b;\n case 1:\n if (isContextProvider(JSCompiler_inline_result.type)) {\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode\n .__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n JSCompiler_inline_result = JSCompiler_inline_result.return;\n } while (null !== JSCompiler_inline_result);\n throw Error(\n \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (1 === parentComponent.tag) {\n var Component = parentComponent.type;\n if (isContextProvider(Component)) {\n parentComponent = processChildContext(\n parentComponent,\n Component,\n JSCompiler_inline_result\n );\n break a;\n }\n }\n parentComponent = JSCompiler_inline_result;\n } else parentComponent = emptyContextObject;\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(eventTime, lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(current, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, current, lane, eventTime),\n entangleTransitions(element, current, lane));\n return lane;\n}\nfunction emptyFindFiberByHostInstance() {\n return null;\n}\nfunction findNodeHandle(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (\"number\" === typeof componentOrHandle) return componentOrHandle;\n if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical._nativeTag;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical._nativeTag\n : componentOrHandle._nativeTag;\n}\nfunction onRecoverableError(error) {\n console.error(error);\n}\nfunction unmountComponentAtNode(containerTag) {\n var root = roots.get(containerTag);\n root &&\n updateContainer(null, root, null, function() {\n roots.delete(containerTag);\n });\n}\nbatchedUpdatesImpl = function(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= 1;\n try {\n return fn(a);\n } finally {\n (executionContext = prevExecutionContext),\n 0 === executionContext &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n }\n};\nvar roots = new Map(),\n devToolsConfig$jscomp$inline_979 = {\n findFiberByHostInstance: getInstanceFromTag,\n bundleType: 0,\n version: \"18.2.0-next-9e3b772b8-20220608\",\n rendererPackageName: \"react-native-renderer\",\n rendererConfig: {\n getInspectorDataForViewTag: function() {\n throw Error(\n \"getInspectorDataForViewTag() is not available in production\"\n );\n },\n getInspectorDataForViewAtPoint: function() {\n throw Error(\n \"getInspectorDataForViewAtPoint() is not available in production.\"\n );\n }.bind(null, findNodeHandle)\n }\n };\nvar internals$jscomp$inline_1247 = {\n bundleType: devToolsConfig$jscomp$inline_979.bundleType,\n version: devToolsConfig$jscomp$inline_979.version,\n rendererPackageName: devToolsConfig$jscomp$inline_979.rendererPackageName,\n rendererConfig: devToolsConfig$jscomp$inline_979.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher,\n findHostInstanceByFiber: function(fiber) {\n fiber = findCurrentHostFiber(fiber);\n return null === fiber ? null : fiber.stateNode;\n },\n findFiberByHostInstance:\n devToolsConfig$jscomp$inline_979.findFiberByHostInstance ||\n emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.2.0-next-9e3b772b8-20220608\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_1248 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_1248.isDisabled &&\n hook$jscomp$inline_1248.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_1248.inject(\n internals$jscomp$inline_1247\n )),\n (injectedHook = hook$jscomp$inline_1248);\n } catch (err) {}\n}\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n computeComponentStackForErrorReporting: function(reactTag) {\n return (reactTag = getInstanceFromTag(reactTag))\n ? getStackByFiberInDevAndProd(reactTag)\n : \"\";\n }\n};\nexports.createPortal = function(children, containerTag) {\n return createPortal(\n children,\n containerTag,\n null,\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null\n );\n};\nexports.dispatchCommand = function(handle, command, args) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.dispatchCommand(handle.node, command, args))\n : ReactNativePrivateInterface.UIManager.dispatchViewManagerCommand(\n handle._nativeTag,\n command,\n args\n ));\n};\nexports.findHostInstance_DEPRECATED = function(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (componentOrHandle._nativeTag) return componentOrHandle;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical\n : componentOrHandle;\n};\nexports.findNodeHandle = findNodeHandle;\nexports.getInspectorDataForInstance = void 0;\nexports.render = function(element, containerTag, callback) {\n var root = roots.get(containerTag);\n if (!root) {\n root = new FiberRootNode(containerTag, 0, !1, \"\", onRecoverableError);\n var JSCompiler_inline_result = createFiber(3, null, null, 0);\n root.current = JSCompiler_inline_result;\n JSCompiler_inline_result.stateNode = root;\n JSCompiler_inline_result.memoizedState = {\n element: null,\n isDehydrated: !1,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n };\n initializeUpdateQueue(JSCompiler_inline_result);\n roots.set(containerTag, root);\n }\n updateContainer(element, root, null, callback);\n a: if (((element = root.current), element.child))\n switch (element.child.tag) {\n case 5:\n element = element.child.stateNode;\n break a;\n default:\n element = element.child.stateNode;\n }\n else element = null;\n return element;\n};\nexports.sendAccessibilityEvent = function(handle, eventType) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType))\n : ReactNativePrivateInterface.legacySendAccessibilityEvent(\n handle._nativeTag,\n eventType\n ));\n};\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unmountComponentAtNodeAndRemoveContainer = function(containerTag) {\n unmountComponentAtNode(containerTag);\n ReactNativePrivateInterface.UIManager.removeRootView(containerTag);\n};\nexports.unstable_batchedUpdates = batchedUpdates;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +isReduceMotionEnabled: (\n onSuccess: (isReduceMotionEnabled: boolean) => void,\n ) => void;\n +isTouchExplorationEnabled: (\n onSuccess: (isScreenReaderEnabled: boolean) => void,\n ) => void;\n +isAccessibilityServiceEnabled?: ?(\n onSuccess: (isAccessibilityServiceEnabled: boolean) => void,\n ) => void;\n +setAccessibilityFocus: (reactTag: number) => void;\n +announceForAccessibility: (announcement: string) => void;\n +getRecommendedTimeoutMillis?: (\n mSec: number,\n onSuccess: (recommendedTimeoutMillis: number) => void,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('AccessibilityInfo'): ?Spec);\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 * @format\n * @flow\n * @generate-docs\n */\n\n'use strict';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {ActivityIndicator as ActivityIndicatorType} from './ActivityIndicator.flow';\n\nimport StyleSheet, {type ColorValue} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport * as React from 'react';\n\nconst PlatformActivityIndicator =\n Platform.OS === 'android'\n ? require('../ProgressBarAndroid/ProgressBarAndroid')\n : require('./ActivityIndicatorViewNativeComponent').default;\n\nconst GRAY = '#999999';\n\ntype IndicatorSize = number | 'small' | 'large';\n\ntype IOSProps = $ReadOnly<{|\n /**\n Whether the indicator should hide when not animating.\n\n @platform ios\n */\n hidesWhenStopped?: ?boolean,\n|}>;\ntype Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n\n /**\n \tWhether to show the indicator (`true`) or hide it (`false`).\n */\n animating?: ?boolean,\n\n /**\n The foreground color of the spinner.\n\n @default {@platform android} `null` (system accent default color)\n @default {@platform ios} '#999999'\n */\n color?: ?ColorValue,\n\n /**\n Size of the indicator.\n\n @type enum(`'small'`, `'large'`)\n @type {@platform android} number\n */\n size?: ?IndicatorSize,\n|}>;\n\nconst ActivityIndicator = (\n {\n animating = true,\n color = Platform.OS === 'ios' ? GRAY : null,\n hidesWhenStopped = true,\n onLayout,\n size = 'small',\n style,\n ...restProps\n }: Props,\n forwardedRef?: any,\n) => {\n let sizeStyle;\n let sizeProp;\n\n switch (size) {\n case 'small':\n sizeStyle = styles.sizeSmall;\n sizeProp = 'small';\n break;\n case 'large':\n sizeStyle = styles.sizeLarge;\n sizeProp = 'large';\n break;\n default:\n sizeStyle = {height: size, width: size};\n break;\n }\n\n const nativeProps = {\n animating,\n color,\n hidesWhenStopped,\n ...restProps,\n ref: forwardedRef,\n style: sizeStyle,\n size: sizeProp,\n };\n\n const androidProps = {\n styleAttr: 'Normal',\n indeterminate: true,\n };\n\n return (\n <View\n onLayout={onLayout}\n style={StyleSheet.compose(styles.container, style)}>\n {Platform.OS === 'android' ? (\n // $FlowFixMe[prop-missing] Flow doesn't know when this is the android component\n <PlatformActivityIndicator {...nativeProps} {...androidProps} />\n ) : (\n /* $FlowFixMe[prop-missing] (>=0.106.0 site=react_native_android_fb) This comment\n * suppresses an error found when Flow v0.106 was deployed. To see the\n * error, delete this comment and run Flow. */\n <PlatformActivityIndicator {...nativeProps} />\n )}\n </View>\n );\n};\n\n/**\n Displays a circular loading indicator.\n\n ```SnackPlayer name=ActivityIndicator%20Function%20Component%20Example\n import React from \"react\";\n import { ActivityIndicator, StyleSheet, Text, View } from \"react-native\";\n\n const App = () => (\n <View style={[styles.container, styles.horizontal]}>\n <ActivityIndicator />\n <ActivityIndicator size=\"large\" />\n <ActivityIndicator size=\"small\" color=\"#0000ff\" />\n <ActivityIndicator size=\"large\" color=\"#00ff00\" />\n </View>\n );\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\"\n },\n horizontal: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n padding: 10\n }\n });\n export default App;\n ```\n\n ```SnackPlayer name=ActivityIndicator%20Class%20Component%20Example\n import React, { Component } from \"react\";\n import { ActivityIndicator, StyleSheet, Text, View } from \"react-native\";\n\n class App extends Component {\n render() {\n return (\n <View style={[styles.container, styles.horizontal]}>\n <ActivityIndicator />\n <ActivityIndicator size=\"large\" />\n <ActivityIndicator size=\"small\" color=\"#0000ff\" />\n <ActivityIndicator size=\"large\" color=\"#00ff00\" />\n </View>\n );\n }\n }\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\"\n },\n horizontal: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n padding: 10\n }\n });\n export default App;\n ```\n*/\n\nconst ActivityIndicatorWithRef: ActivityIndicatorType =\n React.forwardRef(ActivityIndicator);\nActivityIndicatorWithRef.displayName = 'ActivityIndicator';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n sizeSmall: {\n width: 20,\n height: 20,\n },\n sizeLarge: {\n width: 36,\n height: 36,\n },\n});\n\nmodule.exports = ActivityIndicatorWithRef;\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {WithDefault} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Whether the indicator should hide when not animating (true by default).\n *\n * See https://reactnative.dev/docs/activityindicator#hideswhenstopped\n */\n hidesWhenStopped?: WithDefault<boolean, false>,\n\n /**\n * Whether to show the indicator (true, the default) or hide it (false).\n *\n * See https://reactnative.dev/docs/activityindicator#animating\n */\n animating?: WithDefault<boolean, false>,\n\n /**\n * The foreground color of the spinner (default is gray).\n *\n * See https://reactnative.dev/docs/activityindicator#color\n */\n color?: ?ColorValue,\n\n /**\n * Size of the indicator (default is 'small').\n * Passing a number to the size prop is only supported on Android.\n *\n * See https://reactnative.dev/docs/activityindicator#size\n */\n size?: WithDefault<'small' | 'large', 'small'>,\n|}>;\n\nexport default (codegenNativeComponent<NativeProps>('ActivityIndicatorView', {\n paperComponentName: 'RCTActivityIndicatorView',\n}): HostComponent<NativeProps>);\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 * @format\n * @flow strict-local\n */\n\n// TODO: move this file to shims/ReactNative (requires React update and sync)\n\nimport type {HostComponent} from '../../Libraries/Renderer/shims/ReactNativeTypes';\n\nimport requireNativeComponent from '../../Libraries/ReactNative/requireNativeComponent';\nimport UIManager from '../ReactNative/UIManager';\n\n// TODO: import from CodegenSchema once workspaces are enabled\ntype Options = $ReadOnly<{|\n interfaceOnly?: boolean,\n paperComponentName?: string,\n paperComponentNameDeprecated?: string,\n excludedPlatforms?: $ReadOnlyArray<'iOS' | 'android'>,\n|}>;\n\nexport type NativeComponentType<T> = HostComponent<T>;\n\n// If this function runs then that means the view configs were not\n// generated at build time using `GenerateViewConfigJs.js`. Thus\n// we need to `requireNativeComponent` to get the view configs from view managers.\n// `requireNativeComponent` is not available in Bridgeless mode.\n// e.g. This function runs at runtime if `codegenNativeComponent` was not called\n// from a file suffixed with NativeComponent.js.\nfunction codegenNativeComponent<Props>(\n componentName: string,\n options?: Options,\n): NativeComponentType<Props> {\n if (global.RN$Bridgeless === true) {\n const errorMessage =\n \"Native Component '\" +\n componentName +\n \"' that calls codegenNativeComponent was not code generated at build time. Please check its definition.\";\n console.error(errorMessage);\n }\n\n let componentNameInUse =\n options && options.paperComponentName != null\n ? options.paperComponentName\n : componentName;\n\n if (options != null && options.paperComponentNameDeprecated != null) {\n if (UIManager.hasViewManagerConfig(componentName)) {\n componentNameInUse = componentName;\n } else if (\n options.paperComponentNameDeprecated != null &&\n UIManager.hasViewManagerConfig(options.paperComponentNameDeprecated)\n ) {\n // $FlowFixMe[incompatible-type]\n componentNameInUse = options.paperComponentNameDeprecated;\n } else {\n throw new Error(\n `Failed to find native component for either ${componentName} or ${\n options.paperComponentNameDeprecated ?? '(unknown)'\n }`,\n );\n }\n }\n\n return (requireNativeComponent<Props>(\n // $FlowFixMe[incompatible-call]\n componentNameInUse,\n ): HostComponent<Props>);\n}\n\nexport default codegenNativeComponent;\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 * @format\n */\n\n'use strict';\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\n\nconst createReactNativeComponentClass = require('../Renderer/shims/createReactNativeComponentClass');\nconst getNativeComponentAttributes = require('./getNativeComponentAttributes');\n\n/**\n * Creates values that can be used like React components which represent native\n * view managers. You should create JavaScript modules that wrap these values so\n * that the results are memoized. Example:\n *\n * const View = requireNativeComponent('RCTView');\n *\n */\n\nconst requireNativeComponent = <T>(uiViewClassName: string): HostComponent<T> =>\n ((createReactNativeComponentClass(uiViewClassName, () =>\n getNativeComponentAttributes(uiViewClassName),\n ): any): HostComponent<T>);\n\nmodule.exports = requireNativeComponent;\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 * @noformat\n * @flow strict-local\n * @generated SignedSource<<7d3d4090dadea2daa09d92e5e66f6e5d>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {ReactNativeViewConfigRegistry} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';\nimport {type ViewConfig} from './ReactNativeTypes';\n\nconst {register} = ReactNativeViewConfigRegistry;\n\n/**\n * Creates a renderable ReactNative host component.\n * Use this method for view configs that are loaded from UIManager.\n * Use createReactNativeComponentClass() for view configs defined within JavaScript.\n *\n * @param {string} config iOS View configuration.\n * @private\n */\nconst createReactNativeComponentClass = function(\n name: string,\n callback: () => ViewConfig,\n): string {\n return register(name, callback);\n};\n\nmodule.exports = createReactNativeComponentClass;\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 * @format\n * @flow\n * @generate-docs\n */\n\n'use strict';\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\nimport type {Button as ButtonType} from './Button.flow';\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityState,\n} from './View/ViewAccessibility';\n\nimport StyleSheet, {type ColorValue} from '../StyleSheet/StyleSheet';\nimport Text from '../Text/Text';\nimport Platform from '../Utilities/Platform';\nimport TouchableNativeFeedback from './Touchable/TouchableNativeFeedback';\nimport TouchableOpacity from './Touchable/TouchableOpacity';\nimport View from './View/View';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype ButtonProps = $ReadOnly<{|\n /**\n Text to display inside the button. On Android the given title will be\n converted to the uppercased form.\n */\n title: string,\n\n /**\n Handler to be called when the user taps the button. The first function\n argument is an event in form of [PressEvent](pressevent).\n */\n onPress: (event?: PressEvent) => mixed,\n\n /**\n If `true`, doesn't play system sound on touch.\n\n @platform android\n\n @default false\n */\n touchSoundDisabled?: ?boolean,\n\n /**\n Color of the text (iOS), or background color of the button (Android).\n\n @default {@platform android} '#2196F3'\n @default {@platform ios} '#007AFF'\n */\n color?: ?ColorValue,\n\n /**\n TV preferred focus.\n\n @platform tv\n\n @default false\n */\n hasTVPreferredFocus?: ?boolean,\n\n /**\n Designates the next view to receive focus when the user navigates down. See\n the [Android documentation][android:nextFocusDown].\n\n [android:nextFocusDown]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusDown\n\n @platform android, tv\n */\n nextFocusDown?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates forward.\n See the [Android documentation][android:nextFocusForward].\n\n [android:nextFocusForward]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusForward\n\n @platform android, tv\n */\n nextFocusForward?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates left. See\n the [Android documentation][android:nextFocusLeft].\n\n [android:nextFocusLeft]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusLeft\n\n @platform android, tv\n */\n nextFocusLeft?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates right. See\n the [Android documentation][android:nextFocusRight].\n\n [android:nextFocusRight]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusRight\n\n @platform android, tv\n */\n nextFocusRight?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates up. See\n the [Android documentation][android:nextFocusUp].\n\n [android:nextFocusUp]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusUp\n\n @platform android, tv\n */\n nextFocusUp?: ?number,\n\n /**\n Text to display for blindness accessibility features.\n */\n accessibilityLabel?: ?string,\n /**\n * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel\n * https://github.com/facebook/react-native/issues/34424\n */\n 'aria-label'?: ?string,\n /**\n If `true`, disable all interactions for this component.\n\n @default false\n */\n disabled?: ?boolean,\n\n /**\n Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n\n /**\n * Accessibility props.\n */\n accessible?: ?boolean,\n accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n accessibilityState?: ?AccessibilityState,\n\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n\n /**\n * [Android] Controlling if a view fires accessibility events and if it is reported to accessibility services.\n */\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n accessibilityHint?: ?string,\n accessibilityLanguage?: ?Stringish,\n|}>;\n\n/**\n A basic button component that should render nicely on any platform. Supports a\n minimal level of customization.\n\n If this button doesn't look right for your app, you can build your own button\n using [TouchableOpacity](touchableopacity) or\n [TouchableWithoutFeedback](touchablewithoutfeedback). For inspiration, look at\n the [source code for this button component][button:source]. Or, take a look at\n the [wide variety of button components built by the community]\n [button:examples].\n\n [button:source]:\n https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js\n\n [button:examples]:\n https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button\n\n ```jsx\n <Button\n onPress={onPressLearnMore}\n title=\"Learn More\"\n color=\"#841584\"\n accessibilityLabel=\"Learn more about this purple button\"\n />\n ```\n\n ```SnackPlayer name=Button%20Example\n import React from 'react';\n import { StyleSheet, Button, View, SafeAreaView, Text, Alert } from 'react-native';\n\n const Separator = () => (\n <View style={styles.separator} />\n );\n\n const App = () => (\n <SafeAreaView style={styles.container}>\n <View>\n <Text style={styles.title}>\n The title and onPress handler are required. It is recommended to set accessibilityLabel to help make your app usable by everyone.\n </Text>\n <Button\n title=\"Press me\"\n onPress={() => Alert.alert('Simple Button pressed')}\n />\n </View>\n <Separator />\n <View>\n <Text style={styles.title}>\n Adjust the color in a way that looks standard on each platform. On iOS, the color prop controls the color of the text. On Android, the color adjusts the background color of the button.\n </Text>\n <Button\n title=\"Press me\"\n color=\"#f194ff\"\n onPress={() => Alert.alert('Button with adjusted color pressed')}\n />\n </View>\n <Separator />\n <View>\n <Text style={styles.title}>\n All interaction for the component are disabled.\n </Text>\n <Button\n title=\"Press me\"\n disabled\n onPress={() => Alert.alert('Cannot press this one')}\n />\n </View>\n <Separator />\n <View>\n <Text style={styles.title}>\n This layout strategy lets the title define the width of the button.\n </Text>\n <View style={styles.fixToText}>\n <Button\n title=\"Left button\"\n onPress={() => Alert.alert('Left button pressed')}\n />\n <Button\n title=\"Right button\"\n onPress={() => Alert.alert('Right button pressed')}\n />\n </View>\n </View>\n </SafeAreaView>\n );\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n marginHorizontal: 16,\n },\n title: {\n textAlign: 'center',\n marginVertical: 8,\n },\n fixToText: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n separator: {\n marginVertical: 8,\n borderBottomColor: '#737373',\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n });\n\n export default App;\n ```\n */\n\nclass Button extends React.Component<ButtonProps> {\n render(): React.Node {\n const {\n accessibilityLabel,\n accessibilityState,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n importantForAccessibility,\n color,\n onPress,\n touchSoundDisabled,\n title,\n hasTVPreferredFocus,\n nextFocusDown,\n nextFocusForward,\n nextFocusLeft,\n nextFocusRight,\n nextFocusUp,\n testID,\n accessible,\n accessibilityActions,\n accessibilityHint,\n accessibilityLanguage,\n onAccessibilityAction,\n } = this.props;\n const buttonStyles = [styles.button];\n const textStyles = [styles.text];\n if (color) {\n if (Platform.OS === 'ios') {\n textStyles.push({color: color});\n } else {\n buttonStyles.push({backgroundColor: color});\n }\n }\n\n let _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n const disabled =\n this.props.disabled != null\n ? this.props.disabled\n : _accessibilityState?.disabled;\n\n _accessibilityState =\n disabled !== _accessibilityState?.disabled\n ? {..._accessibilityState, disabled}\n : _accessibilityState;\n\n if (disabled) {\n buttonStyles.push(styles.buttonDisabled);\n textStyles.push(styles.textDisabled);\n }\n\n invariant(\n typeof title === 'string',\n 'The title prop of a Button must be a string',\n );\n const formattedTitle =\n Platform.OS === 'android' ? title.toUpperCase() : title;\n const Touchable =\n Platform.OS === 'android' ? TouchableNativeFeedback : TouchableOpacity;\n\n // If `no` is specified for `importantForAccessibility`, it will be changed to `no-hide-descendants` because the text inside should not be focused.\n const _importantForAccessibility =\n importantForAccessibility === 'no'\n ? 'no-hide-descendants'\n : importantForAccessibility;\n\n return (\n <Touchable\n accessible={accessible}\n accessibilityActions={accessibilityActions}\n onAccessibilityAction={onAccessibilityAction}\n accessibilityLabel={ariaLabel || accessibilityLabel}\n accessibilityHint={accessibilityHint}\n accessibilityLanguage={accessibilityLanguage}\n accessibilityRole=\"button\"\n accessibilityState={_accessibilityState}\n importantForAccessibility={_importantForAccessibility}\n hasTVPreferredFocus={hasTVPreferredFocus}\n nextFocusDown={nextFocusDown}\n nextFocusForward={nextFocusForward}\n nextFocusLeft={nextFocusLeft}\n nextFocusRight={nextFocusRight}\n nextFocusUp={nextFocusUp}\n testID={testID}\n disabled={disabled}\n onPress={onPress}\n touchSoundDisabled={touchSoundDisabled}>\n <View style={buttonStyles}>\n <Text style={textStyles} disabled={disabled}>\n {formattedTitle}\n </Text>\n </View>\n </Touchable>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n button: Platform.select({\n ios: {},\n android: {\n elevation: 4,\n // Material design blue from https://material.google.com/style/color.html#color-color-palette\n backgroundColor: '#2196F3',\n borderRadius: 2,\n },\n }),\n text: {\n textAlign: 'center',\n margin: 8,\n ...Platform.select({\n ios: {\n // iOS blue from https://developer.apple.com/ios/human-interface-guidelines/visual-design/color/\n color: '#007AFF',\n fontSize: 18,\n },\n android: {\n color: 'white',\n fontWeight: '500',\n },\n }),\n },\n buttonDisabled: Platform.select({\n ios: {},\n android: {\n elevation: 0,\n backgroundColor: '#dfdfdf',\n },\n }),\n textDisabled: Platform.select({\n ios: {\n color: '#cdcdcd',\n },\n android: {\n color: '#a1a1a1',\n },\n }),\n});\n\nmodule.exports = (Button: ButtonType);\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 strict-local\n * @format\n */\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\n\nimport * as PressabilityDebug from '../Pressability/PressabilityDebug';\nimport usePressability from '../Pressability/usePressability';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport processColor from '../StyleSheet/processColor';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport {getAccessibilityRoleFromRole} from '../Utilities/AcessibilityMapping';\nimport Platform from '../Utilities/Platform';\nimport TextAncestor from './TextAncestor';\nimport {NativeText, NativeVirtualText} from './TextNativeComponent';\nimport {type TextProps} from './TextProps';\nimport * as React from 'react';\nimport {useContext, useMemo, useState} from 'react';\n\n/**\n * Text is the fundamental component for displaying text.\n *\n * @see https://reactnative.dev/docs/text\n */\nconst Text: React.AbstractComponent<\n TextProps,\n React.ElementRef<typeof NativeText | typeof NativeVirtualText>,\n> = React.forwardRef((props: TextProps, forwardedRef) => {\n const {\n accessible,\n accessibilityLabel,\n accessibilityRole,\n allowFontScaling,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n ellipsizeMode,\n id,\n nativeID,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n onResponderTerminationRequest,\n onStartShouldSetResponder,\n pressRetentionOffset,\n role,\n suppressHighlighting,\n ...restProps\n } = props;\n\n const [isHighlighted, setHighlighted] = useState(false);\n\n const _accessibilityState = {\n busy: ariaBusy ?? props.accessibilityState?.busy,\n checked: ariaChecked ?? props.accessibilityState?.checked,\n disabled: ariaDisabled ?? props.accessibilityState?.disabled,\n expanded: ariaExpanded ?? props.accessibilityState?.expanded,\n selected: ariaSelected ?? props.accessibilityState?.selected,\n };\n\n const _disabled =\n restProps.disabled != null\n ? restProps.disabled\n : _accessibilityState?.disabled;\n\n const nativeTextAccessibilityState =\n _disabled !== _accessibilityState?.disabled\n ? {..._accessibilityState, disabled: _disabled}\n : _accessibilityState;\n\n const isPressable =\n (onPress != null ||\n onLongPress != null ||\n onStartShouldSetResponder != null) &&\n _disabled !== true;\n\n const initialized = useLazyInitialization(isPressable);\n const config = useMemo(\n () =>\n initialized\n ? {\n disabled: !isPressable,\n pressRectOffset: pressRetentionOffset,\n onLongPress,\n onPress,\n onPressIn(event: PressEvent) {\n setHighlighted(!suppressHighlighting);\n onPressIn?.(event);\n },\n onPressOut(event: PressEvent) {\n setHighlighted(false);\n onPressOut?.(event);\n },\n onResponderTerminationRequest_DEPRECATED:\n onResponderTerminationRequest,\n onStartShouldSetResponder_DEPRECATED: onStartShouldSetResponder,\n }\n : null,\n [\n initialized,\n isPressable,\n pressRetentionOffset,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n onResponderTerminationRequest,\n onStartShouldSetResponder,\n suppressHighlighting,\n ],\n );\n\n const eventHandlers = usePressability(config);\n const eventHandlersForText = useMemo(\n () =>\n eventHandlers == null\n ? null\n : {\n onResponderGrant(event: PressEvent) {\n eventHandlers.onResponderGrant(event);\n if (onResponderGrant != null) {\n onResponderGrant(event);\n }\n },\n onResponderMove(event: PressEvent) {\n eventHandlers.onResponderMove(event);\n if (onResponderMove != null) {\n onResponderMove(event);\n }\n },\n onResponderRelease(event: PressEvent) {\n eventHandlers.onResponderRelease(event);\n if (onResponderRelease != null) {\n onResponderRelease(event);\n }\n },\n onResponderTerminate(event: PressEvent) {\n eventHandlers.onResponderTerminate(event);\n if (onResponderTerminate != null) {\n onResponderTerminate(event);\n }\n },\n onClick: eventHandlers.onClick,\n onResponderTerminationRequest:\n eventHandlers.onResponderTerminationRequest,\n onStartShouldSetResponder: eventHandlers.onStartShouldSetResponder,\n },\n [\n eventHandlers,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n ],\n );\n\n // TODO: Move this processing to the view configuration.\n const selectionColor =\n restProps.selectionColor == null\n ? null\n : processColor(restProps.selectionColor);\n\n let style = flattenStyle(restProps.style);\n\n let _selectable = restProps.selectable;\n if (style?.userSelect != null) {\n _selectable = userSelectToSelectableMap[style.userSelect];\n }\n\n if (style?.verticalAlign != null) {\n style = StyleSheet.compose(style, {\n textAlignVertical:\n verticalAlignToTextAlignVerticalMap[style.verticalAlign],\n });\n }\n\n if (__DEV__) {\n if (PressabilityDebug.isEnabled() && onPress != null) {\n style = StyleSheet.compose(restProps.style, {\n color: 'magenta',\n });\n }\n }\n\n let numberOfLines = restProps.numberOfLines;\n if (numberOfLines != null && !(numberOfLines >= 0)) {\n console.error(\n `'numberOfLines' in <Text> must be a non-negative number, received: ${numberOfLines}. The value will be set to 0.`,\n );\n numberOfLines = 0;\n }\n\n const hasTextAncestor = useContext(TextAncestor);\n\n const _accessible = Platform.select({\n ios: accessible !== false,\n default: accessible,\n });\n\n let flattenedStyle = flattenStyle(style);\n\n if (typeof flattenedStyle?.fontWeight === 'number') {\n flattenedStyle.fontWeight = flattenedStyle?.fontWeight.toString();\n }\n\n const _hasOnPressOrOnLongPress =\n props.onPress != null || props.onLongPress != null;\n\n return hasTextAncestor ? (\n <NativeVirtualText\n {...restProps}\n accessibilityState={_accessibilityState}\n {...eventHandlersForText}\n accessibilityLabel={ariaLabel ?? accessibilityLabel}\n accessibilityRole={\n role ? getAccessibilityRoleFromRole(role) : accessibilityRole\n }\n isHighlighted={isHighlighted}\n isPressable={isPressable}\n selectable={_selectable}\n nativeID={id ?? nativeID}\n numberOfLines={numberOfLines}\n selectionColor={selectionColor}\n style={flattenedStyle}\n ref={forwardedRef}\n />\n ) : (\n <TextAncestor.Provider value={true}>\n <NativeText\n {...restProps}\n {...eventHandlersForText}\n disabled={_disabled}\n selectable={_selectable}\n accessible={\n accessible == null && Platform.OS === 'android'\n ? _hasOnPressOrOnLongPress\n : _accessible\n }\n accessibilityLabel={ariaLabel ?? accessibilityLabel}\n accessibilityState={nativeTextAccessibilityState}\n accessibilityRole={\n role ? getAccessibilityRoleFromRole(role) : accessibilityRole\n }\n allowFontScaling={allowFontScaling !== false}\n ellipsizeMode={ellipsizeMode ?? 'tail'}\n isHighlighted={isHighlighted}\n nativeID={id ?? nativeID}\n numberOfLines={numberOfLines}\n selectionColor={selectionColor}\n style={flattenedStyle}\n ref={forwardedRef}\n />\n </TextAncestor.Provider>\n );\n});\n\nText.displayName = 'Text';\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nText.propTypes = require('deprecated-react-native-prop-types').TextPropTypes;\n\n/**\n * Returns false until the first time `newValue` is true, after which this will\n * always return true. This is necessary to lazily initialize `Pressability` so\n * we do not eagerly create one for every pressable `Text` component.\n */\nfunction useLazyInitialization(newValue: boolean): boolean {\n const [oldValue, setValue] = useState(newValue);\n if (!oldValue && newValue) {\n setValue(newValue);\n }\n return oldValue;\n}\n\nconst userSelectToSelectableMap = {\n auto: true,\n text: true,\n none: false,\n contain: true,\n all: true,\n};\n\nconst verticalAlignToTextAlignVerticalMap = {\n auto: 'auto',\n top: 'top',\n bottom: 'bottom',\n middle: 'center',\n};\n\nmodule.exports = Text;\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 strict-local\n * @format\n */\n\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\n\nimport View from '../Components/View/View';\nimport normalizeColor from '../StyleSheet/normalizeColor';\nimport {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n color: ColorValue,\n hitSlop: ?RectOrSize,\n|}>;\n\n/**\n * Displays a debug overlay to visualize press targets when enabled via the\n * React Native Inspector. Calls to this module should be guarded by `__DEV__`,\n * for example:\n *\n * return (\n * <View>\n * {children}\n * {__DEV__ ? (\n * <PressabilityDebugView color=\"...\" hitSlop={props.hitSlop} />\n * ) : null}\n * </View>\n * );\n *\n */\nexport function PressabilityDebugView(props: Props): React.Node {\n if (__DEV__) {\n if (isEnabled()) {\n const normalizedColor = normalizeColor(props.color);\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n const baseColor =\n '#' + (normalizedColor ?? 0).toString(16).padStart(8, '0');\n const hitSlop = normalizeRect(props.hitSlop);\n return (\n <View\n pointerEvents=\"none\"\n style={\n // eslint-disable-next-line react-native/no-inline-styles\n {\n backgroundColor: baseColor.slice(0, -2) + '0F', // 15%\n borderColor: baseColor.slice(0, -2) + '55', // 85%\n borderStyle: 'dashed',\n borderWidth: 1,\n bottom: -(hitSlop?.bottom ?? 0),\n left: -(hitSlop?.left ?? 0),\n position: 'absolute',\n right: -(hitSlop?.right ?? 0),\n top: -(hitSlop?.top ?? 0),\n }\n }\n />\n );\n }\n }\n return null;\n}\n\nlet isDebugEnabled = false;\n\nexport function isEnabled(): boolean {\n if (__DEV__) {\n return isDebugEnabled;\n }\n return false;\n}\n\nexport function setEnabled(value: boolean): void {\n if (__DEV__) {\n isDebugEnabled = value;\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 * @format\n * @flow strict\n */\n\nexport type Rect = $ReadOnly<{|\n bottom?: ?number,\n left?: ?number,\n right?: ?number,\n top?: ?number,\n|}>;\n\nexport type RectOrSize = Rect | number;\n\nexport function createSquare(size: number): Rect {\n return {bottom: size, left: size, right: size, top: size};\n}\n\nexport function normalizeRect(rectOrSize: ?RectOrSize): ?Rect {\n return typeof rectOrSize === 'number' ? createSquare(rectOrSize) : rectOrSize;\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 strict-local\n * @format\n */\n\nimport Pressability, {\n type EventHandlers,\n type PressabilityConfig,\n} from './Pressability';\nimport {useEffect, useRef} from 'react';\n\n/**\n * Creates a persistent instance of `Pressability` that automatically configures\n * itself and resets. Accepts null `config` to support lazy initialization. Once\n * initialized, will not un-initialize until the component has been unmounted.\n */\nexport default function usePressability(\n config: ?PressabilityConfig,\n): ?EventHandlers {\n const pressabilityRef = useRef<?Pressability>(null);\n if (config != null && pressabilityRef.current == null) {\n pressabilityRef.current = new Pressability(config);\n }\n const pressability = pressabilityRef.current;\n\n // On the initial mount, this is a no-op. On updates, `pressability` will be\n // re-configured to use the new configuration.\n useEffect(() => {\n if (config != null && pressability != null) {\n pressability.configure(config);\n }\n }, [config, pressability]);\n\n // On unmount, reset pending state and timers inside `pressability`. This is\n // a separate effect because we do not want to reset when `config` changes.\n useEffect(() => {\n if (pressability != null) {\n return () => {\n pressability.reset();\n };\n }\n }, [pressability]);\n\n return pressability == null ? null : pressability.getEventHandlers();\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 strict-local\n * @format\n */\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n BlurEvent,\n FocusEvent,\n MouseEvent,\n PressEvent,\n} from '../Types/CoreEventTypes';\n\nimport SoundManager from '../Components/Sound/SoundManager';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport UIManager from '../ReactNative/UIManager';\nimport {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';\nimport {type PointerEvent} from '../Types/CoreEventTypes';\nimport Platform from '../Utilities/Platform';\nimport {isHoverEnabled} from './HoverState';\nimport PressabilityPerformanceEventEmitter from './PressabilityPerformanceEventEmitter.js';\nimport {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type PressabilityConfig = $ReadOnly<{|\n /**\n * Whether a press gesture can be interrupted by a parent gesture such as a\n * scroll event. Defaults to true.\n */\n cancelable?: ?boolean,\n\n /**\n * Whether to disable initialization of the press gesture.\n */\n disabled?: ?boolean,\n\n /**\n * Amount to extend the `VisualRect` by to create `HitRect`.\n */\n hitSlop?: ?RectOrSize,\n\n /**\n * Amount to extend the `HitRect` by to create `PressRect`.\n */\n pressRectOffset?: ?RectOrSize,\n\n /**\n * Whether to disable the systemm sound when `onPress` fires on Android.\n **/\n android_disableSound?: ?boolean,\n\n /**\n * Duration to wait after hover in before calling `onHoverIn`.\n */\n delayHoverIn?: ?number,\n\n /**\n * Duration to wait after hover out before calling `onHoverOut`.\n */\n delayHoverOut?: ?number,\n\n /**\n * Duration (in addition to `delayPressIn`) after which a press gesture is\n * considered a long press gesture. Defaults to 500 (milliseconds).\n */\n delayLongPress?: ?number,\n\n /**\n * Duration to wait after press down before calling `onPressIn`.\n */\n delayPressIn?: ?number,\n\n /**\n * Duration to wait after letting up before calling `onPressOut`.\n */\n delayPressOut?: ?number,\n\n /**\n * Minimum duration to wait between calling `onPressIn` and `onPressOut`.\n */\n minPressDuration?: ?number,\n\n /**\n * Called after the element loses focus.\n */\n onBlur?: ?(event: BlurEvent) => mixed,\n\n /**\n * Called after the element is focused.\n */\n onFocus?: ?(event: FocusEvent) => mixed,\n\n /**\n * Called when the hover is activated to provide visual feedback.\n */\n onHoverIn?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when the hover is deactivated to undo visual feedback.\n */\n onHoverOut?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when a long press gesture has been triggered.\n */\n onLongPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a press gestute has been triggered.\n */\n onPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press is activated to provide visual feedback.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press location moves. (This should rarely be used.)\n */\n onPressMove?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press is deactivated to undo visual feedback.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Returns whether a long press gesture should cancel the press gesture.\n * Defaults to true.\n */\n onLongPressShouldCancelPress_DEPRECATED?: ?() => boolean,\n\n /**\n * If `cancelable` is set, this will be ignored.\n *\n * Returns whether to yield to a lock termination request (e.g. if a native\n * scroll gesture attempts to steal the responder lock).\n */\n onResponderTerminationRequest_DEPRECATED?: ?() => boolean,\n\n /**\n * If `disabled` is set, this will be ignored.\n *\n * Returns whether to start a press gesture.\n *\n * @deprecated\n */\n onStartShouldSetResponder_DEPRECATED?: ?() => boolean,\n|}>;\n\nexport type EventHandlers = $ReadOnly<{|\n onBlur: (event: BlurEvent) => void,\n onClick: (event: PressEvent) => void,\n onFocus: (event: FocusEvent) => void,\n onMouseEnter?: (event: MouseEvent) => void,\n onMouseLeave?: (event: MouseEvent) => void,\n onPointerEnter?: (event: PointerEvent) => void,\n onPointerLeave?: (event: PointerEvent) => void,\n onResponderGrant: (event: PressEvent) => void,\n onResponderMove: (event: PressEvent) => void,\n onResponderRelease: (event: PressEvent) => void,\n onResponderTerminate: (event: PressEvent) => void,\n onResponderTerminationRequest: () => boolean,\n onStartShouldSetResponder: () => boolean,\n|}>;\n\ntype TouchState =\n | 'NOT_RESPONDER'\n | 'RESPONDER_INACTIVE_PRESS_IN'\n | 'RESPONDER_INACTIVE_PRESS_OUT'\n | 'RESPONDER_ACTIVE_PRESS_IN'\n | 'RESPONDER_ACTIVE_PRESS_OUT'\n | 'RESPONDER_ACTIVE_LONG_PRESS_IN'\n | 'RESPONDER_ACTIVE_LONG_PRESS_OUT'\n | 'ERROR';\n\nconst Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'ERROR',\n RESPONDER_TERMINATED: 'ERROR',\n ENTER_PRESS_RECT: 'ERROR',\n LEAVE_PRESS_RECT: 'ERROR',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_IN',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n ERROR: {\n DELAY: 'NOT_RESPONDER',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'NOT_RESPONDER',\n LEAVE_PRESS_RECT: 'NOT_RESPONDER',\n LONG_PRESS_DETECTED: 'NOT_RESPONDER',\n },\n});\n\nconst isActiveSignal = (signal: TouchState) =>\n signal === 'RESPONDER_ACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n\nconst isActivationSignal = (signal: TouchState) =>\n signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||\n signal === 'RESPONDER_ACTIVE_PRESS_IN';\n\nconst isPressInSignal = (signal: TouchState) =>\n signal === 'RESPONDER_INACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n\nconst isTerminalSignal = (signal: TouchSignal) =>\n signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';\n\nconst DEFAULT_LONG_PRESS_DELAY_MS = 500;\nconst DEFAULT_PRESS_RECT_OFFSETS = {\n bottom: 30,\n left: 20,\n right: 20,\n top: 20,\n};\nconst DEFAULT_MIN_PRESS_DURATION = 130;\n\n/**\n * Pressability implements press handling capabilities.\n *\n * =========================== Pressability Tutorial ===========================\n *\n * The `Pressability` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `Pressability`, do the following:\n *\n * 1. Instantiate `Pressability` and store it on your component's state.\n *\n * state = {\n * pressability: new Pressability({\n * // ...\n * }),\n * };\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * <View {...this.state.pressability.getEventHandlers()} />\n * );\n *\n * 3. Reset `Pressability` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressability.reset();\n * }\n *\n * ==================== Pressability Implementation Details ====================\n *\n * `Pressability` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`, which\n * │ │ ┌────────────┐ │ │ is expanded via the prop `hitSlop`.\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates for\n * │ └──────────────────┘ │ as long as the press stays within `PressRect`.\n * │ PressRect o │\n * └────────────────────│───┘\n * Out Region └────── `PressRect`, which is expanded via the prop\n * `pressRectOffset`, allows presses to move\n * beyond `HitRect` while maintaining activation\n * and being eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_IN ├────────▶ │ PRESS_IN ├────────────▶ │ LONG_PRESS_IN │\n * └─┬───────────────────┘ └─┬─────────────────┘ └─┬─────────────────┘\n * │ ▲ │ ▲ │ ▲\n * │LEAVE_ │ │LEAVE_ │ │LEAVE_ │\n * │PRESS_RECT │ENTER_ │PRESS_RECT │ENTER_ │PRESS_RECT │ENTER_\n * │ │PRESS_RECT │ │PRESS_RECT │ │PRESS_RECT\n * ▼ │ ▼ │ ▼ │\n * ┌─────────────┴───────┐ ┌─────────────┴─────┐ ┌─────────────┴─────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ │ RESPONDER_ACTIVE_ │\n * │ PRESS_OUT ├────────▶ │ PRESS_OUT │ │ LONG_PRESS_OUT │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onPress` and `onLongPress` that occur when a\n * responder is release while in the \"press in\" states.\n */\nexport default class Pressability {\n _config: PressabilityConfig;\n _eventHandlers: ?EventHandlers = null;\n _hoverInDelayTimeout: ?TimeoutID = null;\n _hoverOutDelayTimeout: ?TimeoutID = null;\n _isHovered: boolean = false;\n _longPressDelayTimeout: ?TimeoutID = null;\n _pressDelayTimeout: ?TimeoutID = null;\n _pressOutDelayTimeout: ?TimeoutID = null;\n _responderID: ?number | React.ElementRef<HostComponent<mixed>> = null;\n _responderRegion: ?$ReadOnly<{|\n bottom: number,\n left: number,\n right: number,\n top: number,\n |}> = null;\n _touchActivatePosition: ?$ReadOnly<{|\n pageX: number,\n pageY: number,\n |}>;\n _touchActivateTime: ?number;\n _touchState: TouchState = 'NOT_RESPONDER';\n\n constructor(config: PressabilityConfig) {\n this.configure(config);\n }\n\n configure(config: PressabilityConfig): void {\n this._config = config;\n }\n\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n reset(): void {\n this._cancelHoverInDelayTimeout();\n this._cancelHoverOutDelayTimeout();\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n\n // Ensure that, if any async event handlers are fired after unmount\n // due to a race, we don't call any configured callbacks.\n this._config = Object.freeze({});\n }\n\n /**\n * Returns a set of props to spread into the interactive element.\n */\n getEventHandlers(): EventHandlers {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n\n _createEventHandlers(): EventHandlers {\n const focusEventHandlers = {\n onBlur: (event: BlurEvent): void => {\n const {onBlur} = this._config;\n if (onBlur != null) {\n onBlur(event);\n }\n },\n onFocus: (event: FocusEvent): void => {\n const {onFocus} = this._config;\n if (onFocus != null) {\n onFocus(event);\n }\n },\n };\n\n const responderEventHandlers = {\n onStartShouldSetResponder: (): boolean => {\n const {disabled} = this._config;\n if (disabled == null) {\n const {onStartShouldSetResponder_DEPRECATED} = this._config;\n return onStartShouldSetResponder_DEPRECATED == null\n ? true\n : onStartShouldSetResponder_DEPRECATED();\n }\n return !disabled;\n },\n\n onResponderGrant: (event: PressEvent): void => {\n event.persist();\n\n this._cancelPressOutDelayTimeout();\n\n this._responderID = event.currentTarget;\n this._touchState = 'NOT_RESPONDER';\n this._receiveSignal('RESPONDER_GRANT', event);\n\n const delayPressIn = normalizeDelay(this._config.delayPressIn);\n if (delayPressIn > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal('DELAY', event);\n }, delayPressIn);\n } else {\n this._receiveSignal('DELAY', event);\n }\n\n const delayLongPress = normalizeDelay(\n this._config.delayLongPress,\n 10,\n DEFAULT_LONG_PRESS_DELAY_MS - delayPressIn,\n );\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressIn);\n },\n\n onResponderMove: (event: PressEvent): void => {\n const {onPressMove} = this._config;\n if (onPressMove != null) {\n onPressMove(event);\n }\n\n // Region may not have finished being measured, yet.\n const responderRegion = this._responderRegion;\n if (responderRegion == null) {\n return;\n }\n\n const touch = getTouchFromPressEvent(event);\n if (touch == null) {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', event);\n return;\n }\n\n if (this._touchActivatePosition != null) {\n const deltaX = this._touchActivatePosition.pageX - touch.pageX;\n const deltaY = this._touchActivatePosition.pageY - touch.pageY;\n if (Math.hypot(deltaX, deltaY) > 10) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n if (this._isTouchWithinResponderRegion(touch, responderRegion)) {\n this._receiveSignal('ENTER_PRESS_RECT', event);\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', event);\n }\n },\n\n onResponderRelease: (event: PressEvent): void => {\n this._receiveSignal('RESPONDER_RELEASE', event);\n },\n\n onResponderTerminate: (event: PressEvent): void => {\n this._receiveSignal('RESPONDER_TERMINATED', event);\n },\n\n onResponderTerminationRequest: (): boolean => {\n const {cancelable} = this._config;\n if (cancelable == null) {\n const {onResponderTerminationRequest_DEPRECATED} = this._config;\n return onResponderTerminationRequest_DEPRECATED == null\n ? true\n : onResponderTerminationRequest_DEPRECATED();\n }\n return cancelable;\n },\n\n onClick: (event: PressEvent): void => {\n const {onPress, disabled} = this._config;\n if (onPress != null && disabled !== true) {\n onPress(event);\n }\n },\n };\n\n if (process.env.NODE_ENV === 'test') {\n // We are setting this in order to find this node in ReactNativeTestTools\n // $FlowFixMe[prop-missing]\n responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig =\n () => this._config;\n }\n\n if (\n ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()\n ) {\n const hoverPointerEvents = {\n onPointerEnter: undefined,\n onPointerLeave: undefined,\n };\n const {onHoverIn, onHoverOut} = this._config;\n if (onHoverIn != null) {\n hoverPointerEvents.onPointerEnter = (event: PointerEvent) => {\n this._isHovered = true;\n this._cancelHoverOutDelayTimeout();\n if (onHoverIn != null) {\n const delayHoverIn = normalizeDelay(this._config.delayHoverIn);\n if (delayHoverIn > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverIn(convertPointerEventToMouseEvent(event));\n }, delayHoverIn);\n } else {\n onHoverIn(convertPointerEventToMouseEvent(event));\n }\n }\n };\n }\n if (onHoverOut != null) {\n hoverPointerEvents.onPointerLeave = (event: PointerEvent) => {\n if (this._isHovered) {\n this._isHovered = false;\n this._cancelHoverInDelayTimeout();\n if (onHoverOut != null) {\n const delayHoverOut = normalizeDelay(this._config.delayHoverOut);\n if (delayHoverOut > 0) {\n event.persist();\n this._hoverOutDelayTimeout = setTimeout(() => {\n onHoverOut(convertPointerEventToMouseEvent(event));\n }, delayHoverOut);\n } else {\n onHoverOut(convertPointerEventToMouseEvent(event));\n }\n }\n }\n };\n }\n return {\n ...focusEventHandlers,\n ...responderEventHandlers,\n ...hoverPointerEvents,\n };\n } else {\n const mouseEventHandlers =\n Platform.OS === 'ios' || Platform.OS === 'android'\n ? null\n : {\n onMouseEnter: (event: MouseEvent): void => {\n if (isHoverEnabled()) {\n this._isHovered = true;\n this._cancelHoverOutDelayTimeout();\n const {onHoverIn} = this._config;\n if (onHoverIn != null) {\n const delayHoverIn = normalizeDelay(\n this._config.delayHoverIn,\n );\n if (delayHoverIn > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverIn(event);\n }, delayHoverIn);\n } else {\n onHoverIn(event);\n }\n }\n }\n },\n\n onMouseLeave: (event: MouseEvent): void => {\n if (this._isHovered) {\n this._isHovered = false;\n this._cancelHoverInDelayTimeout();\n const {onHoverOut} = this._config;\n if (onHoverOut != null) {\n const delayHoverOut = normalizeDelay(\n this._config.delayHoverOut,\n );\n if (delayHoverOut > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverOut(event);\n }, delayHoverOut);\n } else {\n onHoverOut(event);\n }\n }\n }\n },\n };\n return {\n ...focusEventHandlers,\n ...responderEventHandlers,\n ...mouseEventHandlers,\n };\n }\n }\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n _receiveSignal(signal: TouchSignal, event: PressEvent): void {\n // Especially on iOS, not all events have timestamps associated.\n // For telemetry purposes, this doesn't matter too much, as long as *some* do.\n // Since the native timestamp is integral for logging telemetry, just skip\n // events if they don't have a timestamp attached.\n if (event.nativeEvent.timestamp != null) {\n PressabilityPerformanceEventEmitter.emitEvent(() => {\n return {\n signal,\n nativeTimestamp: event.nativeEvent.timestamp,\n };\n });\n }\n\n const prevState = this._touchState;\n const nextState = Transitions[prevState]?.[signal];\n if (this._responderID == null && signal === 'RESPONDER_RELEASE') {\n return;\n }\n invariant(\n nextState != null && nextState !== 'ERROR',\n 'Pressability: Invalid signal `%s` for state `%s` on responder: %s',\n signal,\n prevState,\n typeof this._responderID === 'number'\n ? this._responderID\n : '<<host component>>',\n );\n if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n this._touchState = nextState;\n }\n }\n\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n _performTransitionSideEffects(\n prevState: TouchState,\n nextState: TouchState,\n signal: TouchSignal,\n event: PressEvent,\n ): void {\n if (isTerminalSignal(signal)) {\n this._touchActivatePosition = null;\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition =\n prevState === 'NOT_RESPONDER' &&\n nextState === 'RESPONDER_INACTIVE_PRESS_IN';\n\n const isActivationTransition =\n !isActivationSignal(prevState) && isActivationSignal(nextState);\n\n if (isInitialTransition || isActivationTransition) {\n this._measureResponderRegion();\n }\n\n if (isPressInSignal(prevState) && signal === 'LONG_PRESS_DETECTED') {\n const {onLongPress} = this._config;\n if (onLongPress != null) {\n onLongPress(event);\n }\n }\n\n const isPrevActive = isActiveSignal(prevState);\n const isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressInSignal(prevState) && signal === 'RESPONDER_RELEASE') {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n const {onLongPress, onPress, android_disableSound} = this._config;\n if (onPress != null) {\n const isPressCanceledByLongPress =\n onLongPress != null &&\n prevState === 'RESPONDER_ACTIVE_LONG_PRESS_IN' &&\n this._shouldLongPressCancelPress();\n if (!isPressCanceledByLongPress) {\n if (Platform.OS === 'android' && android_disableSound !== true) {\n SoundManager.playTouchSound();\n }\n onPress(event);\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n }\n\n _activate(event: PressEvent): void {\n const {onPressIn} = this._config;\n const {pageX, pageY} = getTouchFromPressEvent(event);\n this._touchActivatePosition = {pageX, pageY};\n this._touchActivateTime = Date.now();\n if (onPressIn != null) {\n onPressIn(event);\n }\n }\n\n _deactivate(event: PressEvent): void {\n const {onPressOut} = this._config;\n if (onPressOut != null) {\n const minPressDuration = normalizeDelay(\n this._config.minPressDuration,\n 0,\n DEFAULT_MIN_PRESS_DURATION,\n );\n const pressDuration = Date.now() - (this._touchActivateTime ?? 0);\n const delayPressOut = Math.max(\n minPressDuration - pressDuration,\n normalizeDelay(this._config.delayPressOut),\n );\n if (delayPressOut > 0) {\n event.persist();\n this._pressOutDelayTimeout = setTimeout(() => {\n onPressOut(event);\n }, delayPressOut);\n } else {\n onPressOut(event);\n }\n }\n this._touchActivateTime = null;\n }\n\n _measureResponderRegion(): void {\n if (this._responderID == null) {\n return;\n }\n\n if (typeof this._responderID === 'number') {\n UIManager.measure(this._responderID, this._measureCallback);\n } else {\n this._responderID.measure(this._measureCallback);\n }\n }\n\n _measureCallback = (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => {\n if (!left && !top && !width && !height && !pageX && !pageY) {\n return;\n }\n this._responderRegion = {\n bottom: pageY + height,\n left: pageX,\n right: pageX + width,\n top: pageY,\n };\n };\n\n _isTouchWithinResponderRegion(\n touch: $PropertyType<PressEvent, 'nativeEvent'>,\n responderRegion: $ReadOnly<{|\n bottom: number,\n left: number,\n right: number,\n top: number,\n |}>,\n ): boolean {\n const hitSlop = normalizeRect(this._config.hitSlop);\n const pressRectOffset = normalizeRect(this._config.pressRectOffset);\n\n let regionBottom = responderRegion.bottom;\n let regionLeft = responderRegion.left;\n let regionRight = responderRegion.right;\n let regionTop = responderRegion.top;\n\n if (hitSlop != null) {\n if (hitSlop.bottom != null) {\n regionBottom += hitSlop.bottom;\n }\n if (hitSlop.left != null) {\n regionLeft -= hitSlop.left;\n }\n if (hitSlop.right != null) {\n regionRight += hitSlop.right;\n }\n if (hitSlop.top != null) {\n regionTop -= hitSlop.top;\n }\n }\n\n regionBottom +=\n pressRectOffset?.bottom ?? DEFAULT_PRESS_RECT_OFFSETS.bottom;\n regionLeft -= pressRectOffset?.left ?? DEFAULT_PRESS_RECT_OFFSETS.left;\n regionRight += pressRectOffset?.right ?? DEFAULT_PRESS_RECT_OFFSETS.right;\n regionTop -= pressRectOffset?.top ?? DEFAULT_PRESS_RECT_OFFSETS.top;\n\n return (\n touch.pageX > regionLeft &&\n touch.pageX < regionRight &&\n touch.pageY > regionTop &&\n touch.pageY < regionBottom\n );\n }\n\n _handleLongPress(event: PressEvent): void {\n if (\n this._touchState === 'RESPONDER_ACTIVE_PRESS_IN' ||\n this._touchState === 'RESPONDER_ACTIVE_LONG_PRESS_IN'\n ) {\n this._receiveSignal('LONG_PRESS_DETECTED', event);\n }\n }\n\n _shouldLongPressCancelPress(): boolean {\n return (\n this._config.onLongPressShouldCancelPress_DEPRECATED == null ||\n this._config.onLongPressShouldCancelPress_DEPRECATED()\n );\n }\n\n _cancelHoverInDelayTimeout(): void {\n if (this._hoverInDelayTimeout != null) {\n clearTimeout(this._hoverInDelayTimeout);\n this._hoverInDelayTimeout = null;\n }\n }\n\n _cancelHoverOutDelayTimeout(): void {\n if (this._hoverOutDelayTimeout != null) {\n clearTimeout(this._hoverOutDelayTimeout);\n this._hoverOutDelayTimeout = null;\n }\n }\n\n _cancelLongPressDelayTimeout(): void {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n\n _cancelPressDelayTimeout(): void {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n\n _cancelPressOutDelayTimeout(): void {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n}\n\nfunction normalizeDelay(\n delay: ?number,\n min: number = 0,\n fallback: number = 0,\n): number {\n return Math.max(min, delay ?? fallback);\n}\n\nconst getTouchFromPressEvent = (event: PressEvent) => {\n const {changedTouches, touches} = event.nativeEvent;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n return event.nativeEvent;\n};\n\nfunction convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {\n const {clientX, clientY} = input.nativeEvent;\n return {\n ...input,\n nativeEvent: {\n clientX,\n clientY,\n pageX: clientX,\n pageY: clientY,\n timestamp: input.timeStamp,\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 * @format\n * @flow strict\n */\n\nimport NativeSoundManager from './NativeSoundManager';\n\nconst SoundManager = {\n playTouchSound: function (): void {\n if (NativeSoundManager) {\n NativeSoundManager.playTouchSound();\n }\n },\n};\n\nmodule.exports = SoundManager;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\n/**\n * Native Module used for playing sounds in native platform.\n */\nexport interface Spec extends TurboModule {\n +playTouchSound: () => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('SoundManager'): ?Spec);\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 strict-local\n * @format\n */\n\n'use strict';\n\nexport type FeatureFlags = {|\n /**\n * Function used to enable / disabled Layout Animations in React Native.\n * Default value = true.\n */\n isLayoutAnimationEnabled: () => boolean,\n /**\n * Function used to enable / disable W3C pointer event emitting in React Native.\n * If enabled you must also flip the equivalent native flags on each platform:\n * iOS -> RCTSetDispatchW3CPointerEvents\n * Android -> ReactFeatureFlags.dispatchPointerEvents\n */\n shouldEmitW3CPointerEvents: () => boolean,\n /**\n * Function used to enable / disable Pressibility from using W3C Pointer Events\n * for its hover callbacks\n */\n shouldPressibilityUseW3CPointerEventsForHover: () => boolean,\n /**\n * Enables an experimental flush-queue debouncing in Animated.js.\n */\n animatedShouldDebounceQueueFlush: () => boolean,\n /**\n * Enables an experimental mega-operation for Animated.js that replaces\n * many calls to native with a single call into native, to reduce JSI/JNI\n * traffic.\n */\n animatedShouldUseSingleOp: () => boolean,\n /**\n * This feature flag enables an experimental render system that allows\n * to render react components driven by classes written in C++.\n */\n enableCppRenderSystem: () => boolean,\n\n removeListenersOnDetach: () => boolean,\n|};\n\nconst ReactNativeFeatureFlags: FeatureFlags = {\n isLayoutAnimationEnabled: () => true,\n shouldEmitW3CPointerEvents: () => false,\n shouldPressibilityUseW3CPointerEventsForHover: () => false,\n animatedShouldDebounceQueueFlush: () => false,\n animatedShouldUseSingleOp: () => false,\n enableCppRenderSystem: () => false,\n removeListenersOnDetach: () => false,\n};\n\nmodule.exports = ReactNativeFeatureFlags;\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 strict\n * @format\n */\n\nimport Platform from '../Utilities/Platform';\n\nlet isEnabled = false;\n\nif (Platform.OS === 'web') {\n const canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement,\n );\n\n if (canUseDOM) {\n /**\n * Web browsers emulate mouse events (and hover states) after touch events.\n * This code infers when the currently-in-use modality supports hover\n * (including for multi-modality devices) and considers \"hover\" to be enabled\n * if a mouse movement occurs more than 1 second after the last touch event.\n * This threshold is long enough to account for longer delays between the\n * browser firing touch and mouse events on low-powered devices.\n */\n const HOVER_THRESHOLD_MS = 1000;\n let lastTouchTimestamp = 0;\n\n const enableHover = () => {\n if (isEnabled || Date.now() - lastTouchTimestamp < HOVER_THRESHOLD_MS) {\n return;\n }\n isEnabled = true;\n };\n\n const disableHover = () => {\n lastTouchTimestamp = Date.now();\n if (isEnabled) {\n isEnabled = false;\n }\n };\n\n document.addEventListener('touchstart', disableHover, true);\n document.addEventListener('touchmove', disableHover, true);\n document.addEventListener('mousemove', enableHover, true);\n }\n}\n\nexport function isHoverEnabled(): boolean {\n return isEnabled;\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 strict-local\n * @format\n */\n\nimport {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';\n\nexport type PressabilityPerformanceEvent = $ReadOnly<{|\n signal: TouchSignal,\n nativeTimestamp: number,\n|}>;\nexport type PressabilityPerformanceEventListener =\n PressabilityPerformanceEvent => void;\n\nclass PressabilityPerformanceEventEmitter {\n _listeners: Array<PressabilityPerformanceEventListener> = [];\n\n constructor() {}\n\n addListener(listener: PressabilityPerformanceEventListener): void {\n this._listeners.push(listener);\n }\n\n removeListener(listener: PressabilityPerformanceEventListener): void {\n const index = this._listeners.indexOf(listener);\n if (index > -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n emitEvent(constructEvent: () => PressabilityPerformanceEvent): void {\n if (this._listeners.length === 0) {\n return;\n }\n\n const event = constructEvent();\n this._listeners.forEach(listener => listener(event));\n }\n}\n\nconst PressabilityPerformanceEventEmitterSingleton: PressabilityPerformanceEventEmitter =\n new PressabilityPerformanceEventEmitter();\n\nexport default PressabilityPerformanceEventEmitterSingleton;\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 * @format\n */\n\nimport {createViewConfig} from '../NativeComponent/ViewConfig';\nimport UIManager from '../ReactNative/UIManager';\nimport createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';\nimport {type HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport {type ProcessedColorValue} from '../StyleSheet/processColor';\nimport {type PressEvent} from '../Types/CoreEventTypes';\nimport {type TextProps} from './TextProps';\n\ntype NativeTextProps = $ReadOnly<{\n ...TextProps,\n isHighlighted?: ?boolean,\n selectionColor?: ?ProcessedColorValue,\n onClick?: ?(event: PressEvent) => mixed,\n // This is only needed for platforms that optimize text hit testing, e.g.,\n // react-native-windows. It can be used to only hit test virtual text spans\n // that have pressable events attached to them.\n isPressable?: ?boolean,\n}>;\n\nconst textViewConfig = {\n validAttributes: {\n isHighlighted: true,\n isPressable: true,\n numberOfLines: true,\n ellipsizeMode: true,\n allowFontScaling: true,\n dynamicTypeRamp: true,\n maxFontSizeMultiplier: true,\n disabled: true,\n selectable: true,\n selectionColor: true,\n adjustsFontSizeToFit: true,\n minimumFontScale: true,\n textBreakStrategy: true,\n onTextLayout: true,\n onInlineViewLayout: true,\n dataDetectorType: true,\n android_hyphenationFrequency: true,\n lineBreakStrategyIOS: true,\n },\n directEventTypes: {\n topTextLayout: {\n registrationName: 'onTextLayout',\n },\n topInlineViewLayout: {\n registrationName: 'onInlineViewLayout',\n },\n },\n uiViewClassName: 'RCTText',\n};\n\nconst virtualTextViewConfig = {\n validAttributes: {\n isHighlighted: true,\n isPressable: true,\n maxFontSizeMultiplier: true,\n },\n uiViewClassName: 'RCTVirtualText',\n};\n\nexport const NativeText: HostComponent<NativeTextProps> =\n (createReactNativeComponentClass('RCTText', () =>\n createViewConfig(textViewConfig),\n ): any);\n\nexport const NativeVirtualText: HostComponent<NativeTextProps> =\n !global.RN$Bridgeless && !UIManager.hasViewManagerConfig('RCTVirtualText')\n ? NativeText\n : (createReactNativeComponentClass('RCTVirtualText', () =>\n createViewConfig(virtualTextViewConfig),\n ): any);\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 * @format\n * @flow\n */\n\n'use strict';\n\nmodule.exports = {\n get ColorPropType() {\n return require('./DeprecatedColorPropType');\n },\n get EdgeInsetsPropType() {\n return require('./DeprecatedEdgeInsetsPropType');\n },\n get ImagePropTypes() {\n return require('./DeprecatedImagePropType');\n },\n get PointPropType() {\n return require('./DeprecatedPointPropType');\n },\n get TextInputPropTypes() {\n return require('./DeprecatedTextInputPropTypes');\n },\n get TextPropTypes() {\n return require('./DeprecatedTextPropTypes');\n },\n get ViewPropTypes() {\n return require('./DeprecatedViewPropTypes');\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 * @format\n */\n\n'use strict';\n\nconst normalizeColor = require('@react-native/normalize-color');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst colorPropType = function(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n) {\n const color = props[propName];\n\n if (color == null) {\n if (isRequired) {\n return new Error(\n 'Required ' +\n location +\n ' `' +\n (propFullName || propName) +\n '` was not specified in `' +\n componentName +\n '`.',\n );\n }\n return;\n }\n\n if (typeof color === 'number') {\n // Developers should not use a number, but we are using the prop type\n // both for user provided colors and for transformed ones. This isn't ideal\n // and should be fixed but will do for now...\n return;\n }\n\n if (typeof color === 'string' && normalizeColor(color) === null) {\n return new Error(\n 'Invalid ' +\n location +\n ' `' +\n (propFullName || propName) +\n '` supplied to `' +\n componentName +\n '`: ' +\n color +\n '\\n' +\n `Valid color formats are\n - '#f0f' (#rgb)\n - '#f0fc' (#rgba)\n - '#ff00ff' (#rrggbb)\n - '#ff00ff00' (#rrggbbaa)\n - 'rgb(255, 255, 255)'\n - 'rgba(255, 255, 255, 1.0)'\n - 'hsl(360, 100%, 100%)'\n - 'hsla(360, 100%, 100%, 1.0)'\n - 'transparent'\n - 'red'\n - 0xff00ff00 (0xrrggbbaa)\n`,\n );\n }\n};\n\nconst ColorPropType = colorPropType.bind(null, false /* isRequired */);\nColorPropType.isRequired = colorPropType.bind(null, true /* isRequired */);\n\nmodule.exports = ColorPropType;\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 * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/Rect.js\n */\nconst DeprecatedEdgeInsetsPropType = PropTypes.shape({\n bottom: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n});\n\nmodule.exports = DeprecatedEdgeInsetsPropType;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\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 * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedImageSourcePropType = require('./DeprecatedImageSourcePropType');\nconst DeprecatedImageStylePropTypes = require('./DeprecatedImageStylePropTypes');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst DeprecatedViewPropTypes = require('./DeprecatedViewPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Image/ImageProps.js\n */\nconst DeprecatedImagePropType = {\n ...DeprecatedViewPropTypes,\n alt: PropTypes.string,\n blurRadius: PropTypes.number,\n capInsets: DeprecatedEdgeInsetsPropType,\n crossOrigin: PropTypes.oneOf(['anonymous', 'use-credentials']),\n defaultSource: DeprecatedImageSourcePropType,\n fadeDuration: PropTypes.number,\n height: PropTypes.number,\n internal_analyticTag: PropTypes.string,\n loadingIndicatorSource: PropTypes.oneOfType([\n PropTypes.shape({\n uri: PropTypes.string,\n }),\n PropTypes.number,\n ]),\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n onLoadEnd: PropTypes.func,\n onLoadStart: PropTypes.func,\n onPartialLoad: PropTypes.func,\n onProgress: PropTypes.func,\n progressiveRenderingEnabled: PropTypes.bool,\n referrerPolicy: PropTypes.oneOf([\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ]),\n resizeMethod: PropTypes.oneOf(['auto', 'resize', 'scale']),\n resizeMode: PropTypes.oneOf([\n 'cover',\n 'contain',\n 'stretch',\n 'repeat',\n 'center',\n ]),\n source: DeprecatedImageSourcePropType,\n src: PropTypes.string,\n srcSet: PropTypes.string,\n style: DeprecatedStyleSheetPropType(DeprecatedImageStylePropTypes),\n testID: PropTypes.string,\n tintColor: DeprecatedColorPropType,\n width: PropTypes.number,\n};\n\nmodule.exports = DeprecatedImagePropType;\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 * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Image/ImageSource.js\n */\nconst ImageURISourcePropType = PropTypes.shape({\n body: PropTypes.string,\n bundle: PropTypes.string,\n cache: PropTypes.oneOf([\n 'default',\n 'force-cache',\n 'only-if-cached',\n 'reload',\n ]),\n headers: PropTypes.objectOf(PropTypes.string),\n height: PropTypes.number,\n method: PropTypes.string,\n scale: PropTypes.number,\n uri: PropTypes.string,\n width: PropTypes.number,\n});\n\nconst ImageSourcePropType = PropTypes.oneOfType([\n ImageURISourcePropType,\n PropTypes.number,\n PropTypes.arrayOf(ImageURISourcePropType),\n]);\n\nmodule.exports = ImageSourcePropType;\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 * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedLayoutPropTypes = require('./DeprecatedLayoutPropTypes');\nconst DeprecatedShadowPropTypesIOS = require('./DeprecatedShadowPropTypesIOS');\nconst DeprecatedTransformPropTypes = require('./DeprecatedTransformPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedImageStylePropTypes = {\n ...DeprecatedLayoutPropTypes,\n ...DeprecatedShadowPropTypesIOS,\n ...DeprecatedTransformPropTypes,\n backfaceVisibility: PropTypes.oneOf(['hidden', 'visible']),\n backgroundColor: DeprecatedColorPropType,\n borderBottomLeftRadius: PropTypes.number,\n borderBottomRightRadius: PropTypes.number,\n borderColor: DeprecatedColorPropType,\n borderRadius: PropTypes.number,\n borderTopLeftRadius: PropTypes.number,\n borderTopRightRadius: PropTypes.number,\n borderWidth: PropTypes.number,\n objectFit: PropTypes.oneOf(['contain', 'cover', 'fill', 'scale-down']),\n opacity: PropTypes.number,\n overflow: PropTypes.oneOf(['hidden', 'visible']),\n overlayColor: PropTypes.string,\n tintColor: DeprecatedColorPropType,\n resizeMode: PropTypes.oneOf([\n 'center',\n 'contain',\n 'cover',\n 'repeat',\n 'stretch',\n ]),\n};\n\nmodule.exports = DeprecatedImageStylePropTypes;\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 * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\nconst DimensionValuePropType = PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n]);\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedLayoutPropTypes = {\n alignContent: PropTypes.oneOf([\n 'center',\n 'flex-end',\n 'flex-start',\n 'space-around',\n 'space-between',\n 'stretch',\n ]),\n alignItems: PropTypes.oneOf([\n 'baseline',\n 'center',\n 'flex-end',\n 'flex-start',\n 'stretch',\n ]),\n alignSelf: PropTypes.oneOf([\n 'auto',\n 'baseline',\n 'center',\n 'flex-end',\n 'flex-start',\n 'stretch',\n ]),\n aspectRatio: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n borderBottomWidth: PropTypes.number,\n borderEndWidth: PropTypes.number,\n borderLeftWidth: PropTypes.number,\n borderRightWidth: PropTypes.number,\n borderStartWidth: PropTypes.number,\n borderTopWidth: PropTypes.number,\n borderWidth: PropTypes.number,\n bottom: DimensionValuePropType,\n columnGap: PropTypes.number,\n direction: PropTypes.oneOf(['inherit', 'ltr', 'rtl']),\n display: PropTypes.oneOf(['flex', 'none']),\n end: DimensionValuePropType,\n flex: PropTypes.number,\n flexBasis: DimensionValuePropType,\n flexDirection: PropTypes.oneOf([\n 'column',\n 'column-reverse',\n 'row',\n 'row-reverse',\n ]),\n flexGrow: PropTypes.number,\n flexShrink: PropTypes.number,\n flexWrap: PropTypes.oneOf(['nowrap', 'wrap', 'wrap-reverse']),\n gap: PropTypes.number,\n height: DimensionValuePropType,\n justifyContent: PropTypes.oneOf([\n 'center',\n 'flex-end',\n 'flex-start',\n 'space-around',\n 'space-between',\n 'space-evenly',\n ]),\n left: DimensionValuePropType,\n margin: DimensionValuePropType,\n marginBlock: DimensionValuePropType,\n marginBlockEnd: DimensionValuePropType,\n marginBlockStart: DimensionValuePropType,\n marginBottom: DimensionValuePropType,\n marginEnd: DimensionValuePropType,\n marginHorizontal: DimensionValuePropType,\n marginInline: DimensionValuePropType,\n marginInlineEnd: DimensionValuePropType,\n marginInlineStart: DimensionValuePropType,\n marginLeft: DimensionValuePropType,\n marginRight: DimensionValuePropType,\n marginStart: DimensionValuePropType,\n marginTop: DimensionValuePropType,\n marginVertical: DimensionValuePropType,\n maxHeight: DimensionValuePropType,\n maxWidth: DimensionValuePropType,\n minHeight: DimensionValuePropType,\n minWidth: DimensionValuePropType,\n overflow: PropTypes.oneOf(['hidden', 'scroll', 'visible']),\n padding: DimensionValuePropType,\n paddingBlock: DimensionValuePropType,\n paddingBlockEnd: DimensionValuePropType,\n paddingBlockStart: DimensionValuePropType,\n paddingBottom: DimensionValuePropType,\n paddingEnd: DimensionValuePropType,\n paddingHorizontal: DimensionValuePropType,\n paddingInline: DimensionValuePropType,\n paddingInlineEnd: DimensionValuePropType,\n paddingInlineStart: DimensionValuePropType,\n paddingLeft: DimensionValuePropType,\n paddingRight: DimensionValuePropType,\n paddingStart: DimensionValuePropType,\n paddingTop: DimensionValuePropType,\n paddingVertical: DimensionValuePropType,\n position: PropTypes.oneOf(['absolute', 'relative']),\n right: DimensionValuePropType,\n rowGap: PropTypes.number,\n start: DimensionValuePropType,\n top: DimensionValuePropType,\n width: DimensionValuePropType,\n zIndex: PropTypes.number,\n};\n\nmodule.exports = DeprecatedLayoutPropTypes;\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 * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedShadowPropTypesIOS = {\n shadowColor: DeprecatedColorPropType,\n shadowOffset: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n }),\n shadowOpacity: PropTypes.number,\n shadowRadius: PropTypes.number,\n};\n\nmodule.exports = DeprecatedShadowPropTypesIOS;\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 * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/private/_TransformStyle.js\n */\nconst DeprecatedTransformPropTypes = {\n transform: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({perspective: PropTypes.number}),\n PropTypes.shape({rotate: PropTypes.string}),\n PropTypes.shape({rotateX: PropTypes.string}),\n PropTypes.shape({rotateY: PropTypes.string}),\n PropTypes.shape({rotateZ: PropTypes.string}),\n PropTypes.shape({scale: PropTypes.number}),\n PropTypes.shape({scaleX: PropTypes.number}),\n PropTypes.shape({scaleY: PropTypes.number}),\n PropTypes.shape({skewX: PropTypes.string}),\n PropTypes.shape({skewY: PropTypes.string}),\n PropTypes.shape({translateX: PropTypes.number}),\n PropTypes.shape({translateY: PropTypes.number}),\n ]),\n ),\n};\n\nmodule.exports = DeprecatedTransformPropTypes;\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 * @format\n */\n\n'use strict';\n\nconst deprecatedCreateStrictShapeTypeChecker = require('./deprecatedCreateStrictShapeTypeChecker');\n\nfunction DeprecatedStyleSheetPropType(shape) {\n const shapePropType = deprecatedCreateStrictShapeTypeChecker(shape);\n return function(props, propName, componentName, location, ...rest) {\n let newProps = props;\n if (props[propName]) {\n // Just make a dummy prop object with only the flattened style\n newProps = {};\n newProps[propName] = flattenStyle(props[propName]);\n }\n return shapePropType(newProps, propName, componentName, location, ...rest);\n };\n}\n\nfunction flattenStyle(style) {\n if (style === null || typeof style !== 'object') {\n return undefined;\n }\n\n if (!Array.isArray(style)) {\n return style;\n }\n\n const result = {};\n for (let i = 0, styleLength = style.length; i < styleLength; ++i) {\n const computedStyle = flattenStyle(style[i]);\n if (computedStyle) {\n for (const key in computedStyle) {\n result[key] = computedStyle[key];\n }\n }\n }\n return result;\n}\n\nmodule.exports = DeprecatedStyleSheetPropType;\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 * @format\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nfunction deprecatedCreateStrictShapeTypeChecker(shapeTypes) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n ...rest\n ) {\n if (!props[propName]) {\n if (isRequired) {\n invariant(\n false,\n `Required object \\`${propName}\\` was not specified in ` +\n `\\`${componentName}\\`.`,\n );\n }\n return;\n }\n const propValue = props[propName];\n const propType = typeof propValue;\n const locationName = location || '(unknown)';\n if (propType !== 'object') {\n invariant(\n false,\n `Invalid ${locationName} \\`${propName}\\` of type \\`${propType}\\` ` +\n `supplied to \\`${componentName}\\`, expected \\`object\\`.`,\n );\n }\n // We need to check all keys in case some are required but missing from\n // props.\n const allKeys = {...props[propName], ...shapeTypes};\n for (const key in allKeys) {\n const checker = shapeTypes[key];\n if (!checker) {\n invariant(\n false,\n `Invalid props.${propName} key \\`${key}\\` supplied to \\`${componentName}\\`.` +\n '\\nBad object: ' +\n JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' +\n JSON.stringify(Object.keys(shapeTypes), null, ' '),\n );\n }\n const error = checker(propValue, key, componentName, location, ...rest);\n if (error) {\n invariant(\n false,\n error.message +\n '\\nBad object: ' +\n JSON.stringify(props[propName], null, ' '),\n );\n }\n }\n }\n function chainedCheckType(props, propName, componentName, location, ...rest) {\n return checkType(false, props, propName, componentName, location, ...rest);\n }\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\nmodule.exports = deprecatedCreateStrictShapeTypeChecker;\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 * @format\n */\n\n'use strict';\n\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst {\n AccessibilityActionInfoPropType,\n AccessibilityRolePropType,\n AccessibilityStatePropType,\n AccessibilityValuePropType,\n RolePropType,\n} = require('./DeprecatedViewAccessibility');\nconst DeprecatedViewStylePropTypes = require('./DeprecatedViewStylePropTypes');\nconst PropTypes = require('prop-types');\n\nconst MouseEventPropTypes = {\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n};\n\n// Experimental/Work in Progress Pointer Event Callbacks (not yet ready for use)\nconst PointerEventPropTypes = {\n onPointerEnter: PropTypes.func,\n onPointerEnterCapture: PropTypes.func,\n onPointerLeave: PropTypes.func,\n onPointerLeaveCapture: PropTypes.func,\n onPointerMove: PropTypes.func,\n onPointerMoveCapture: PropTypes.func,\n onPointerCancel: PropTypes.func,\n onPointerCancelCapture: PropTypes.func,\n onPointerDown: PropTypes.func,\n onPointerDownCapture: PropTypes.func,\n onPointerUp: PropTypes.func,\n onPointerUpCapture: PropTypes.func,\n onPointerOver: PropTypes.func,\n onPointerOverCapture: PropTypes.func,\n onPointerOut: PropTypes.func,\n onPointerOutCapture: PropTypes.func,\n};\n\nconst FocusEventPropTypes = {\n onBlur: PropTypes.func,\n onBlurCapture: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusCapture: PropTypes.func,\n};\n\nconst TouchEventPropTypes = {\n onTouchCancel: PropTypes.func,\n onTouchCancelCapture: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchEndCapture: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchMoveCapture: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchStartCapture: PropTypes.func,\n};\n\nconst GestureResponderEventPropTypes = {\n onMoveShouldSetResponder: PropTypes.func,\n onMoveShouldSetResponderCapture: PropTypes.func,\n onResponderEnd: PropTypes.func,\n onResponderGrant: PropTypes.func,\n onResponderMove: PropTypes.func,\n onResponderReject: PropTypes.func,\n onResponderRelease: PropTypes.func,\n onResponderStart: PropTypes.func,\n onResponderTerminate: PropTypes.func,\n onResponderTerminationRequest: PropTypes.func,\n onStartShouldSetResponder: PropTypes.func,\n onStartShouldSetResponderCapture: PropTypes.func,\n};\n\n/**\n * @see facebook/react-native/Libraries/Components/View/ViewPropTypes.js\n */\nconst DeprecatedViewPropTypes = {\n ...MouseEventPropTypes,\n ...PointerEventPropTypes,\n ...FocusEventPropTypes,\n ...TouchEventPropTypes,\n ...GestureResponderEventPropTypes,\n 'aria-busy': PropTypes.bool,\n 'aria-checked': PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['mixed']),\n ]),\n 'aria-disabled': PropTypes.bool,\n 'aria-expanded': PropTypes.bool,\n 'aria-hidden': PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n 'aria-live': PropTypes.oneOf(['polite' | 'assertive' | 'off']),\n 'aria-modal': PropTypes.bool,\n 'aria-selected': PropTypes.bool,\n 'aria-valuemax': PropTypes.number,\n 'aria-valuemin': PropTypes.number,\n 'aria-valuenow': PropTypes.number,\n 'aria-valuetext': PropTypes.string,\n accessibilityActions: PropTypes.arrayOf(AccessibilityActionInfoPropType),\n accessibilityElementsHidden: PropTypes.bool,\n accessibilityHint: PropTypes.string,\n accessibilityIgnoresInvertColors: PropTypes.bool,\n accessibilityLabel: PropTypes.node,\n accessibilityLabelledBy: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n accessibilityLanguage: PropTypes.string,\n accessibilityLiveRegion: PropTypes.oneOf(['assertive', 'none', 'polite']),\n accessibilityRole: AccessibilityRolePropType,\n accessibilityState: AccessibilityStatePropType,\n accessibilityValue: AccessibilityValuePropType,\n accessibilityViewIsModal: PropTypes.bool,\n accessible: PropTypes.bool,\n collapsable: PropTypes.bool,\n focusable: PropTypes.bool,\n hitSlop: PropTypes.oneOfType([\n DeprecatedEdgeInsetsPropType,\n PropTypes.number,\n ]),\n importantForAccessibility: PropTypes.oneOf([\n 'auto',\n 'no',\n 'no-hide-descendants',\n 'yes',\n ]),\n nativeBackgroundAndroid: PropTypes.object,\n nativeForegroundAndroid: PropTypes.object,\n nativeID: PropTypes.string,\n needsOffscreenAlphaCompositing: PropTypes.bool,\n onAccessibilityAction: PropTypes.func,\n onAccessibilityEscape: PropTypes.func,\n onAccessibilityTap: PropTypes.func,\n onClick: PropTypes.func,\n onLayout: PropTypes.func,\n onMagicTap: PropTypes.func,\n pointerEvents: PropTypes.oneOf(['auto', 'box-none', 'box-only', 'none']),\n removeClippedSubviews: PropTypes.bool,\n renderToHardwareTextureAndroid: PropTypes.bool,\n role: RolePropType,\n shouldRasterizeIOS: PropTypes.bool,\n style: DeprecatedStyleSheetPropType(DeprecatedViewStylePropTypes),\n tabIndex: PropTypes.oneOf([0, -1]),\n testID: PropTypes.string,\n};\n\nmodule.exports = DeprecatedViewPropTypes;\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 * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Components/View/ViewAccessibility.js\n */\nconst DeprecatedViewAccessibility = {\n AccessibilityRolePropType: PropTypes.oneOf([\n 'adjustable',\n 'alert',\n 'button',\n 'checkbox',\n 'combobox',\n 'drawerlayout',\n 'dropdownlist',\n 'grid',\n 'header',\n 'horizontalscrollview',\n 'iconmenu',\n 'image',\n 'imagebutton',\n 'keyboardkey',\n 'link',\n 'list',\n 'menu',\n 'menubar',\n 'menuitem',\n 'none',\n 'pager',\n 'progressbar',\n 'radio',\n 'radiogroup',\n 'scrollbar',\n 'scrollview',\n 'search',\n 'slidingdrawer',\n 'spinbutton',\n 'summary',\n 'switch',\n 'tab',\n 'tabbar',\n 'tablist',\n 'text',\n 'timer',\n 'togglebutton',\n 'toolbar',\n 'viewgroup',\n 'webview',\n ]),\n AccessibilityStatePropType: PropTypes.object,\n AccessibilityActionInfoPropType: PropTypes.object,\n AccessibilityValuePropType: PropTypes.object,\n RolePropType: PropTypes.oneOf([\n 'alert',\n 'alertdialog',\n 'application',\n 'article',\n 'banner',\n 'button',\n 'cell',\n 'checkbox',\n 'columnheader',\n 'combobox',\n 'complementary',\n 'contentinfo',\n 'definition',\n 'dialog',\n 'directory',\n 'document',\n 'feed',\n 'figure',\n 'form',\n 'grid',\n 'group',\n 'heading',\n 'img',\n 'link',\n 'list',\n 'listitem',\n 'log',\n 'main',\n 'marquee',\n 'math',\n 'menu',\n 'menubar',\n 'menuitem',\n 'meter',\n 'navigation',\n 'none',\n 'note',\n 'option',\n 'presentation',\n 'progressbar',\n 'radio',\n 'radiogroup',\n 'region',\n 'row',\n 'rowgroup',\n 'rowheader',\n 'scrollbar',\n 'searchbox',\n 'separator',\n 'slider',\n 'spinbutton',\n 'status',\n 'summary',\n 'switch',\n 'tab',\n 'table',\n 'tablist',\n 'tabpanel',\n 'term',\n 'timer',\n 'toolbar',\n 'tooltip',\n 'tree',\n 'treegrid',\n 'treeitem',\n ]),\n};\n\nmodule.exports = DeprecatedViewAccessibility;\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 * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedLayoutPropTypes = require('./DeprecatedLayoutPropTypes');\nconst DeprecatedShadowPropTypesIOS = require('./DeprecatedShadowPropTypesIOS');\nconst DeprecatedTransformPropTypes = require('./DeprecatedTransformPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedViewStylePropTypes = {\n ...DeprecatedLayoutPropTypes,\n ...DeprecatedShadowPropTypesIOS,\n ...DeprecatedTransformPropTypes,\n backfaceVisibility: PropTypes.oneOf(['hidden', 'visible']),\n backgroundColor: DeprecatedColorPropType,\n borderBottomColor: DeprecatedColorPropType,\n borderBottomEndRadius: PropTypes.number,\n borderBottomLeftRadius: PropTypes.number,\n borderBottomRightRadius: PropTypes.number,\n borderBottomStartRadius: PropTypes.number,\n borderBottomWidth: PropTypes.number,\n borderColor: DeprecatedColorPropType,\n borderCurve: PropTypes.oneOf(['circular', 'continuous']),\n borderEndColor: DeprecatedColorPropType,\n borderLeftColor: DeprecatedColorPropType,\n borderLeftWidth: PropTypes.number,\n borderRadius: PropTypes.number,\n borderRightColor: DeprecatedColorPropType,\n borderRightWidth: PropTypes.number,\n borderStartColor: DeprecatedColorPropType,\n borderStyle: PropTypes.oneOf(['dashed', 'dotted', 'solid']),\n borderTopColor: DeprecatedColorPropType,\n borderTopEndRadius: PropTypes.number,\n borderTopLeftRadius: PropTypes.number,\n borderTopRightRadius: PropTypes.number,\n borderTopStartRadius: PropTypes.number,\n borderTopWidth: PropTypes.number,\n borderWidth: PropTypes.number,\n elevation: PropTypes.number,\n opacity: PropTypes.number,\n pointerEvents: PropTypes.oneOf(['auto', 'box-none', 'box-only', 'none']),\n};\n\nmodule.exports = DeprecatedViewStylePropTypes;\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 * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst PointPropType = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n});\n\nmodule.exports = PointPropType;\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 * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedTextPropTypes = require('./DeprecatedTextPropTypes');\nconst DeprecatedViewPropTypes = require('./DeprecatedViewPropTypes');\nconst PropTypes = require('prop-types');\n\nconst DataDetectorTypes = [\n 'address',\n 'all',\n 'calendarEvent',\n 'link',\n 'none',\n 'phoneNumber',\n];\n\n/**\n * @see facebook/react-native/Libraries/TextInput/TextInput.js\n */\nconst DeprecatedTextInputPropTypes = {\n ...DeprecatedViewPropTypes,\n allowFontScaling: PropTypes.bool,\n autoCapitalize: PropTypes.oneOf(['none', 'sentences', 'words', 'characters']),\n autoComplete: PropTypes.oneOf([\n 'additional-name',\n 'address-line1',\n 'address-line2',\n 'bday',\n 'bday-day',\n 'bday-month',\n 'bday-year',\n 'birthdate-day',\n 'birthdate-full',\n 'birthdate-month',\n 'birthdate-year',\n 'cc-csc',\n 'cc-exp',\n 'cc-exp-day',\n 'cc-exp-month',\n 'cc-exp-year',\n 'cc-number',\n 'country',\n 'current-password',\n 'email',\n 'family-name',\n 'gender',\n 'given-name',\n 'honorific-prefix',\n 'honorific-suffix',\n 'name',\n 'name-family',\n 'name-given',\n 'name-middle',\n 'name-middle-initial',\n 'name-prefix',\n 'name-suffix',\n 'new-password',\n 'nickname',\n 'off',\n 'one-time-code',\n 'organization',\n 'organization-title',\n 'password',\n 'password-new',\n 'postal-address',\n 'postal-address-country',\n 'postal-address-extended',\n 'postal-address-extended-postal-code',\n 'postal-address-locality',\n 'postal-address-region',\n 'postal-code',\n 'sex',\n 'sms-otp',\n 'street-address',\n 'tel',\n 'tel-country-code',\n 'tel-device',\n 'tel-national',\n 'url',\n 'username',\n 'username-new',\n ]),\n autoCorrect: PropTypes.bool,\n autoFocus: PropTypes.bool,\n blurOnSubmit: PropTypes.bool,\n caretHidden: PropTypes.bool,\n clearButtonMode: PropTypes.oneOf([\n 'always',\n 'never',\n 'unless-editing',\n 'while-editing',\n ]),\n clearTextOnFocus: PropTypes.bool,\n cursorColor: DeprecatedColorPropType,\n contextMenuHidden: PropTypes.bool,\n dataDetectorTypes: PropTypes.oneOfType([\n PropTypes.oneOf(DataDetectorTypes),\n PropTypes.arrayOf(PropTypes.oneOf(DataDetectorTypes)),\n ]),\n defaultValue: PropTypes.string,\n disableFullscreenUI: PropTypes.bool,\n editable: PropTypes.bool,\n enablesReturnKeyAutomatically: PropTypes.bool,\n enterKeyHint: PropTypes.oneOf([\n 'done',\n 'enter',\n 'go',\n 'next',\n 'previous',\n 'search',\n 'send',\n ]),\n inlineImageLeft: PropTypes.string,\n inlineImagePadding: PropTypes.number,\n inputAccessoryViewID: PropTypes.string,\n inputMode: PropTypes.oneOf([\n 'decimal',\n 'email',\n 'none',\n 'numeric',\n 'search',\n 'tel',\n 'text',\n 'url',\n ]),\n keyboardAppearance: PropTypes.oneOf(['default', 'dark', 'light']),\n keyboardType: PropTypes.oneOf([\n 'ascii-capable',\n 'ascii-capable-number-pad',\n 'decimal-pad',\n 'default',\n 'email-address',\n 'name-phone-pad',\n 'number-pad',\n 'numbers-and-punctuation',\n 'numeric',\n 'phone-pad',\n 'twitter',\n 'url',\n 'visible-password',\n 'web-search',\n ]),\n lineBreakStrategyIOS: PropTypes.oneOf([\n 'hangul-word',\n 'none',\n 'push-out',\n 'standard',\n ]),\n maxFontSizeMultiplier: PropTypes.number,\n maxLength: PropTypes.number,\n multiline: PropTypes.bool,\n numberOfLines: PropTypes.number,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onChangeText: PropTypes.func,\n onContentSizeChange: PropTypes.func,\n onEndEditing: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyPress: PropTypes.func,\n onLayout: PropTypes.func,\n onScroll: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSubmitEditing: PropTypes.func,\n onTextInput: PropTypes.func,\n placeholder: PropTypes.string,\n placeholderTextColor: DeprecatedColorPropType,\n readOnly: PropTypes.bool,\n rejectResponderTermination: PropTypes.bool,\n returnKeyLabel: PropTypes.string,\n returnKeyType: PropTypes.oneOf([\n 'default',\n 'done',\n 'emergency-call',\n 'go',\n 'google',\n 'join',\n 'next',\n 'none',\n 'previous',\n 'route',\n 'search',\n 'send',\n 'yahoo',\n ]),\n rows: PropTypes.number,\n scrollEnabled: PropTypes.bool,\n secureTextEntry: PropTypes.bool,\n selection: PropTypes.shape({\n end: PropTypes.number,\n start: PropTypes.number.isRequired,\n }),\n selectionColor: DeprecatedColorPropType,\n selectTextOnFocus: PropTypes.bool,\n showSoftInputOnFocus: PropTypes.bool,\n spellCheck: PropTypes.bool,\n style: DeprecatedTextPropTypes.style,\n submitBehavior: PropTypes.oneOf(['blurAndSubmit', 'newline', 'submit']),\n textBreakStrategy: PropTypes.oneOf(['balanced', 'highQuality', 'simple']),\n textContentType: PropTypes.oneOf([\n 'addressCity',\n 'addressCityAndState',\n 'addressState',\n 'countryName',\n 'creditCardNumber',\n 'emailAddress',\n 'familyName',\n 'fullStreetAddress',\n 'givenName',\n 'jobTitle',\n 'location',\n 'middleName',\n 'name',\n 'namePrefix',\n 'nameSuffix',\n 'newPassword',\n 'nickname',\n 'none',\n 'oneTimeCode',\n 'organizationName',\n 'password',\n 'postalCode',\n 'streetAddressLine1',\n 'streetAddressLine2',\n 'sublocality',\n 'telephoneNumber',\n 'URL',\n 'username',\n ]),\n underlineColorAndroid: DeprecatedColorPropType,\n value: PropTypes.string,\n};\n\nmodule.exports = DeprecatedTextInputPropTypes;\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 * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst DeprecatedTextStylePropTypes = require('./DeprecatedTextStylePropTypes');\nconst {\n AccessibilityActionInfoPropType,\n AccessibilityRolePropType,\n AccessibilityStatePropType,\n AccessibilityValuePropType,\n RolePropType,\n} = require('./DeprecatedViewAccessibility');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Text/TextProps.js\n */\nconst DeprecatedTextPropTypes = {\n 'aria-busy': PropTypes.bool,\n 'aria-checked': PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['mixed']),\n ]),\n 'aria-disabled': PropTypes.bool,\n 'aria-expanded': PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n 'aria-selected': PropTypes.bool,\n accessibilityActions: PropTypes.arrayOf(AccessibilityActionInfoPropType),\n accessibilityHint: PropTypes.string,\n accessibilityLabel: PropTypes.string,\n accessibilityLanguage: PropTypes.string,\n accessibilityRole: AccessibilityRolePropType,\n accessibilityState: AccessibilityStatePropType,\n accessible: PropTypes.bool,\n adjustsFontSizeToFit: PropTypes.bool,\n allowFontScaling: PropTypes.bool,\n dataDetectorType: PropTypes.oneOf([\n 'all',\n 'email',\n 'link',\n 'none',\n 'phoneNumber',\n ]),\n disabled: PropTypes.bool,\n dynamicTypeRamp: PropTypes.oneOf([\n 'body',\n 'callout',\n 'caption1',\n 'caption2',\n 'footnote',\n 'headline',\n 'largeTitle',\n 'subheadline',\n 'title1',\n 'title2',\n 'title3',\n ]),\n ellipsizeMode: PropTypes.oneOf(['clip', 'head', 'middle', 'tail']),\n id: PropTypes.string,\n lineBreakStrategyIOS: PropTypes.oneOf([\n 'hangul-word',\n 'none',\n 'push-out',\n 'standard',\n ]),\n maxFontSizeMultiplier: PropTypes.number,\n minimumFontScale: PropTypes.number,\n nativeID: PropTypes.string,\n numberOfLines: PropTypes.number,\n onAccessibilityAction: PropTypes.func,\n onLayout: PropTypes.func,\n onLongPress: PropTypes.func,\n onMoveShouldSetResponder: PropTypes.func,\n onPress: PropTypes.func,\n onPressIn: PropTypes.func,\n onPressOut: PropTypes.func,\n onResponderGrant: PropTypes.func,\n onResponderMove: PropTypes.func,\n onResponderRelease: PropTypes.func,\n onResponderTerminate: PropTypes.func,\n onResponderTerminationRequest: PropTypes.func,\n onStartShouldSetResponder: PropTypes.func,\n onTextLayout: PropTypes.func,\n pressRetentionOffset: DeprecatedEdgeInsetsPropType,\n role: RolePropType,\n selectable: PropTypes.bool,\n selectionColor: DeprecatedColorPropType,\n style: DeprecatedStyleSheetPropType(DeprecatedTextStylePropTypes),\n suppressHighlighting: PropTypes.bool,\n testID: PropTypes.string,\n textBreakStrategy: PropTypes.oneOf(['balanced', 'highQuality', 'simple']),\n};\n\nmodule.exports = DeprecatedTextPropTypes;\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 * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedViewStylePropTypes = require('./DeprecatedViewStylePropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedTextStylePropTypes = {\n ...DeprecatedViewStylePropTypes,\n color: DeprecatedColorPropType,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.number,\n fontStyle: PropTypes.oneOf(['italic', 'normal']),\n fontVariant: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOf([\n 'lining-nums',\n 'oldstyle-nums',\n 'proportional-nums',\n 'small-caps',\n 'stylistic-eight',\n 'stylistic-eighteen',\n 'stylistic-eleven',\n 'stylistic-fifteen',\n 'stylistic-five',\n 'stylistic-four',\n 'stylistic-fourteen',\n 'stylistic-nine',\n 'stylistic-nineteen',\n 'stylistic-one',\n 'stylistic-seven',\n 'stylistic-seventeen',\n 'stylistic-six',\n 'stylistic-sixteen',\n 'stylistic-ten',\n 'stylistic-thirteen',\n 'stylistic-three',\n 'stylistic-twelve',\n 'stylistic-twenty',\n 'stylistic-two',\n 'tabular-nums',\n ]),\n ),\n PropTypes.string,\n ]),\n fontWeight: PropTypes.oneOf([\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n 'black',\n 'bold',\n 'condensed',\n 'condensedBold',\n 'heavy',\n 'light',\n 'medium',\n 'normal',\n 'regular',\n 'semibold',\n 'thin',\n 'ultralight',\n 100,\n 200,\n 300,\n 400,\n 500,\n 600,\n 700,\n 800,\n 900,\n ]),\n includeFontPadding: PropTypes.bool,\n letterSpacing: PropTypes.number,\n lineHeight: PropTypes.number,\n textAlign: PropTypes.oneOf(['auto', 'center', 'justify', 'left', 'right']),\n textAlignVertical: PropTypes.oneOf(['auto', 'bottom', 'center', 'top']),\n textDecorationColor: DeprecatedColorPropType,\n textDecorationLine: PropTypes.oneOf([\n 'line-through',\n 'none',\n 'underline line-through',\n 'underline',\n ]),\n textDecorationStyle: PropTypes.oneOf(['dashed', 'dotted', 'double', 'solid']),\n textShadowColor: DeprecatedColorPropType,\n textShadowOffset: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n }),\n textShadowRadius: PropTypes.number,\n textTransform: PropTypes.oneOf([\n 'capitalize',\n 'lowercase',\n 'none',\n 'uppercase',\n ]),\n userSelect: PropTypes.oneOf(['all', 'auto', 'contain', 'none', 'text']),\n verticalAlign: PropTypes.oneOf(['auto', 'bottom', 'middle', 'top']),\n writingDirection: PropTypes.oneOf(['auto', 'ltr', 'rtl']),\n};\n\nmodule.exports = DeprecatedTextStylePropTypes;\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 strict-local\n * @format\n */\n\nimport type {PressEvent} from '../../Types/CoreEventTypes';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport {findHostInstance_DEPRECATED} from '../../ReactNative/RendererProxy';\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport {Commands} from '../View/ViewNativeComponent';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig<TouchableWithoutFeedback>,\n\n /**\n * Determines the type of background drawable that's going to be used to\n * display feedback. It takes an object with `type` property and extra data\n * depending on the `type`. It's recommended to use one of the static\n * methods to generate that dictionary.\n */\n background?: ?(\n | $ReadOnly<{|\n type: 'ThemeAttrAndroid',\n attribute:\n | 'selectableItemBackground'\n | 'selectableItemBackgroundBorderless',\n rippleRadius: ?number,\n |}>\n | $ReadOnly<{|\n type: 'RippleAndroid',\n color: ?number,\n borderless: boolean,\n rippleRadius: ?number,\n |}>\n ),\n\n /**\n * TV preferred focus (see documentation for the View component).\n */\n hasTVPreferredFocus?: ?boolean,\n\n /**\n * TV next focus down (see documentation for the View component).\n */\n nextFocusDown?: ?number,\n\n /**\n * TV next focus forward (see documentation for the View component).\n */\n nextFocusForward?: ?number,\n\n /**\n * TV next focus left (see documentation for the View component).\n */\n nextFocusLeft?: ?number,\n\n /**\n * TV next focus right (see documentation for the View component).\n */\n nextFocusRight?: ?number,\n\n /**\n * TV next focus up (see documentation for the View component).\n */\n nextFocusUp?: ?number,\n\n /**\n * Set to true to add the ripple effect to the foreground of the view, instead\n * of the background. This is useful if one of your child views has a\n * background of its own, or you're e.g. displaying images, and you don't want\n * the ripple to be covered by them.\n *\n * Check TouchableNativeFeedback.canUseNativeForeground() first, as this is\n * only available on Android 6.0 and above. If you try to use this on older\n * versions, this will fallback to background.\n */\n useForeground?: ?boolean,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n|}>;\n\nclass TouchableNativeFeedback extends React.Component<Props, State> {\n /**\n * Creates a value for the `background` prop that uses the Android theme's\n * default background for selectable elements.\n */\n static SelectableBackground: (rippleRadius: ?number) => $ReadOnly<{|\n attribute: 'selectableItemBackground',\n type: 'ThemeAttrAndroid',\n rippleRadius: ?number,\n |}> = (rippleRadius: ?number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackground',\n rippleRadius,\n });\n\n /**\n * Creates a value for the `background` prop that uses the Android theme's\n * default background for borderless selectable elements. Requires API 21+.\n */\n static SelectableBackgroundBorderless: (rippleRadius: ?number) => $ReadOnly<{|\n attribute: 'selectableItemBackgroundBorderless',\n type: 'ThemeAttrAndroid',\n rippleRadius: ?number,\n |}> = (rippleRadius: ?number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackgroundBorderless',\n rippleRadius,\n });\n\n /**\n * Creates a value for the `background` prop that uses the Android ripple with\n * the supplied color. If `borderless` is true, the ripple will render outside\n * of the view bounds. Requires API 21+.\n */\n static Ripple: (\n color: string,\n borderless: boolean,\n rippleRadius: ?number,\n ) => $ReadOnly<{|\n borderless: boolean,\n color: ?number,\n rippleRadius: ?number,\n type: 'RippleAndroid',\n |}> = (color: string, borderless: boolean, rippleRadius: ?number) => {\n const processedColor = processColor(color);\n invariant(\n processedColor == null || typeof processedColor === 'number',\n 'Unexpected color given for Ripple color',\n );\n return {\n type: 'RippleAndroid',\n color: processedColor,\n borderless,\n rippleRadius,\n };\n };\n\n /**\n * Whether `useForeground` is supported.\n */\n static canUseNativeForeground: () => boolean = () =>\n Platform.OS === 'android' && Platform.Version >= 23;\n\n state: State = {\n pressability: new Pressability(this._createPressabilityConfig()),\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n const accessibilityStateDisabled =\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled;\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled != null\n ? this.props.disabled\n : accessibilityStateDisabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n android_disableSound: this.props.touchSoundDisabled,\n onLongPress: this.props.onLongPress,\n onPress: this.props.onPress,\n onPressIn: event => {\n if (Platform.OS === 'android') {\n this._dispatchHotspotUpdate(event);\n this._dispatchPressedStateChange(true);\n }\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressMove: event => {\n if (Platform.OS === 'android') {\n this._dispatchHotspotUpdate(event);\n }\n },\n onPressOut: event => {\n if (Platform.OS === 'android') {\n this._dispatchPressedStateChange(false);\n }\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n _dispatchPressedStateChange(pressed: boolean): void {\n if (Platform.OS === 'android') {\n const hostComponentRef = findHostInstance_DEPRECATED(this);\n if (hostComponentRef == null) {\n console.warn(\n 'Touchable: Unable to find HostComponent instance. ' +\n 'Has your Touchable component been unmounted?',\n );\n } else {\n Commands.setPressed(hostComponentRef, pressed);\n }\n }\n }\n\n _dispatchHotspotUpdate(event: PressEvent): void {\n if (Platform.OS === 'android') {\n const {locationX, locationY} = event.nativeEvent;\n const hostComponentRef = findHostInstance_DEPRECATED(this);\n if (hostComponentRef == null) {\n console.warn(\n 'Touchable: Unable to find HostComponent instance. ' +\n 'Has your Touchable component been unmounted?',\n );\n } else {\n Commands.hotspotUpdate(\n hostComponentRef,\n locationX ?? 0,\n locationY ?? 0,\n );\n }\n }\n }\n\n render(): React.Node {\n const element = React.Children.only(this.props.children);\n const children = [element.props.children];\n if (__DEV__) {\n if (element.type === View) {\n children.push(\n <PressabilityDebugView color=\"brown\" hitSlop={this.props.hitSlop} />,\n );\n }\n }\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n _accessibilityState =\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return React.cloneElement(\n element,\n {\n ...eventHandlersWithoutBlurAndFocus,\n ...getBackgroundProp(\n this.props.background === undefined\n ? TouchableNativeFeedback.SelectableBackground()\n : this.props.background,\n this.props.useForeground === true,\n ),\n accessible: this.props.accessible !== false,\n accessibilityHint: this.props.accessibilityHint,\n accessibilityLanguage: this.props.accessibilityLanguage,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: this.props.accessibilityRole,\n accessibilityState: _accessibilityState,\n accessibilityActions: this.props.accessibilityActions,\n onAccessibilityAction: this.props.onAccessibilityAction,\n accessibilityValue: accessibilityValue,\n importantForAccessibility:\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility,\n accessibilityViewIsModal:\n this.props['aria-modal'] ?? this.props.accessibilityViewIsModal,\n accessibilityLiveRegion: accessibilityLiveRegion,\n accessibilityElementsHidden:\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,\n hasTVPreferredFocus: this.props.hasTVPreferredFocus,\n hitSlop: this.props.hitSlop,\n focusable:\n this.props.focusable !== false &&\n this.props.onPress !== undefined &&\n !this.props.disabled,\n nativeID: this.props.nativeID,\n nextFocusDown: this.props.nextFocusDown,\n nextFocusForward: this.props.nextFocusForward,\n nextFocusLeft: this.props.nextFocusLeft,\n nextFocusRight: this.props.nextFocusRight,\n nextFocusUp: this.props.nextFocusUp,\n onLayout: this.props.onLayout,\n testID: this.props.testID,\n },\n ...children,\n );\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nconst getBackgroundProp =\n Platform.OS === 'android'\n ? /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n (background, useForeground: boolean) =>\n useForeground && TouchableNativeFeedback.canUseNativeForeground()\n ? {nativeForegroundAndroid: background}\n : {nativeBackgroundAndroid: background}\n : /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n (background, useForeground: boolean) => null;\n\nTouchableNativeFeedback.displayName = 'TouchableNativeFeedback';\n\nmodule.exports = TouchableNativeFeedback;\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 strict-local\n * @format\n */\n\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport Animated from '../../Animated/Animated';\nimport Easing from '../../Animated/Easing';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport Platform from '../../Utilities/Platform';\nimport * as React from 'react';\n\ntype TVProps = $ReadOnly<{|\n hasTVPreferredFocus?: ?boolean,\n nextFocusDown?: ?number,\n nextFocusForward?: ?number,\n nextFocusLeft?: ?number,\n nextFocusRight?: ?number,\n nextFocusUp?: ?number,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig<TouchableWithoutFeedback>,\n ...TVProps,\n\n activeOpacity?: ?number,\n style?: ?ViewStyleProp,\n\n hostRef?: ?React.Ref<typeof Animated.View>,\n|}>;\n\ntype State = $ReadOnly<{|\n anim: Animated.Value,\n pressability: Pressability,\n|}>;\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n *\n * Opacity is controlled by wrapping the children in an Animated.View, which is\n * added to the view hierarchy. Be aware that this can affect layout.\n *\n * Example:\n *\n * ```\n * renderButton: function() {\n * return (\n * <TouchableOpacity onPress={this._onPressButton}>\n * <Image\n * style={styles.button}\n * source={require('./myButton.png')}\n * />\n * </TouchableOpacity>\n * );\n * },\n * ```\n * ### Example\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react'\n * import {\n * AppRegistry,\n * StyleSheet,\n * TouchableOpacity,\n * Text,\n * View,\n * } from 'react-native'\n *\n * class App extends Component {\n * state = { count: 0 }\n *\n * onPress = () => {\n * this.setState(state => ({\n * count: state.count + 1\n * }));\n * };\n *\n * render() {\n * return (\n * <View style={styles.container}>\n * <TouchableOpacity\n * style={styles.button}\n * onPress={this.onPress}>\n * <Text> Touch Here </Text>\n * </TouchableOpacity>\n * <View style={[styles.countContainer]}>\n * <Text style={[styles.countText]}>\n * { this.state.count !== 0 ? this.state.count: null}\n * </Text>\n * </View>\n * </View>\n * )\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * paddingHorizontal: 10\n * },\n * button: {\n * alignItems: 'center',\n * backgroundColor: '#DDDDDD',\n * padding: 10\n * },\n * countContainer: {\n * alignItems: 'center',\n * padding: 10\n * },\n * countText: {\n * color: '#FF00FF'\n * }\n * })\n *\n * AppRegistry.registerComponent('App', () => App)\n * ```\n *\n */\nclass TouchableOpacity extends React.Component<Props, State> {\n state: State = {\n anim: new Animated.Value(this._getChildStyleOpacityWithDefault()),\n pressability: new Pressability(this._createPressabilityConfig()),\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled ??\n this.props['aria-disabled'] ??\n this.props.accessibilityState?.disabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n onBlur: event => {\n if (Platform.isTV) {\n this._opacityInactive(250);\n }\n if (this.props.onBlur != null) {\n this.props.onBlur(event);\n }\n },\n onFocus: event => {\n if (Platform.isTV) {\n this._opacityActive(150);\n }\n if (this.props.onFocus != null) {\n this.props.onFocus(event);\n }\n },\n onLongPress: this.props.onLongPress,\n onPress: this.props.onPress,\n onPressIn: event => {\n this._opacityActive(\n event.dispatchConfig.registrationName === 'onResponderGrant'\n ? 0\n : 150,\n );\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressOut: event => {\n this._opacityInactive(250);\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n /**\n * Animate the touchable to a new opacity.\n */\n _setOpacityTo(toValue: number, duration: number): void {\n Animated.timing(this.state.anim, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n }\n\n _opacityActive(duration: number): void {\n this._setOpacityTo(this.props.activeOpacity ?? 0.2, duration);\n }\n\n _opacityInactive(duration: number): void {\n this._setOpacityTo(this._getChildStyleOpacityWithDefault(), duration);\n }\n\n _getChildStyleOpacityWithDefault(): number {\n const opacity = flattenStyle(this.props.style)?.opacity;\n return typeof opacity === 'number' ? opacity : 1;\n }\n\n render(): React.Node {\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n _accessibilityState =\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return (\n <Animated.View\n accessible={this.props.accessible !== false}\n accessibilityLabel={accessibilityLabel}\n accessibilityHint={this.props.accessibilityHint}\n accessibilityLanguage={this.props.accessibilityLanguage}\n accessibilityRole={this.props.accessibilityRole}\n accessibilityState={_accessibilityState}\n accessibilityActions={this.props.accessibilityActions}\n onAccessibilityAction={this.props.onAccessibilityAction}\n accessibilityValue={accessibilityValue}\n importantForAccessibility={\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility\n }\n accessibilityViewIsModal={\n this.props['aria-modal'] ?? this.props.accessibilityViewIsModal\n }\n accessibilityLiveRegion={accessibilityLiveRegion}\n accessibilityElementsHidden={\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden\n }\n style={[this.props.style, {opacity: this.state.anim}]}\n nativeID={this.props.nativeID}\n testID={this.props.testID}\n onLayout={this.props.onLayout}\n nextFocusDown={this.props.nextFocusDown}\n nextFocusForward={this.props.nextFocusForward}\n nextFocusLeft={this.props.nextFocusLeft}\n nextFocusRight={this.props.nextFocusRight}\n nextFocusUp={this.props.nextFocusUp}\n hasTVPreferredFocus={this.props.hasTVPreferredFocus}\n hitSlop={this.props.hitSlop}\n focusable={\n this.props.focusable !== false && this.props.onPress !== undefined\n }\n ref={this.props.hostRef}\n {...eventHandlersWithoutBlurAndFocus}>\n {this.props.children}\n {__DEV__ ? (\n <PressabilityDebugView color=\"cyan\" hitSlop={this.props.hitSlop} />\n ) : null}\n </Animated.View>\n );\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n if (\n this.props.disabled !== prevProps.disabled ||\n (flattenStyle(prevProps.style)?.opacity !==\n flattenStyle(this.props.style)?.opacity) !==\n undefined\n ) {\n this._opacityInactive(250);\n }\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nconst Touchable = (React.forwardRef((props, ref) => (\n <TouchableOpacity {...props} hostRef={ref} />\n)): React.AbstractComponent<Props, React.ElementRef<typeof Animated.View>>);\n\nTouchable.displayName = 'TouchableOpacity';\n\nmodule.exports = Touchable;\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 * @format\n */\n\nexport type {CompositeAnimation, Numeric} from './AnimatedImplementation';\n\nimport typeof AnimatedFlatList from './components/AnimatedFlatList';\nimport typeof AnimatedImage from './components/AnimatedImage';\nimport typeof AnimatedScrollView from './components/AnimatedScrollView';\nimport typeof AnimatedSectionList from './components/AnimatedSectionList';\nimport typeof AnimatedText from './components/AnimatedText';\nimport typeof AnimatedView from './components/AnimatedView';\n\nimport Platform from '../Utilities/Platform';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedMock from './AnimatedMock';\n\nconst Animated = ((Platform.isTesting\n ? AnimatedMock\n : AnimatedImplementation): typeof AnimatedImplementation);\n\nexport default {\n get FlatList(): AnimatedFlatList {\n return require('./components/AnimatedFlatList').default;\n },\n get Image(): AnimatedImage {\n return require('./components/AnimatedImage').default;\n },\n get ScrollView(): AnimatedScrollView {\n return require('./components/AnimatedScrollView').default;\n },\n get SectionList(): AnimatedSectionList {\n return require('./components/AnimatedSectionList').default;\n },\n get Text(): AnimatedText {\n return require('./components/AnimatedText').default;\n },\n get View(): AnimatedView {\n return require('./components/AnimatedView').default;\n },\n ...Animated,\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 * @format\n */\n\n'use strict';\n\nimport type {EventConfig, Mapping} from './AnimatedEvent';\nimport type {\n AnimationConfig,\n EndCallback,\n EndResult,\n} from './animations/Animation';\nimport type {DecayAnimationConfig} from './animations/DecayAnimation';\nimport type {SpringAnimationConfig} from './animations/SpringAnimation';\nimport type {TimingAnimationConfig} from './animations/TimingAnimation';\n\nimport {AnimatedEvent, attachNativeEvent} from './AnimatedEvent';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedColor from './nodes/AnimatedColor';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\n\nexport type CompositeAnimation = {\n start: (callback?: ?EndCallback) => void,\n stop: () => void,\n reset: () => void,\n _startNativeLoop: (iterations?: number) => void,\n _isUsingNativeDriver: () => boolean,\n ...\n};\n\nconst add = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedAddition {\n return new AnimatedAddition(a, b);\n};\n\nconst subtract = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedSubtraction {\n return new AnimatedSubtraction(a, b);\n};\n\nconst divide = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedDivision {\n return new AnimatedDivision(a, b);\n};\n\nconst multiply = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedMultiplication {\n return new AnimatedMultiplication(a, b);\n};\n\nconst modulo = function (a: AnimatedNode, modulus: number): AnimatedModulo {\n return new AnimatedModulo(a, modulus);\n};\n\nconst diffClamp = function (\n a: AnimatedNode,\n min: number,\n max: number,\n): AnimatedDiffClamp {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nconst _combineCallbacks = function (\n callback: ?EndCallback,\n config: $ReadOnly<{...AnimationConfig, ...}>,\n) {\n if (callback && config.onComplete) {\n return (...args: Array<EndResult>) => {\n config.onComplete && config.onComplete(...args);\n callback && callback(...args);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nconst maybeVectorAnim = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: Object,\n anim: (value: AnimatedValue, config: Object) => CompositeAnimation,\n): ?CompositeAnimation {\n if (value instanceof AnimatedValueXY) {\n const configX = {...config};\n const configY = {...config};\n for (const key in config) {\n const {x, y} = config[key];\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n const aX = anim((value: AnimatedValueXY).x, configX);\n const aY = anim((value: AnimatedValueXY).y, configY);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aX, aY], {stopTogether: false});\n } else if (value instanceof AnimatedColor) {\n const configR = {...config};\n const configG = {...config};\n const configB = {...config};\n const configA = {...config};\n for (const key in config) {\n const {r, g, b, a} = config[key];\n if (\n r !== undefined &&\n g !== undefined &&\n b !== undefined &&\n a !== undefined\n ) {\n configR[key] = r;\n configG[key] = g;\n configB[key] = b;\n configA[key] = a;\n }\n }\n const aR = anim((value: AnimatedColor).r, configR);\n const aG = anim((value: AnimatedColor).g, configG);\n const aB = anim((value: AnimatedColor).b, configB);\n const aA = anim((value: AnimatedColor).a, configA);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aR, aG, aB, aA], {stopTogether: false});\n }\n return null;\n};\n\nconst spring = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: SpringAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: SpringAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(\n new AnimatedTracking(\n singleValue,\n configuration.toValue,\n SpringAnimation,\n singleConfig,\n callback,\n ),\n );\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n return (\n maybeVectorAnim(value, config, spring) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst timing = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: TimingAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: TimingAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(\n new AnimatedTracking(\n singleValue,\n configuration.toValue,\n TimingAnimation,\n singleConfig,\n callback,\n ),\n );\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return (\n maybeVectorAnim(value, config, timing) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst decay = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: DecayAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: DecayAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return (\n maybeVectorAnim(value, config, decay) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst sequence = function (\n animations: Array<CompositeAnimation>,\n): CompositeAnimation {\n let current = 0;\n return {\n start: function (callback?: ?EndCallback) {\n const onComplete = function (result: EndResult) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({finished: true});\n } else {\n animations[current].start(onComplete);\n }\n },\n\n stop: function () {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n\n reset: function () {\n animations.forEach((animation, idx) => {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n\n _startNativeLoop: function () {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.sequence animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return false;\n },\n };\n};\n\ntype ParallelConfig = {\n // If one is stopped, stop all. default: true\n stopTogether?: boolean,\n ...\n};\nconst parallel = function (\n animations: Array<CompositeAnimation>,\n config?: ?ParallelConfig,\n): CompositeAnimation {\n let doneCount = 0;\n // Make sure we only call stop() at most once for each animation\n const hasEnded: {[number]: boolean} = {};\n const stopTogether = !(config && config.stopTogether === false);\n\n const result = {\n start: function (callback?: ?EndCallback) {\n if (doneCount === animations.length) {\n callback && callback({finished: true});\n return;\n }\n\n animations.forEach((animation, idx) => {\n const cb = function (endResult: EndResult | {finished: boolean}) {\n hasEnded[idx] = true;\n doneCount++;\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({finished: true});\n } else {\n animation.start(cb);\n }\n });\n },\n\n stop: function (): void {\n animations.forEach((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n\n reset: function (): void {\n animations.forEach((animation, idx) => {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n\n _startNativeLoop: function (): empty {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.parallel animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return false;\n },\n };\n\n return result;\n};\n\nconst delay = function (time: number): CompositeAnimation {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false,\n });\n};\n\nconst stagger = function (\n time: number,\n animations: Array<CompositeAnimation>,\n): CompositeAnimation {\n return parallel(\n animations.map((animation, i) => {\n return sequence([delay(time * i), animation]);\n }),\n );\n};\n\ntype LoopAnimationConfig = {\n iterations: number,\n resetBeforeIteration?: boolean,\n ...\n};\n\nconst loop = function (\n animation: CompositeAnimation,\n // $FlowFixMe[prop-missing]\n {iterations = -1, resetBeforeIteration = true}: LoopAnimationConfig = {},\n): CompositeAnimation {\n let isFinished = false;\n let iterationsSoFar = 0;\n return {\n start: function (callback?: ?EndCallback) {\n const restart = function (result: EndResult = {finished: true}): void {\n if (\n isFinished ||\n iterationsSoFar === iterations ||\n result.finished === false\n ) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n if (!animation || iterations === 0) {\n callback && callback({finished: true});\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n\n stop: function (): void {\n isFinished = true;\n animation.stop();\n },\n\n reset: function (): void {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n\n _startNativeLoop: function () {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.loop animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return animation._isUsingNativeDriver();\n },\n };\n};\n\nfunction forkEvent(\n event: ?AnimatedEvent | ?Function,\n listener: Function,\n): AnimatedEvent | Function {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n return event;\n } else {\n return (...args) => {\n typeof event === 'function' && event(...args);\n listener(...args);\n };\n }\n}\n\nfunction unforkEvent(\n event: ?AnimatedEvent | ?Function,\n listener: Function,\n): void {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nconst event = function (\n argMapping: $ReadOnlyArray<?Mapping>,\n config: EventConfig,\n): any {\n const animatedEvent = new AnimatedEvent(argMapping, config);\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n\n// All types of animated nodes that represent scalar numbers and can be interpolated (etc)\ntype AnimatedNumeric =\n | AnimatedAddition\n | AnimatedDiffClamp\n | AnimatedDivision\n | AnimatedInterpolation<number>\n | AnimatedModulo\n | AnimatedMultiplication\n | AnimatedSubtraction\n | AnimatedValue;\n\nexport type {AnimatedNumeric as Numeric};\n\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated\n */\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated#value\n */\n Value: AnimatedValue,\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\n ValueXY: AnimatedValueXY,\n /**\n * Value class for driving color animations.\n */\n Color: AnimatedColor,\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated#interpolation\n */\n Interpolation: AnimatedInterpolation,\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated#node\n */\n Node: AnimatedNode,\n\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated#decay\n */\n decay,\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated#timing\n */\n timing,\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated#spring\n */\n spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated#add\n */\n add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated#subtract\n */\n subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated#divide\n */\n divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated#multiply\n */\n multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated#modulo\n */\n modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated#diffclamp\n */\n diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated#delay\n */\n delay,\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated#sequence\n */\n sequence,\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated#parallel\n */\n parallel,\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated#stagger\n */\n stagger,\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated#loop\n */\n loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated#event\n */\n event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated#createanimatedcomponent\n */\n createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated#attachnativeevent\n */\n attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated#forkevent\n */\n forkEvent,\n unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from './AnimatedPlatformConfig';\n\nimport {findNodeHandle} from '../ReactNative/RendererProxy';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport invariant from 'invariant';\n\nexport type Mapping =\n | {[key: string]: Mapping, ...}\n | AnimatedValue\n | AnimatedValueXY;\nexport type EventConfig = {\n listener?: ?Function,\n useNativeDriver: boolean,\n platformConfig?: PlatformConfig,\n};\n\nexport function attachNativeEvent(\n viewRef: any,\n eventName: string,\n argMapping: $ReadOnlyArray<?Mapping>,\n platformConfig: ?PlatformConfig,\n): {detach: () => void} {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n const eventMappings = [];\n\n const traverse = (value: mixed, path: Array<string>) => {\n if (value instanceof AnimatedValue) {\n value.__makeNative(platformConfig);\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag(),\n });\n } else if (value instanceof AnimatedValueXY) {\n traverse(value.x, path.concat('x'));\n traverse(value.y, path.concat('y'));\n } else if (typeof value === 'object') {\n for (const key in value) {\n traverse(value[key], path.concat(key));\n }\n }\n };\n\n invariant(\n argMapping[0] && argMapping[0].nativeEvent,\n 'Native driven events only support animated values contained inside `nativeEvent`.',\n );\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n traverse(argMapping[0].nativeEvent, []);\n\n const viewTag = findNodeHandle(viewRef);\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(\n viewTag,\n eventName,\n mapping,\n );\n });\n }\n\n return {\n detach() {\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(\n viewTag,\n eventName,\n // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag,\n );\n });\n }\n },\n };\n}\n\nfunction validateMapping(argMapping: $ReadOnlyArray<?Mapping>, args: any) {\n const validate = (recMapping: ?Mapping, recEvt: any, key: string) => {\n if (recMapping instanceof AnimatedValue) {\n invariant(\n typeof recEvt === 'number',\n 'Bad mapping of event key ' +\n key +\n ', should be number but got ' +\n typeof recEvt,\n );\n return;\n }\n if (recMapping instanceof AnimatedValueXY) {\n invariant(\n typeof recEvt.x === 'number' && typeof recEvt.y === 'number',\n 'Bad mapping of event key ' + key + ', should be XY but got ' + recEvt,\n );\n return;\n }\n if (typeof recEvt === 'number') {\n invariant(\n recMapping instanceof AnimatedValue,\n 'Bad mapping of type ' +\n typeof recMapping +\n ' for key ' +\n key +\n ', event value must map to AnimatedValue',\n );\n return;\n }\n invariant(\n typeof recMapping === 'object',\n 'Bad mapping of type ' + typeof recMapping + ' for key ' + key,\n );\n invariant(\n typeof recEvt === 'object',\n 'Bad event of type ' + typeof recEvt + ' for key ' + key,\n );\n for (const mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n\n invariant(\n args.length >= argMapping.length,\n 'Event has less arguments than mapping',\n );\n argMapping.forEach((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport class AnimatedEvent {\n _argMapping: $ReadOnlyArray<?Mapping>;\n _listeners: Array<Function> = [];\n _attachedEvent: ?{detach: () => void, ...};\n __isNative: boolean;\n __platformConfig: ?PlatformConfig;\n\n constructor(argMapping: $ReadOnlyArray<?Mapping>, config: EventConfig) {\n this._argMapping = argMapping;\n\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {useNativeDriver: false};\n }\n\n if (config.listener) {\n this.__addListener(config.listener);\n }\n this._attachedEvent = null;\n this.__isNative = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this.__platformConfig = config.platformConfig;\n }\n\n __addListener(callback: Function): void {\n this._listeners.push(callback);\n }\n\n __removeListener(callback: Function): void {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n\n __attach(viewRef: any, eventName: string): void {\n invariant(\n this.__isNative,\n 'Only native driven events need to be attached.',\n );\n\n this._attachedEvent = attachNativeEvent(\n viewRef,\n eventName,\n this._argMapping,\n this.__platformConfig,\n );\n }\n\n __detach(viewTag: any, eventName: string): void {\n invariant(\n this.__isNative,\n 'Only native driven events need to be detached.',\n );\n\n this._attachedEvent && this._attachedEvent.detach();\n }\n\n __getHandler(): any | ((...args: any) => void) {\n if (this.__isNative) {\n if (__DEV__) {\n let validatedMapping = false;\n return (...args: any) => {\n if (!validatedMapping) {\n validateMapping(this._argMapping, args);\n validatedMapping = true;\n }\n this._callListeners(...args);\n };\n } else {\n return this._callListeners;\n }\n }\n\n let validatedMapping = false;\n return (...args: any) => {\n if (__DEV__ && !validatedMapping) {\n validateMapping(this._argMapping, args);\n validatedMapping = true;\n }\n\n const traverse = (\n recMapping: ?(Mapping | AnimatedValue),\n recEvt: any,\n ) => {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (recMapping instanceof AnimatedValueXY) {\n if (typeof recEvt === 'object') {\n traverse(recMapping.x, recEvt.x);\n traverse(recMapping.y, recEvt.y);\n }\n } else if (typeof recMapping === 'object') {\n for (const mappingKey in recMapping) {\n /* $FlowFixMe[prop-missing] (>=0.120.0) This comment suppresses an\n * error found when Flow v0.120 was deployed. To see the error,\n * delete this comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey]);\n }\n }\n };\n this._argMapping.forEach((mapping, idx) => {\n traverse(mapping, args[idx]);\n });\n\n this._callListeners(...args);\n };\n }\n\n _callListeners = (...args: any) => {\n this._listeners.forEach(listener => listener(...args));\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 strict-local\n * @format\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\nimport type {EventConfig} from './AnimatedEvent';\nimport type {AnimationConfig, EndCallback} from './animations/Animation';\nimport type {\n AnimatedNodeConfig,\n AnimatingNodeConfig,\n EventMapping,\n} from './NativeAnimatedModule';\nimport type {InterpolationConfigType} from './nodes/AnimatedInterpolation';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport Platform from '../Utilities/Platform';\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport invariant from 'invariant';\n\n// TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\nconst NativeAnimatedModule =\n Platform.OS === 'ios' && global.RN$Bridgeless === true\n ? NativeAnimatedTurboModule\n : NativeAnimatedNonTurboModule;\n\nlet __nativeAnimatedNodeTagCount = 1; /* used for animated nodes */\nlet __nativeAnimationIdCount = 1; /* used for started animations */\n\nlet nativeEventEmitter;\n\nlet waitingForQueuedOperations = new Set<string>();\nlet queueOperations = false;\nlet queue: Array<() => void> = [];\n// $FlowFixMe\nlet singleOpQueue: Array<any> = [];\n\nconst useSingleOpBatching =\n Platform.OS === 'android' &&\n !!NativeAnimatedModule?.queueAndExecuteBatchedOperations &&\n ReactNativeFeatureFlags.animatedShouldUseSingleOp();\nlet flushQueueTimeout = null;\n\nconst eventListenerGetValueCallbacks: {\n [$FlowFixMe | number]: ((value: number) => void) | void,\n} = {};\nconst eventListenerAnimationFinishedCallbacks: {\n [$FlowFixMe | number]: EndCallback | void,\n} = {};\nlet globalEventEmitterGetValueListener: ?EventSubscription = null;\nlet globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;\n\nconst nativeOps: ?typeof NativeAnimatedModule = useSingleOpBatching\n ? ((function () {\n const apis = [\n 'createAnimatedNode', // 1\n 'updateAnimatedNodeConfig', // 2\n 'getValue', // 3\n 'startListeningToAnimatedNodeValue', // 4\n 'stopListeningToAnimatedNodeValue', // 5\n 'connectAnimatedNodes', // 6\n 'disconnectAnimatedNodes', // 7\n 'startAnimatingNode', // 8\n 'stopAnimation', // 9\n 'setAnimatedNodeValue', // 10\n 'setAnimatedNodeOffset', // 11\n 'flattenAnimatedNodeOffset', // 12\n 'extractAnimatedNodeOffset', // 13\n 'connectAnimatedNodeToView', // 14\n 'disconnectAnimatedNodeFromView', // 15\n 'restoreDefaultValues', // 16\n 'dropAnimatedNode', // 17\n 'addAnimatedEventToView', // 18\n 'removeAnimatedEventFromView', // 19\n 'addListener', // 20\n 'removeListener', // 21\n ];\n return apis.reduce<{[string]: number}>((acc, functionName, i) => {\n // These indices need to be kept in sync with the indices in native (see NativeAnimatedModule in Java, or the equivalent for any other native platform).\n // $FlowFixMe[prop-missing]\n acc[functionName] = i + 1;\n return acc;\n }, {});\n })(): $FlowFixMe)\n : NativeAnimatedModule;\n\n/**\n * Wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods, and automatic queue management on Android\n */\nconst API = {\n getValue: function (\n tag: number,\n saveValueCallback: (value: number) => void,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (saveValueCallback) {\n eventListenerGetValueCallbacks[tag] = saveValueCallback;\n }\n // $FlowFixMe\n API.queueOperation(nativeOps.getValue, tag);\n } else {\n API.queueOperation(nativeOps.getValue, tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function (id: string): void {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n if (\n ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush() &&\n flushQueueTimeout\n ) {\n clearTimeout(flushQueueTimeout);\n }\n },\n unsetWaitingForIdentifier: function (id: string): void {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function (): void {\n invariant(nativeOps, 'Native animated module is not available');\n\n if (ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush()) {\n const prevTimeout = flushQueueTimeout;\n clearImmediate(prevTimeout);\n flushQueueTimeout = setImmediate(API.flushQueue);\n } else {\n API.flushQueue();\n }\n },\n flushQueue: function (): void {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n flushQueueTimeout = null;\n\n // Early returns before calling any APIs\n if (useSingleOpBatching && singleOpQueue.length === 0) {\n return;\n }\n if (!useSingleOpBatching && queue.length === 0) {\n return;\n }\n\n if (useSingleOpBatching) {\n // Set up event listener for callbacks if it's not set up\n if (\n !globalEventEmitterGetValueListener ||\n !globalEventEmitterAnimationFinishedListener\n ) {\n setupGlobalEventEmitterListeners();\n }\n // Single op batching doesn't use callback functions, instead we\n // use RCTDeviceEventEmitter. This reduces overhead of sending lots of\n // JSI functions across to native code; but also, TM infrastructure currently\n // does not support packing a function into native arrays.\n NativeAnimatedModule.queueAndExecuteBatchedOperations?.(singleOpQueue);\n singleOpQueue.length = 0;\n } else {\n Platform.OS === 'android' && NativeAnimatedModule.startOperationBatch?.();\n for (let q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n queue.length = 0;\n Platform.OS === 'android' &&\n NativeAnimatedModule.finishOperationBatch?.();\n }\n },\n queueOperation: <Args: $ReadOnlyArray<mixed>, Fn: (...Args) => void>(\n fn: Fn,\n ...args: Args\n ): void => {\n if (useSingleOpBatching) {\n // Get the command ID from the queued function, and push that ID and any arguments needed to execute the operation\n // $FlowFixMe: surprise, fn is actually a number\n singleOpQueue.push(fn, ...args);\n return;\n }\n\n // If queueing is explicitly on, *or* the queue has not yet\n // been flushed, use the queue. This is to prevent operations\n // from being executed out of order.\n if (queueOperations || queue.length !== 0) {\n queue.push(() => fn(...args));\n } else {\n fn(...args);\n }\n },\n createAnimatedNode: function (tag: number, config: AnimatedNodeConfig): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.createAnimatedNode, tag, config);\n },\n updateAnimatedNodeConfig: function (\n tag: number,\n config: AnimatedNodeConfig,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (nativeOps.updateAnimatedNodeConfig) {\n API.queueOperation(nativeOps.updateAnimatedNodeConfig, tag, config);\n }\n },\n startListeningToAnimatedNodeValue: function (tag: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.startListeningToAnimatedNodeValue, tag);\n },\n stopListeningToAnimatedNodeValue: function (tag: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopListeningToAnimatedNodeValue, tag);\n },\n connectAnimatedNodes: function (parentTag: number, childTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodes, parentTag, childTag);\n },\n disconnectAnimatedNodes: function (\n parentTag: number,\n childTag: number,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.disconnectAnimatedNodes, parentTag, childTag);\n },\n startAnimatingNode: function (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (endCallback) {\n eventListenerAnimationFinishedCallbacks[animationId] = endCallback;\n }\n // $FlowFixMe\n API.queueOperation(\n nativeOps.startAnimatingNode,\n animationId,\n nodeTag,\n config,\n );\n } else {\n API.queueOperation(\n nativeOps.startAnimatingNode,\n animationId,\n nodeTag,\n config,\n endCallback,\n );\n }\n },\n stopAnimation: function (animationId: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopAnimation, animationId);\n },\n setAnimatedNodeValue: function (nodeTag: number, value: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeValue, nodeTag, value);\n },\n setAnimatedNodeOffset: function (nodeTag: number, offset: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeOffset, nodeTag, offset);\n },\n flattenAnimatedNodeOffset: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.flattenAnimatedNodeOffset, nodeTag);\n },\n extractAnimatedNodeOffset: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.extractAnimatedNodeOffset, nodeTag);\n },\n connectAnimatedNodeToView: function (nodeTag: number, viewTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodeToView, nodeTag, viewTag);\n },\n disconnectAnimatedNodeFromView: function (\n nodeTag: number,\n viewTag: number,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.disconnectAnimatedNodeFromView,\n nodeTag,\n viewTag,\n );\n },\n restoreDefaultValues: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n // Backwards compat with older native runtimes, can be removed later.\n if (nativeOps.restoreDefaultValues != null) {\n API.queueOperation(nativeOps.restoreDefaultValues, nodeTag);\n }\n },\n dropAnimatedNode: function (tag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.dropAnimatedNode, tag);\n },\n addAnimatedEventToView: function (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.addAnimatedEventToView,\n viewTag,\n eventName,\n eventMapping,\n );\n },\n removeAnimatedEventFromView(\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.removeAnimatedEventFromView,\n viewTag,\n eventName,\n animatedNodeTag,\n );\n },\n};\n\nfunction setupGlobalEventEmitterListeners() {\n globalEventEmitterGetValueListener = RCTDeviceEventEmitter.addListener(\n 'onNativeAnimatedModuleGetValue',\n function (params) {\n const {tag} = params;\n const callback = eventListenerGetValueCallbacks[tag];\n if (!callback) {\n return;\n }\n callback(params.value);\n delete eventListenerGetValueCallbacks[tag];\n },\n );\n globalEventEmitterAnimationFinishedListener =\n RCTDeviceEventEmitter.addListener(\n 'onNativeAnimatedModuleAnimationFinished',\n function (params) {\n const {animationId} = params;\n const callback = eventListenerAnimationFinishedCallbacks[animationId];\n if (!callback) {\n return;\n }\n callback(params);\n delete eventListenerAnimationFinishedCallbacks[animationId];\n },\n );\n}\n\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric or color property that\n * doesn't need to be updated through the shadow view hierarchy (all non-layout properties).\n */\nconst SUPPORTED_COLOR_STYLES = {\n backgroundColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderStartColor: true,\n borderTopColor: true,\n color: true,\n tintColor: true,\n};\n\nconst SUPPORTED_STYLES = {\n ...SUPPORTED_COLOR_STYLES,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n opacity: true,\n transform: true,\n zIndex: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n};\n\nconst SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true,\n};\n\nconst SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true,\n};\n\nfunction addWhitelistedStyleProp(prop: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction isSupportedColorStyleProp(prop: string): boolean {\n return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);\n}\n\nfunction isSupportedStyleProp(prop: string): boolean {\n return SUPPORTED_STYLES.hasOwnProperty(prop);\n}\n\nfunction isSupportedTransformProp(prop: string): boolean {\n return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);\n}\n\nfunction isSupportedInterpolationParam(param: string): boolean {\n return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);\n}\n\nfunction validateTransform(\n configs: Array<\n | {\n type: 'animated',\n property: string,\n nodeTag: ?number,\n ...\n }\n | {\n type: 'static',\n property: string,\n value: number | string,\n ...\n },\n >,\n): void {\n configs.forEach(config => {\n if (!isSupportedTransformProp(config.property)) {\n throw new Error(\n `Property '${config.property}' is not supported by native animated module`,\n );\n }\n });\n}\n\nfunction validateStyles(styles: {[key: string]: ?number, ...}): void {\n for (const key in styles) {\n if (!isSupportedStyleProp(key)) {\n throw new Error(\n `Style property '${key}' is not supported by native animated module`,\n );\n }\n }\n}\n\nfunction validateInterpolation<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n): void {\n for (const key in config) {\n if (!isSupportedInterpolationParam(key)) {\n throw new Error(\n `Interpolation property '${key}' is not supported by native animated module`,\n );\n }\n }\n}\n\nfunction generateNewNodeTag(): number {\n return __nativeAnimatedNodeTagCount++;\n}\n\nfunction generateNewAnimationId(): number {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule(): void {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nlet _warnedMissingNativeAnimated = false;\n\nfunction shouldUseNativeDriver(\n config: $ReadOnly<{...AnimationConfig, ...}> | EventConfig,\n): boolean {\n if (config.useNativeDriver == null) {\n console.warn(\n 'Animated: `useNativeDriver` was not specified. This is a required ' +\n 'option and must be explicitly set to `true` or `false`',\n );\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (process.env.NODE_ENV !== 'test') {\n if (!_warnedMissingNativeAnimated) {\n console.warn(\n 'Animated: `useNativeDriver` is not supported because the native ' +\n 'animated module is missing. Falling back to JS-based animation. To ' +\n 'resolve this, add `RCTAnimation` module to this app, or remove ' +\n '`useNativeDriver`. ' +\n 'Make sure to run `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md',\n );\n _warnedMissingNativeAnimated = true;\n }\n }\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value: number | string): number | string {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n if (/deg$/.test(value)) {\n const degrees = parseFloat(value) || 0;\n const radians = (degrees * Math.PI) / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API,\n isSupportedColorStyleProp,\n isSupportedStyleProp,\n isSupportedTransformProp,\n isSupportedInterpolationParam,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n transformDataType,\n // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppresion\n // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppresion\n get nativeEventEmitter(): NativeEventEmitter {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAnimatedModule,\n );\n }\n return nativeEventEmitter;\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype EndResult = {finished: boolean, ...};\ntype EndCallback = (result: EndResult) => void;\ntype SaveValueCallback = (value: number) => void;\n\nexport type EventMapping = {|\n nativeEventPath: Array<string>,\n animatedValueTag: ?number,\n|};\n\n// The config has different keys depending on the type of the Node\n// TODO(T54896888): Make these types strict\nexport type AnimatedNodeConfig = Object;\nexport type AnimatingNodeConfig = Object;\n\nexport interface Spec extends TurboModule {\n +startOperationBatch: () => void;\n +finishOperationBatch: () => void;\n +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;\n +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;\n +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;\n +startListeningToAnimatedNodeValue: (tag: number) => void;\n +stopListeningToAnimatedNodeValue: (tag: number) => void;\n +connectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +startAnimatingNode: (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ) => void;\n +stopAnimation: (animationId: number) => void;\n +setAnimatedNodeValue: (nodeTag: number, value: number) => void;\n +setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;\n +flattenAnimatedNodeOffset: (nodeTag: number) => void;\n +extractAnimatedNodeOffset: (nodeTag: number) => void;\n +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;\n +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;\n +restoreDefaultValues: (nodeTag: number) => void;\n +dropAnimatedNode: (tag: number) => void;\n +addAnimatedEventToView: (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) => void;\n +removeAnimatedEventFromView: (\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // All of the above in a batched mode\n +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array<any>) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('NativeAnimatedModule'): ?Spec);\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype EndResult = {finished: boolean, ...};\ntype EndCallback = (result: EndResult) => void;\ntype SaveValueCallback = (value: number) => void;\n\nexport type EventMapping = {|\n nativeEventPath: Array<string>,\n animatedValueTag: ?number,\n|};\n\n// The config has different keys depending on the type of the Node\n// TODO(T54896888): Make these types strict\nexport type AnimatedNodeConfig = Object;\nexport type AnimatingNodeConfig = Object;\n\nexport interface Spec extends TurboModule {\n +startOperationBatch: () => void;\n +finishOperationBatch: () => void;\n +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;\n +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;\n +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;\n +startListeningToAnimatedNodeValue: (tag: number) => void;\n +stopListeningToAnimatedNodeValue: (tag: number) => void;\n +connectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +startAnimatingNode: (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ) => void;\n +stopAnimation: (animationId: number) => void;\n +setAnimatedNodeValue: (nodeTag: number, value: number) => void;\n +setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;\n +flattenAnimatedNodeOffset: (nodeTag: number) => void;\n +extractAnimatedNodeOffset: (nodeTag: number) => void;\n +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;\n +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;\n +restoreDefaultValues: (nodeTag: number) => void;\n +dropAnimatedNode: (tag: number) => void;\n +addAnimatedEventToView: (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) => void;\n +removeAnimatedEventFromView: (\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // All of the above in a batched mode\n +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array<any>) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>(\n 'NativeAnimatedTurboModule',\n): ?Spec);\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 * @format\n */\n\n'use strict';\n\nimport type Animation, {EndCallback} from '../animations/Animation';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\nimport type AnimatedTracking from './AnimatedTracking';\n\nimport InteractionManager from '../../Interaction/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport type AnimatedValueConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nfunction _flush(rootNode: AnimatedValue): void {\n const animatedStyles = new Set<AnimatedValue | AnimatedNode>();\n function findAnimatedStyles(node: AnimatedValue | AnimatedNode) {\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n findAnimatedStyles(rootNode);\n // $FlowFixMe[prop-missing]\n animatedStyles.forEach(animatedStyle => animatedStyle.update());\n}\n\n/**\n * Some operations are executed only on batch end, which is _mostly_ scheduled when\n * Animated component props change. For some of the changes which require immediate execution\n * (e.g. setValue), we create a separate batch in case none is scheduled.\n */\nfunction _executeAsAnimatedBatch(id: string, operation: () => void) {\n NativeAnimatedAPI.setWaitingForIdentifier(id);\n operation();\n NativeAnimatedAPI.unsetWaitingForIdentifier(id);\n}\n\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue\n */\nexport default class AnimatedValue extends AnimatedWithChildren {\n _value: number;\n _startingValue: number;\n _offset: number;\n _animation: ?Animation;\n _tracking: ?AnimatedTracking;\n\n // $FlowFixMe[missing-local-annot]\n constructor(value: number, config?: ?AnimatedValueConfig) {\n super();\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n this._startingValue = this._value = value;\n this._offset = 0;\n this._animation = null;\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value - this._offset;\n });\n }\n this.stopAnimation();\n super.__detach();\n }\n\n __getValue(): number {\n return this._value + this._offset;\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue#setvalue\n */\n setValue(value: number): void {\n if (this._animation) {\n this._animation.stop();\n this._animation = null;\n }\n this._updateValue(\n value,\n !this.__isNative /* don't perform a flush for natively driven values */,\n );\n if (this.__isNative) {\n _executeAsAnimatedBatch(this.__getNativeTag().toString(), () =>\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value),\n );\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue#setoffset\n */\n setOffset(offset: number): void {\n this._offset = offset;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#flattenoffset\n */\n flattenOffset(): void {\n this._value += this._offset;\n this._offset = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#extractoffset\n */\n extractOffset(): void {\n this._offset += this._value;\n this._value = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue#stopanimation\n */\n stopAnimation(callback?: ?(value: number) => void): void {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n if (callback) {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), callback);\n } else {\n callback(this.__getValue());\n }\n }\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue#resetanimation\n */\n resetAnimation(callback?: ?(value: number) => void): void {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(\n this.__getNativeTag(),\n this._startingValue,\n );\n }\n }\n\n __onAnimatedValueUpdateReceived(value: number): void {\n this._updateValue(value, false /*flush*/);\n }\n\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n interpolate<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n ): AnimatedInterpolation<OutputT> {\n return new AnimatedInterpolation(this, config);\n }\n\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue#animate\n */\n animate(animation: Animation, callback: ?EndCallback): void {\n let handle = null;\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n const previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(\n this._value,\n value => {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n this._updateValue(value, true /* flush */);\n },\n result => {\n this._animation = null;\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n callback && callback(result);\n },\n previousAnimation,\n this,\n );\n }\n\n /**\n * Typically only used internally.\n */\n stopTracking(): void {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n\n /**\n * Typically only used internally.\n */\n track(tracking: AnimatedTracking): void {\n this.stopTracking();\n this._tracking = tracking;\n // Make sure that the tracking animation starts executing\n this._tracking && this._tracking.update();\n }\n\n _updateValue(value: number, flush: boolean): void {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n if (flush) {\n _flush(this);\n }\n super.__callListeners(this.__getValue());\n }\n\n __getNativeConfig(): Object {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset,\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 * @format\n * @flow strict-local\n */\n\nimport type {Task} from './TaskQueue';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\nconst BatchedBridge = require('../BatchedBridge/BatchedBridge');\nconst infoLog = require('../Utilities/infoLog');\nconst TaskQueue = require('./TaskQueue');\nconst invariant = require('invariant');\n\nexport type Handle = number;\n\nconst _emitter = new EventEmitter<{\n interactionComplete: [],\n interactionStart: [],\n}>();\n\nconst DEBUG_DELAY: 0 = 0;\nconst DEBUG: false = false;\n\n/**\n * InteractionManager allows long-running work to be scheduled after any\n * interactions/animations have completed. In particular, this allows JavaScript\n * animations to run smoothly.\n *\n * Applications can schedule tasks to run after interactions with the following:\n *\n * ```\n * InteractionManager.runAfterInteractions(() => {\n * // ...long-running synchronous task...\n * });\n * ```\n *\n * Compare this to other scheduling alternatives:\n *\n * - requestAnimationFrame(): for code that animates a view over time.\n * - setImmediate/setTimeout(): run code later, note this may delay animations.\n * - runAfterInteractions(): run code later, without delaying active animations.\n *\n * The touch handling system considers one or more active touches to be an\n * 'interaction' and will delay `runAfterInteractions()` callbacks until all\n * touches have ended or been cancelled.\n *\n * InteractionManager also allows applications to register animations by\n * creating an interaction 'handle' on animation start, and clearing it upon\n * completion:\n *\n * ```\n * var handle = InteractionManager.createInteractionHandle();\n * // run animation... (`runAfterInteractions` tasks are queued)\n * // later, on animation completion:\n * InteractionManager.clearInteractionHandle(handle);\n * // queued tasks run if all handles were cleared\n * ```\n *\n * `runAfterInteractions` takes either a plain callback function, or a\n * `PromiseTask` object with a `gen` method that returns a `Promise`. If a\n * `PromiseTask` is supplied, then it is fully resolved (including asynchronous\n * dependencies that also schedule more tasks via `runAfterInteractions`) before\n * starting on the next task that might have been queued up synchronously\n * earlier.\n *\n * By default, queued tasks are executed together in a loop in one\n * `setImmediate` batch. If `setDeadline` is called with a positive number, then\n * tasks will only be executed until the deadline (in terms of js event loop run\n * time) approaches, at which point execution will yield via setTimeout,\n * allowing events such as touches to start interactions and block queued tasks\n * from executing, making apps more responsive.\n */\nconst InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete',\n },\n\n /**\n * Schedule a function to run after all interactions have completed. Returns a cancellable\n * \"promise\".\n */\n runAfterInteractions(task: ?Task): {\n then: <U>(\n onFulfill?: ?(void) => ?(Promise<U> | U),\n onReject?: ?(error: mixed) => ?(Promise<U> | U),\n ) => Promise<U>,\n cancel: () => void,\n ...\n } {\n const tasks: Array<Task> = [];\n const promise = new Promise((resolve: () => void) => {\n _scheduleUpdate();\n if (task) {\n tasks.push(task);\n }\n tasks.push({\n run: resolve,\n name: 'resolve ' + ((task && task.name) || '?'),\n });\n _taskQueue.enqueueTasks(tasks);\n });\n return {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n then: promise.then.bind(promise),\n cancel: function () {\n _taskQueue.cancelTasks(tasks);\n },\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle(): Handle {\n DEBUG && infoLog('InteractionManager: create interaction handle');\n _scheduleUpdate();\n const handle = ++_inc;\n _addInteractionSet.add(handle);\n return handle;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle: Handle) {\n DEBUG && infoLog('InteractionManager: clear interaction handle');\n invariant(!!handle, 'InteractionManager: Must provide a handle to clear.');\n _scheduleUpdate();\n _addInteractionSet.delete(handle);\n _deleteInteractionSet.add(handle);\n },\n\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n addListener: (_emitter.addListener.bind(_emitter): $FlowFixMe),\n\n /**\n * A positive number will use setTimeout to schedule any tasks after the\n * eventLoopRunningTime hits the deadline value, otherwise all tasks will be\n * executed in one setImmediate batch (default).\n */\n setDeadline(deadline: number) {\n _deadline = deadline;\n },\n};\n\nconst _interactionSet = new Set<number | Handle>();\nconst _addInteractionSet = new Set<number | Handle>();\nconst _deleteInteractionSet = new Set<Handle>();\nconst _taskQueue = new TaskQueue({onMoreTasks: _scheduleUpdate});\nlet _nextUpdateHandle: $FlowFixMe | TimeoutID = 0;\nlet _inc = 0;\nlet _deadline = -1;\n\n/**\n * Schedule an asynchronous update to the interaction state.\n */\nfunction _scheduleUpdate() {\n if (!_nextUpdateHandle) {\n if (_deadline > 0) {\n _nextUpdateHandle = setTimeout(_processUpdate, 0 + DEBUG_DELAY);\n } else {\n _nextUpdateHandle = setImmediate(_processUpdate);\n }\n }\n}\n\n/**\n * Notify listeners, process queue, etc\n */\nfunction _processUpdate() {\n _nextUpdateHandle = 0;\n\n const interactionCount = _interactionSet.size;\n _addInteractionSet.forEach(handle => _interactionSet.add(handle));\n _deleteInteractionSet.forEach(handle => _interactionSet.delete(handle));\n const nextInteractionCount = _interactionSet.size;\n\n if (interactionCount !== 0 && nextInteractionCount === 0) {\n // transition from 1+ --> 0 interactions\n _emitter.emit(InteractionManager.Events.interactionComplete);\n } else if (interactionCount === 0 && nextInteractionCount !== 0) {\n // transition from 0 --> 1+ interactions\n _emitter.emit(InteractionManager.Events.interactionStart);\n }\n\n // process the queue regardless of a transition\n if (nextInteractionCount === 0) {\n while (_taskQueue.hasTasksToProcess()) {\n _taskQueue.processNext();\n if (\n _deadline > 0 &&\n BatchedBridge.getEventLoopRunningTime() >= _deadline\n ) {\n // Hit deadline before processing all tasks, so process more later.\n _scheduleUpdate();\n break;\n }\n }\n }\n _addInteractionSet.clear();\n _deleteInteractionSet.clear();\n}\n\nmodule.exports = InteractionManager;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nconst infoLog = require('../Utilities/infoLog');\nconst invariant = require('invariant');\n\ntype SimpleTask = {\n name: string,\n run: () => void,\n};\ntype PromiseTask = {\n name: string,\n gen: () => Promise<void>,\n};\nexport type Task = SimpleTask | PromiseTask | (() => void);\n\nconst DEBUG: false = false;\n\n/**\n * TaskQueue - A system for queueing and executing a mix of simple callbacks and\n * trees of dependent tasks based on Promises. No tasks are executed unless\n * `processNext` is called.\n *\n * `enqueue` takes a Task object with either a simple `run` callback, or a\n * `gen` function that returns a `Promise` and puts it in the queue. If a gen\n * function is supplied, then the promise it returns will block execution of\n * tasks already in the queue until it resolves. This can be used to make sure\n * the first task is fully resolved (including asynchronous dependencies that\n * also schedule more tasks via `enqueue`) before starting on the next task.\n * The `onMoreTasks` constructor argument is used to inform the owner that an\n * async task has resolved and that the queue should be processed again.\n *\n * Note: Tasks are only actually executed with explicit calls to `processNext`.\n */\nclass TaskQueue {\n /**\n * TaskQueue instances are self contained and independent, so multiple tasks\n * of varying semantics and priority can operate together.\n *\n * `onMoreTasks` is invoked when `PromiseTask`s resolve if there are more\n * tasks to process.\n */\n constructor({onMoreTasks}: {onMoreTasks: () => void, ...}) {\n this._onMoreTasks = onMoreTasks;\n this._queueStack = [{tasks: [], popable: false}];\n }\n\n /**\n * Add a task to the queue. It is recommended to name your tasks for easier\n * async debugging. Tasks will not be executed until `processNext` is called\n * explicitly.\n */\n enqueue(task: Task): void {\n this._getCurrentQueue().push(task);\n }\n\n enqueueTasks(tasks: Array<Task>): void {\n tasks.forEach(task => this.enqueue(task));\n }\n\n cancelTasks(tasksToCancel: Array<Task>): void {\n // search through all tasks and remove them.\n this._queueStack = this._queueStack\n .map(queue => ({\n ...queue,\n tasks: queue.tasks.filter(task => tasksToCancel.indexOf(task) === -1),\n }))\n .filter((queue, idx) => queue.tasks.length > 0 || idx === 0);\n }\n\n /**\n * Check to see if `processNext` should be called.\n *\n * @returns {boolean} Returns true if there are tasks that are ready to be\n * processed with `processNext`, or returns false if there are no more tasks\n * to be processed right now, although there may be tasks in the queue that\n * are blocked by earlier `PromiseTask`s that haven't resolved yet.\n * `onMoreTasks` will be called after each `PromiseTask` resolves if there are\n * tasks ready to run at that point.\n */\n hasTasksToProcess(): boolean {\n return this._getCurrentQueue().length > 0;\n }\n\n /**\n * Executes the next task in the queue.\n */\n processNext(): void {\n const queue = this._getCurrentQueue();\n if (queue.length) {\n const task = queue.shift();\n try {\n if (typeof task === 'object' && task.gen) {\n DEBUG && infoLog('TaskQueue: genPromise for task ' + task.name);\n this._genPromise(task);\n } else if (typeof task === 'object' && task.run) {\n DEBUG && infoLog('TaskQueue: run task ' + task.name);\n task.run();\n } else {\n invariant(\n typeof task === 'function',\n 'Expected Function, SimpleTask, or PromiseTask, but got:\\n' +\n JSON.stringify(task, null, 2),\n );\n DEBUG && infoLog('TaskQueue: run anonymous task');\n task();\n }\n } catch (e) {\n e.message =\n 'TaskQueue: Error with task ' + (task.name || '') + ': ' + e.message;\n throw e;\n }\n }\n }\n\n _queueStack: Array<{\n tasks: Array<Task>,\n popable: boolean,\n ...\n }>;\n _onMoreTasks: () => void;\n\n _getCurrentQueue(): Array<Task> {\n const stackIdx = this._queueStack.length - 1;\n const queue = this._queueStack[stackIdx];\n if (\n queue.popable &&\n queue.tasks.length === 0 &&\n this._queueStack.length > 1\n ) {\n this._queueStack.pop();\n DEBUG &&\n infoLog('TaskQueue: popped queue: ', {\n stackIdx,\n queueStackSize: this._queueStack.length,\n });\n return this._getCurrentQueue();\n } else {\n return queue.tasks;\n }\n }\n\n _genPromise(task: PromiseTask) {\n // Each async task pushes it's own queue onto the queue stack. This\n // effectively defers execution of previously queued tasks until the promise\n // resolves, at which point we allow the new queue to be popped, which\n // happens once it is fully processed.\n this._queueStack.push({tasks: [], popable: false});\n const stackIdx = this._queueStack.length - 1;\n const stackItem = this._queueStack[stackIdx];\n DEBUG && infoLog('TaskQueue: push new queue: ', {stackIdx});\n DEBUG && infoLog('TaskQueue: exec gen task ' + task.name);\n task\n .gen()\n .then(() => {\n DEBUG &&\n infoLog('TaskQueue: onThen for gen task ' + task.name, {\n stackIdx,\n queueStackSize: this._queueStack.length,\n });\n stackItem.popable = true;\n this.hasTasksToProcess() && this._onMoreTasks();\n })\n .catch(ex => {\n setTimeout(() => {\n ex.message = `TaskQueue: Error resolving Promise in task ${task.name}: ${ex.message}`;\n throw ex;\n }, 0);\n });\n }\n}\n\nmodule.exports = TaskQueue;\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 * @format\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedNode from './AnimatedNode';\n\nimport normalizeColor from '../../StyleSheet/normalizeColor';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'invariant';\n\ntype ExtrapolateType = 'extend' | 'identity' | 'clamp';\n\nexport type InterpolationConfigType<OutputT: number | string> = $ReadOnly<{\n inputRange: $ReadOnlyArray<number>,\n outputRange: $ReadOnlyArray<OutputT>,\n easing?: (input: number) => number,\n extrapolate?: ExtrapolateType,\n extrapolateLeft?: ExtrapolateType,\n extrapolateRight?: ExtrapolateType,\n}>;\n\nconst linear = (t: number) => t;\n\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\nfunction createInterpolation<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n): (input: number) => OutputT {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return (createInterpolationFromStringOutputRange((config: any)): any);\n }\n\n const outputRange: $ReadOnlyArray<number> = (config.outputRange: any);\n\n const inputRange = config.inputRange;\n\n if (__DEV__) {\n checkInfiniteRange('outputRange', outputRange);\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange (' +\n inputRange.length +\n ') and outputRange (' +\n outputRange.length +\n ') must have the same length',\n );\n }\n\n const easing = config.easing || linear;\n\n let extrapolateLeft: ExtrapolateType = 'extend';\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n let extrapolateRight: ExtrapolateType = 'extend';\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return input => {\n invariant(\n typeof input === 'number',\n 'Cannot interpolation an input which is not a number',\n );\n\n const range = findRange(input, inputRange);\n return (interpolate(\n input,\n inputRange[range],\n inputRange[range + 1],\n outputRange[range],\n outputRange[range + 1],\n easing,\n extrapolateLeft,\n extrapolateRight,\n ): any);\n };\n}\n\nfunction interpolate(\n input: number,\n inputMin: number,\n inputMax: number,\n outputMin: number,\n outputMax: number,\n easing: (input: number) => number,\n extrapolateLeft: ExtrapolateType,\n extrapolateRight: ExtrapolateType,\n) {\n let result = input;\n\n // Extrapolate\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Easing\n result = easing(result);\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nfunction colorToRgba(input: string): string {\n let normalizedColor = normalizeColor(input);\n if (normalizedColor === null || typeof normalizedColor !== 'number') {\n return input;\n }\n\n normalizedColor = normalizedColor || 0;\n\n const r = (normalizedColor & 0xff000000) >>> 24;\n const g = (normalizedColor & 0x00ff0000) >>> 16;\n const b = (normalizedColor & 0x0000ff00) >>> 8;\n const a = (normalizedColor & 0x000000ff) / 255;\n\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\nconst stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\nfunction createInterpolationFromStringOutputRange(\n config: InterpolationConfigType<string>,\n): (input: number) => string {\n let outputRange: Array<string> = (config.outputRange: any);\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange);\n\n // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']\n // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */\n const outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);\n outputRange.forEach(value => {\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `value.match()` can return\n * `null`. Need to guard against this possibility. */\n value.match(stringShapeRegex).forEach((number, i) => {\n outputRanges[i].push(+number);\n });\n });\n\n const interpolations = outputRange[0]\n .match(stringShapeRegex)\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */\n /* $FlowFixMe[incompatible-call] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */\n .map((value, i) => {\n return createInterpolation({\n ...config,\n outputRange: outputRanges[i],\n });\n });\n\n // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n const shouldRound = isRgbOrRgba(outputRange[0]);\n\n return input => {\n let i = 0;\n // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n return outputRange[0].replace(stringShapeRegex, () => {\n let val = +interpolations[i++](input);\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n return String(val);\n });\n };\n}\n\nfunction isRgbOrRgba(range: string) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\n\nfunction checkPattern(arr: $ReadOnlyArray<string>) {\n const pattern = arr[0].replace(stringShapeRegex, '');\n for (let i = 1; i < arr.length; ++i) {\n invariant(\n pattern === arr[i].replace(stringShapeRegex, ''),\n 'invalid pattern ' + arr[0] + ' and ' + arr[i],\n );\n }\n}\n\nfunction findRange(input: number, inputRange: $ReadOnlyArray<number>) {\n let i;\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n return i - 1;\n}\n\nfunction checkValidInputRange(arr: $ReadOnlyArray<number>) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n const message =\n 'inputRange must be monotonically non-decreasing ' + String(arr);\n for (let i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1], message);\n }\n}\n\nfunction checkInfiniteRange(name: string, arr: $ReadOnlyArray<number>) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(\n arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe[incompatible-type] (>=0.13.0) - In the addition expression\n * below this comment, one or both of the operands may be something that\n * doesn't cleanly convert to a string, like undefined, null, and object,\n * etc. If you really mean this implicit string conversion, you can do\n * something like String(myThing) */\n name + 'cannot be ]-infinity;+infinity[ ' + arr,\n );\n}\n\nexport default class AnimatedInterpolation<\n OutputT: number | string,\n> extends AnimatedWithChildren {\n // Export for testing.\n static __createInterpolation: (\n config: InterpolationConfigType<OutputT>,\n ) => (input: number) => OutputT = createInterpolation;\n\n _parent: AnimatedNode;\n _config: InterpolationConfigType<OutputT>;\n _interpolation: (input: number) => OutputT;\n\n constructor(parent: AnimatedNode, config: InterpolationConfigType<OutputT>) {\n super();\n this._parent = parent;\n this._config = config;\n this._interpolation = createInterpolation(config);\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number | string {\n const parentValue: number = this._parent.__getValue();\n invariant(\n typeof parentValue === 'number',\n 'Cannot interpolate an input which is not a number.',\n );\n return this._interpolation(parentValue);\n }\n\n interpolate<NewOutputT: number | string>(\n config: InterpolationConfigType<NewOutputT>,\n ): AnimatedInterpolation<NewOutputT> {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._parent.__addChild(this);\n }\n\n __detach(): void {\n this._parent.__removeChild(this);\n super.__detach();\n }\n\n __transformDataType(range: $ReadOnlyArray<OutputT>): Array<any> {\n return range.map(NativeAnimatedHelper.transformDataType);\n }\n\n __getNativeConfig(): any {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n\n return {\n inputRange: this._config.inputRange,\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft:\n this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight:\n this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation',\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 strict-local\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\n\nexport default class AnimatedWithChildren extends AnimatedNode {\n _children: Array<AnimatedNode>;\n\n constructor() {\n super();\n this._children = [];\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n if (!this.__isNative) {\n this.__isNative = true;\n for (const child of this._children) {\n child.__makeNative(platformConfig);\n NativeAnimatedHelper.API.connectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n }\n super.__makeNative(platformConfig);\n }\n\n __addChild(child: AnimatedNode): void {\n if (this._children.length === 0) {\n this.__attach();\n }\n this._children.push(child);\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative(this.__getPlatformConfig());\n NativeAnimatedHelper.API.connectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n }\n\n __removeChild(child: AnimatedNode): void {\n const index = this._children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n this._children.splice(index, 1);\n if (this._children.length === 0) {\n this.__detach();\n }\n }\n\n __getChildren(): Array<AnimatedNode> {\n return this._children;\n }\n\n __callListeners(value: number): void {\n super.__callListeners(value);\n if (!this.__isNative) {\n for (const child of this._children) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport ReactNativeFeatureFlags from '../../ReactNative/ReactNativeFeatureFlags';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'invariant';\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\ntype ValueListenerCallback = (state: {value: number, ...}) => mixed;\n\nlet _uniqueId = 1;\n\n// Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\nexport default class AnimatedNode {\n _listeners: {[key: string]: ValueListenerCallback, ...};\n _platformConfig: ?PlatformConfig;\n __nativeAnimatedValueListener: ?any;\n __attach(): void {}\n __detach(): void {\n if (ReactNativeFeatureFlags.removeListenersOnDetach()) {\n this.removeAllListeners();\n }\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n __getValue(): any {}\n __getAnimatedValue(): any {\n return this.__getValue();\n }\n __addChild(child: AnimatedNode) {}\n __removeChild(child: AnimatedNode) {}\n __getChildren(): Array<AnimatedNode> {\n return [];\n }\n\n /* Methods and props used by native Animated impl */\n __isNative: boolean;\n __nativeTag: ?number;\n __shouldUpdateListenersForNewNativeTag: boolean;\n\n constructor() {\n this._listeners = {};\n }\n\n __makeNative(platformConfig: ?PlatformConfig): void {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n this._platformConfig = platformConfig;\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue#addlistener\n */\n addListener(callback: (value: any) => mixed): string {\n const id = String(_uniqueId++);\n this._listeners[id] = callback;\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue#removelistener\n */\n removeListener(id: string): void {\n delete this._listeners[id];\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue#removealllisteners\n */\n removeAllListeners(): void {\n this._listeners = {};\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n hasListeners(): boolean {\n return !!Object.keys(this._listeners).length;\n }\n\n _startListeningToNativeValueUpdates() {\n if (\n this.__nativeAnimatedValueListener &&\n !this.__shouldUpdateListenersForNewNativeTag\n ) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener =\n NativeAnimatedHelper.nativeEventEmitter.addListener(\n 'onAnimatedValueUpdate',\n data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n this.__onAnimatedValueUpdateReceived(data.value);\n },\n );\n }\n\n __onAnimatedValueUpdateReceived(value: number) {\n this.__callListeners(value);\n }\n\n __callListeners(value: number): void {\n for (const key in this._listeners) {\n this._listeners[key]({value});\n }\n }\n\n _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n }\n\n __getNativeTag(): number {\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(\n this.__isNative,\n 'Attempt to get native tag from node not marked as \"native\"',\n );\n\n const nativeTag =\n this.__nativeTag ?? NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n const config = this.__getNativeConfig();\n if (this._platformConfig) {\n config.platformConfig = this._platformConfig;\n }\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, config);\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n }\n __getNativeConfig(): Object {\n throw new Error(\n 'This JS animated node type cannot be used as native animated node',\n );\n }\n toJSON(): any {\n return this.__getValue();\n }\n\n __getPlatformConfig(): ?PlatformConfig {\n return this._platformConfig;\n }\n __setPlatformConfig(platformConfig: ?PlatformConfig) {\n this._platformConfig = platformConfig;\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'invariant';\n\nexport type AnimatedValueXYConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\ntype ValueXYListenerCallback = (value: {\n x: number,\n y: number,\n ...\n}) => mixed;\n\nlet _uniqueId = 1;\n\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\nexport default class AnimatedValueXY extends AnimatedWithChildren {\n x: AnimatedValue;\n y: AnimatedValue;\n _listeners: {\n [key: string]: {\n x: string,\n y: string,\n ...\n },\n ...\n };\n\n constructor(\n valueIn?: ?{\n +x: number | AnimatedValue,\n +y: number | AnimatedValue,\n ...\n },\n config?: ?AnimatedValueXYConfig,\n ) {\n super();\n const value: any = valueIn || {x: 0, y: 0}; // @flowfixme: shouldn't need `: any`\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n this.x = new AnimatedValue(value.x);\n this.y = new AnimatedValue(value.y);\n } else {\n invariant(\n value.x instanceof AnimatedValue && value.y instanceof AnimatedValue,\n 'AnimatedValueXY must be initialized with an object of numbers or ' +\n 'AnimatedValues.',\n );\n this.x = value.x;\n this.y = value.y;\n }\n this._listeners = {};\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#setvalue\n */\n setValue(value: {x: number, y: number, ...}) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#setoffset\n */\n setOffset(offset: {x: number, y: number, ...}) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#flattenoffset\n */\n flattenOffset(): void {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#extractoffset\n */\n extractOffset(): void {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n\n __getValue(): {\n x: number,\n y: number,\n ...\n } {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue(),\n };\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#resetanimation\n */\n resetAnimation(\n callback?: (value: {\n x: number,\n y: number,\n ...\n }) => void,\n ): void {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#stopanimation\n */\n stopAnimation(\n callback?: (value: {\n x: number,\n y: number,\n ...\n }) => void,\n ): void {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#addlistener\n */\n addListener(callback: ValueXYListenerCallback): string {\n const id = String(_uniqueId++);\n const jointCallback = ({value: number}: any) => {\n callback(this.__getValue());\n };\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback),\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#removelistener\n */\n removeListener(id: string): void {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#removealllisteners\n */\n removeAllListeners(): void {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#getlayout\n */\n getLayout(): {[key: string]: AnimatedValue, ...} {\n return {\n left: this.x,\n top: this.y,\n };\n }\n\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#gettranslatetransform\n */\n getTranslateTransform(): Array<{[key: string]: AnimatedValue, ...}> {\n return [{translateX: this.x}, {translateY: this.y}];\n }\n\n __attach(): void {\n this.x.__addChild(this);\n this.y.__addChild(this);\n super.__attach();\n }\n\n __detach(): void {\n this.x.__removeChild(this);\n this.y.__removeChild(this);\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.x.__makeNative(platformConfig);\n this.y.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport Animation from './Animation';\n\nexport type DecayAnimationConfig = {\n ...AnimationConfig,\n velocity:\n | number\n | {\n x: number,\n y: number,\n ...\n },\n deceleration?: number,\n};\n\nexport type DecayAnimationConfigSingle = {\n ...AnimationConfig,\n velocity: number,\n deceleration?: number,\n};\n\nexport default class DecayAnimation extends Animation {\n _startTime: number;\n _lastValue: number;\n _fromValue: number;\n _deceleration: number;\n _velocity: number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: DecayAnimationConfigSingle) {\n super();\n this._deceleration = config.deceleration ?? 0.998;\n this._velocity = config.velocity;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n this.__iterations = config.iterations ?? 1;\n }\n\n __getNativeAnimationConfig(): {|\n deceleration: number,\n iterations: number,\n platformConfig: ?PlatformConfig,\n type: $TEMPORARY$string<'decay'>,\n velocity: number,\n |} {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n onUpdate(): void {\n const now = Date.now();\n\n const value =\n this._fromValue +\n (this._velocity / (1 - this._deceleration)) *\n (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n\n this._onUpdate(value);\n\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({finished: true});\n return;\n }\n\n this._lastValue = value;\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedValue from '../nodes/AnimatedValue';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nexport type EndResult = {finished: boolean, ...};\nexport type EndCallback = (result: EndResult) => void;\n\nexport type AnimationConfig = {\n isInteraction?: boolean,\n useNativeDriver: boolean,\n platformConfig?: PlatformConfig,\n onComplete?: ?EndCallback,\n iterations?: number,\n};\n\nlet startNativeAnimationNextId = 1;\n\n// Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\nexport default class Animation {\n __active: boolean;\n __isInteraction: boolean;\n __nativeId: number;\n __onEnd: ?EndCallback;\n __iterations: number;\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {}\n stop(): void {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n __getNativeAnimationConfig(): any {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n }\n // Helper function for subclasses to make sure onEnd is only called once.\n __debouncedOnEnd(result: EndResult): void {\n const onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n __startNativeAnimation(animatedValue: AnimatedValue): void {\n const startNativeAnimationWaitId = `${startNativeAnimationNextId}:startAnimation`;\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(\n startNativeAnimationWaitId,\n );\n try {\n const config = this.__getNativeAnimationConfig();\n animatedValue.__makeNative(config.platformConfig);\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(\n this.__nativeId,\n animatedValue.__getNativeTag(),\n config,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__debouncedOnEnd.bind(this),\n );\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(\n startNativeAnimationWaitId,\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nimport * as SpringConfig from '../SpringConfig';\nimport Animation from './Animation';\nimport invariant from 'invariant';\n\nexport type SpringAnimationConfig = {\n ...AnimationConfig,\n toValue:\n | number\n | AnimatedValue\n | {\n x: number,\n y: number,\n ...\n }\n | AnimatedValueXY\n | {\n r: number,\n g: number,\n b: number,\n a: number,\n ...\n }\n | AnimatedColor\n | AnimatedInterpolation<number>,\n overshootClamping?: boolean,\n restDisplacementThreshold?: number,\n restSpeedThreshold?: number,\n velocity?:\n | number\n | {\n x: number,\n y: number,\n ...\n },\n bounciness?: number,\n speed?: number,\n tension?: number,\n friction?: number,\n stiffness?: number,\n damping?: number,\n mass?: number,\n delay?: number,\n};\n\nexport type SpringAnimationConfigSingle = {\n ...AnimationConfig,\n toValue: number,\n overshootClamping?: boolean,\n restDisplacementThreshold?: number,\n restSpeedThreshold?: number,\n velocity?: number,\n bounciness?: number,\n speed?: number,\n tension?: number,\n friction?: number,\n stiffness?: number,\n damping?: number,\n mass?: number,\n delay?: number,\n};\n\nexport default class SpringAnimation extends Animation {\n _overshootClamping: boolean;\n _restDisplacementThreshold: number;\n _restSpeedThreshold: number;\n _lastVelocity: number;\n _startPosition: number;\n _lastPosition: number;\n _fromValue: number;\n _toValue: number;\n _stiffness: number;\n _damping: number;\n _mass: number;\n _initialVelocity: number;\n _delay: number;\n _timeout: any;\n _startTime: number;\n _lastTime: number;\n _frameTime: number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: SpringAnimationConfigSingle) {\n super();\n\n this._overshootClamping = config.overshootClamping ?? false;\n this._restDisplacementThreshold = config.restDisplacementThreshold ?? 0.001;\n this._restSpeedThreshold = config.restSpeedThreshold ?? 0.001;\n this._initialVelocity = config.velocity ?? 0;\n this._lastVelocity = config.velocity ?? 0;\n this._toValue = config.toValue;\n this._delay = config.delay ?? 0;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n this.__iterations = config.iterations ?? 1;\n\n if (\n config.stiffness !== undefined ||\n config.damping !== undefined ||\n config.mass !== undefined\n ) {\n invariant(\n config.bounciness === undefined &&\n config.speed === undefined &&\n config.tension === undefined &&\n config.friction === undefined,\n 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one',\n );\n this._stiffness = config.stiffness ?? 100;\n this._damping = config.damping ?? 10;\n this._mass = config.mass ?? 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(\n config.tension === undefined &&\n config.friction === undefined &&\n config.stiffness === undefined &&\n config.damping === undefined &&\n config.mass === undefined,\n 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one',\n );\n const springConfig = SpringConfig.fromBouncinessAndSpeed(\n config.bounciness ?? 8,\n config.speed ?? 12,\n );\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n } else {\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n const springConfig = SpringConfig.fromOrigamiTensionAndFriction(\n config.tension ?? 40,\n config.friction ?? 7,\n );\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n }\n\n invariant(this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(this._damping > 0, 'Damping value must be greater than 0');\n invariant(this._mass > 0, 'Mass value must be greater than 0');\n }\n\n __getNativeAnimationConfig(): {|\n damping: number,\n initialVelocity: number,\n iterations: number,\n mass: number,\n platformConfig: ?PlatformConfig,\n overshootClamping: boolean,\n restDisplacementThreshold: number,\n restSpeedThreshold: number,\n stiffness: number,\n toValue: any,\n type: $TEMPORARY$string<'spring'>,\n |} {\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: this._initialVelocity ?? this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n\n if (previousAnimation instanceof SpringAnimation) {\n const internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity;\n // Set the initial velocity to the last velocity\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n\n const start = () => {\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this.onUpdate();\n }\n };\n\n // If this._delay is more than 0, we start after the timeout.\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n getInternalState(): Object {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime,\n };\n }\n\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n *\n * where\n * ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ζ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n onUpdate(): void {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n const MAX_STEPS = 64;\n let now = Date.now();\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n\n const deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n\n const c: number = this._damping;\n const m: number = this._mass;\n const k: number = this._stiffness;\n const v0: number = -this._initialVelocity;\n\n const zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n const omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n const x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n let position = 0.0;\n let velocity = 0.0;\n const t = this._frameTime;\n if (zeta < 1) {\n // Under damped\n const envelope = Math.exp(-zeta * omega0 * t);\n position =\n this._toValue -\n envelope *\n (((v0 + zeta * omega0 * x0) / omega1) * Math.sin(omega1 * t) +\n x0 * Math.cos(omega1 * t));\n // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n velocity =\n zeta *\n omega0 *\n envelope *\n ((Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0)) / omega1 +\n x0 * Math.cos(omega1 * t)) -\n envelope *\n (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) -\n omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n const envelope = Math.exp(-omega0 * t);\n position = this._toValue - envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity =\n envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n\n this._onUpdate(position);\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n }\n\n // Conditions for stopping the spring animation\n let isOvershooting = false;\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n const isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n let isDisplacement = true;\n if (this._stiffness !== 0) {\n isDisplacement =\n Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n\n if (isOvershooting || (isVelocity && isDisplacement)) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n this._onUpdate(this._toValue);\n }\n\n this.__debouncedOnEnd({finished: true});\n return;\n }\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\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 * @format\n */\n\n'use strict';\n\nimport type {NativeColorValue} from '../../StyleSheet/PlatformColorValueTypes';\nimport type {ProcessedColorValue} from '../../StyleSheet/processColor';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport normalizeColor from '../../StyleSheet/normalizeColor';\nimport {processColorObject} from '../../StyleSheet/PlatformColorValueTypes';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport type AnimatedColorConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\n\ntype ColorListenerCallback = (value: ColorValue) => mixed;\n\nexport type RgbaValue = {\n +r: number,\n +g: number,\n +b: number,\n +a: number,\n ...\n};\n\ntype RgbaAnimatedValue = {\n +r: AnimatedValue,\n +g: AnimatedValue,\n +b: AnimatedValue,\n +a: AnimatedValue,\n ...\n};\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\nconst defaultColor: RgbaValue = {r: 0, g: 0, b: 0, a: 1.0};\nlet _uniqueId = 1;\n\n/* eslint no-bitwise: 0 */\nfunction processColor(\n color?: ?(ColorValue | RgbaValue),\n): ?(RgbaValue | NativeColorValue) {\n if (color === undefined || color === null) {\n return null;\n }\n\n if (isRgbaValue(color)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n return (color: RgbaValue);\n }\n\n let normalizedColor: ?ProcessedColorValue = normalizeColor(\n // $FlowIgnore[incompatible-cast] - Type is verified above\n (color: ColorValue),\n );\n if (normalizedColor === undefined || normalizedColor === null) {\n return null;\n }\n\n if (typeof normalizedColor === 'object') {\n const processedColorObj: ?NativeColorValue =\n processColorObject(normalizedColor);\n if (processedColorObj != null) {\n return processedColorObj;\n }\n } else if (typeof normalizedColor === 'number') {\n const r: number = (normalizedColor & 0xff000000) >>> 24;\n const g: number = (normalizedColor & 0x00ff0000) >>> 16;\n const b: number = (normalizedColor & 0x0000ff00) >>> 8;\n const a: number = (normalizedColor & 0x000000ff) / 255;\n\n return {r, g, b, a};\n }\n\n return null;\n}\n\nfunction isRgbaValue(value: any): boolean {\n return (\n value &&\n typeof value.r === 'number' &&\n typeof value.g === 'number' &&\n typeof value.b === 'number' &&\n typeof value.a === 'number'\n );\n}\n\nfunction isRgbaAnimatedValue(value: any): boolean {\n return (\n value &&\n value.r instanceof AnimatedValue &&\n value.g instanceof AnimatedValue &&\n value.b instanceof AnimatedValue &&\n value.a instanceof AnimatedValue\n );\n}\n\nexport default class AnimatedColor extends AnimatedWithChildren {\n r: AnimatedValue;\n g: AnimatedValue;\n b: AnimatedValue;\n a: AnimatedValue;\n nativeColor: ?NativeColorValue;\n _listeners: {\n [key: string]: {\n r: string,\n g: string,\n b: string,\n a: string,\n ...\n },\n ...\n } = {};\n\n constructor(\n valueIn?: ?(RgbaValue | RgbaAnimatedValue | ColorValue),\n config?: ?AnimatedColorConfig,\n ) {\n super();\n let value: RgbaValue | RgbaAnimatedValue | ColorValue =\n valueIn ?? defaultColor;\n if (isRgbaAnimatedValue(value)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n const rgbaAnimatedValue: RgbaAnimatedValue = (value: RgbaAnimatedValue);\n this.r = rgbaAnimatedValue.r;\n this.g = rgbaAnimatedValue.g;\n this.b = rgbaAnimatedValue.b;\n this.a = rgbaAnimatedValue.a;\n } else {\n const processedColor: RgbaValue | NativeColorValue =\n // $FlowIgnore[incompatible-cast] - Type is verified above\n processColor((value: ColorValue | RgbaValue)) ?? defaultColor;\n let initColor: RgbaValue = defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n initColor = (processedColor: RgbaValue);\n } else {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n this.nativeColor = (processedColor: NativeColorValue);\n }\n\n this.r = new AnimatedValue(initColor.r);\n this.g = new AnimatedValue(initColor.g);\n this.b = new AnimatedValue(initColor.b);\n this.a = new AnimatedValue(initColor.a);\n }\n if (this.nativeColor || (config && config.useNativeDriver)) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n */\n setValue(value: RgbaValue | ColorValue): void {\n let shouldUpdateNodeConfig = false;\n if (this.__isNative) {\n const nativeTag = this.__getNativeTag();\n NativeAnimatedAPI.setWaitingForIdentifier(nativeTag.toString());\n }\n\n const processedColor: RgbaValue | NativeColorValue =\n processColor(value) ?? defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-type] - Type is verified above\n const rgbaValue: RgbaValue = processedColor;\n this.r.setValue(rgbaValue.r);\n this.g.setValue(rgbaValue.g);\n this.b.setValue(rgbaValue.b);\n this.a.setValue(rgbaValue.a);\n if (this.nativeColor != null) {\n this.nativeColor = null;\n shouldUpdateNodeConfig = true;\n }\n } else {\n // $FlowIgnore[incompatible-type] - Type is verified above\n const nativeColor: NativeColorValue = processedColor;\n if (this.nativeColor !== nativeColor) {\n this.nativeColor = nativeColor;\n shouldUpdateNodeConfig = true;\n }\n }\n\n if (this.__isNative) {\n const nativeTag = this.__getNativeTag();\n if (shouldUpdateNodeConfig) {\n NativeAnimatedAPI.updateAnimatedNodeConfig(\n nativeTag,\n this.__getNativeConfig(),\n );\n }\n NativeAnimatedAPI.unsetWaitingForIdentifier(nativeTag.toString());\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n */\n setOffset(offset: RgbaValue): void {\n this.r.setOffset(offset.r);\n this.g.setOffset(offset.g);\n this.b.setOffset(offset.b);\n this.a.setOffset(offset.a);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n */\n flattenOffset(): void {\n this.r.flattenOffset();\n this.g.flattenOffset();\n this.b.flattenOffset();\n this.a.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n */\n extractOffset(): void {\n this.r.extractOffset();\n this.g.extractOffset();\n this.b.extractOffset();\n this.a.extractOffset();\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n */\n addListener(callback: ColorListenerCallback): string {\n const id = String(_uniqueId++);\n const jointCallback = ({value: number}: any) => {\n callback(this.__getValue());\n };\n this._listeners[id] = {\n r: this.r.addListener(jointCallback),\n g: this.g.addListener(jointCallback),\n b: this.b.addListener(jointCallback),\n a: this.a.addListener(jointCallback),\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n */\n removeListener(id: string): void {\n this.r.removeListener(this._listeners[id].r);\n this.g.removeListener(this._listeners[id].g);\n this.b.removeListener(this._listeners[id].b);\n this.a.removeListener(this._listeners[id].a);\n delete this._listeners[id];\n }\n\n /**\n * Remove all registered listeners.\n */\n removeAllListeners(): void {\n this.r.removeAllListeners();\n this.g.removeAllListeners();\n this.b.removeAllListeners();\n this.a.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n */\n stopAnimation(callback?: ColorListenerCallback): void {\n this.r.stopAnimation();\n this.g.stopAnimation();\n this.b.stopAnimation();\n this.a.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any animation and resets the value to its original.\n */\n resetAnimation(callback?: ColorListenerCallback): void {\n this.r.resetAnimation();\n this.g.resetAnimation();\n this.b.resetAnimation();\n this.a.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n __getValue(): ColorValue {\n if (this.nativeColor != null) {\n return this.nativeColor;\n } else {\n return `rgba(${this.r.__getValue()}, ${this.g.__getValue()}, ${this.b.__getValue()}, ${this.a.__getValue()})`;\n }\n }\n\n __attach(): void {\n this.r.__addChild(this);\n this.g.__addChild(this);\n this.b.__addChild(this);\n this.a.__addChild(this);\n super.__attach();\n }\n\n __detach(): void {\n this.r.__removeChild(this);\n this.g.__removeChild(this);\n this.b.__removeChild(this);\n this.a.__removeChild(this);\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.r.__makeNative(platformConfig);\n this.g.__makeNative(platformConfig);\n this.b.__makeNative(platformConfig);\n this.a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getNativeConfig(): {...} {\n return {\n type: 'color',\n r: this.r.__getNativeTag(),\n g: this.g.__getNativeTag(),\n b: this.b.__getNativeTag(),\n a: this.a.__getNativeTag(),\n nativeColor: this.nativeColor,\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 * @format\n * @flow strict\n */\n\n'use strict';\n\ntype SpringConfigType = {\n stiffness: number,\n damping: number,\n ...\n};\n\nfunction stiffnessFromOrigamiValue(oValue: number) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue: number) {\n return (oValue - 8) * 3 + 25;\n}\n\nexport function fromOrigamiTensionAndFriction(\n tension: number,\n friction: number,\n): SpringConfigType {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction),\n };\n}\n\nexport function fromBouncinessAndSpeed(\n bounciness: number,\n speed: number,\n): SpringConfigType {\n function normalize(value: number, startValue: number, endValue: number) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n: number, start: number, end: number) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t: number, start: number, end: number) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t: number, start: number, end: number) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x: number) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x: number) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x: number) {\n return (\n 0.00000045 * Math.pow(x, 3) -\n 0.000332 * Math.pow(x, 2) +\n 0.1078 * x +\n 5.84\n );\n }\n\n function b3Nobounce(tension: number) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n let b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(speed / 1.7, 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01,\n );\n\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction),\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {RgbaValue} from '../nodes/AnimatedColor';\nimport type AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nimport Animation from './Animation';\n\nexport type TimingAnimationConfig = $ReadOnly<{\n ...AnimationConfig,\n toValue:\n | number\n | AnimatedValue\n | {\n x: number,\n y: number,\n ...\n }\n | AnimatedValueXY\n | RgbaValue\n | AnimatedColor\n | AnimatedInterpolation<number>,\n easing?: (value: number) => number,\n duration?: number,\n delay?: number,\n}>;\n\nexport type TimingAnimationConfigSingle = $ReadOnly<{\n ...AnimationConfig,\n toValue: number,\n easing?: (value: number) => number,\n duration?: number,\n delay?: number,\n}>;\n\nlet _easeInOut;\nfunction easeInOut() {\n if (!_easeInOut) {\n const Easing = require('../Easing').default;\n _easeInOut = Easing.inOut(Easing.ease);\n }\n return _easeInOut;\n}\n\nexport default class TimingAnimation extends Animation {\n _startTime: number;\n _fromValue: number;\n _toValue: number;\n _duration: number;\n _delay: number;\n _easing: (value: number) => number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _timeout: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: TimingAnimationConfigSingle) {\n super();\n this._toValue = config.toValue;\n this._easing = config.easing ?? easeInOut();\n this._duration = config.duration ?? 500;\n this._delay = config.delay ?? 0;\n this.__iterations = config.iterations ?? 1;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n }\n\n __getNativeAnimationConfig(): any {\n const frameDuration = 1000.0 / 60.0;\n const frames = [];\n const numFrames = Math.round(this._duration / frameDuration);\n for (let frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n const start = () => {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (this._duration === 0 && !this._useNativeDriver) {\n this._onUpdate(this._toValue);\n this.__debouncedOnEnd({finished: true});\n } else {\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.onUpdate.bind(this),\n );\n }\n }\n };\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n onUpdate(): void {\n const now = Date.now();\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(\n this._fromValue + this._easing(1) * (this._toValue - this._fromValue),\n );\n }\n this.__debouncedOnEnd({finished: true});\n return;\n }\n\n this._onUpdate(\n this._fromValue +\n this._easing((now - this._startTime) / this._duration) *\n (this._toValue - this._fromValue),\n );\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nlet ease;\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\nconst Easing = {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n step0(n: number): number {\n return n > 0 ? 1 : 0;\n },\n\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n step1(n: number): number {\n return n >= 1 ? 1 : 0;\n },\n\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n linear(t: number): number {\n return t;\n },\n\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n ease(t: number): number {\n if (!ease) {\n ease = Easing.bezier(0.42, 0, 1, 1);\n }\n return ease(t);\n },\n\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n quad(t: number): number {\n return t * t;\n },\n\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n cubic(t: number): number {\n return t * t * t;\n },\n\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n poly(n: number): (t: number) => number {\n return (t: number) => Math.pow(t, n);\n },\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n sin(t: number): number {\n return 1 - Math.cos((t * Math.PI) / 2);\n },\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n circle(t: number): number {\n return 1 - Math.sqrt(1 - t * t);\n },\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n exp(t: number): number {\n return Math.pow(2, 10 * (t - 1));\n },\n\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n elastic(bounciness: number = 1): (t: number) => number {\n const p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);\n },\n\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * https://easings.net/#easeInBack\n */\n back(s: number = 1.70158): (t: number) => number {\n return t => t * t * ((s + 1) * t - s);\n },\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n bounce(t: number): number {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n },\n\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n bezier(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n ): (t: number) => number {\n const _bezier = require('./bezier').default;\n return _bezier(x1, y1, x2, y2);\n },\n\n /**\n * Runs an easing function forwards.\n */\n in(easing: (t: number) => number): (t: number) => number {\n return easing;\n },\n\n /**\n * Runs an easing function backwards.\n */\n out(easing: (t: number) => number): (t: number) => number {\n return t => 1 - easing(1 - t);\n },\n\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n inOut(easing: (t: number) => number): (t: number) => number {\n return t => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n },\n};\n\nexport default Easing;\n","/**\n * Portions 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 strict\n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n */\n\n'use strict';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nconst NEWTON_ITERATIONS = 4;\nconst NEWTON_MIN_SLOPE = 0.001;\nconst SUBDIVISION_PRECISION = 0.0000001;\nconst SUBDIVISION_MAX_ITERATIONS = 10;\n\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nconst float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1: number, aA2: number) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1: number, aA2: number) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1: number) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT: number, aA1: number, aA2: number) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT: number, aA1: number, aA2: number) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(\n aX: number,\n _aA: number,\n _aB: number,\n mX1: number,\n mX2: number,\n) {\n let currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (\n Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS\n );\n return currentT;\n}\n\nfunction newtonRaphsonIterate(\n aX: number,\n _aGuessT: number,\n mX1: number,\n mX2: number,\n) {\n let aGuessT = _aGuessT;\n for (let i = 0; i < NEWTON_ITERATIONS; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nexport default function bezier(\n mX1: number,\n mY1: number,\n mX2: number,\n mY2: number,\n): (x: number) => number {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n // Precompute samples table\n const sampleValues = float32ArraySupported\n ? new Float32Array(kSplineTableSize)\n : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX: number) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n\n for (\n ;\n currentSample !== lastSample && sampleValues[currentSample] <= aX;\n ++currentSample\n ) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n const dist =\n (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(\n aX,\n intervalStart,\n intervalStart + kSampleStepSize,\n mX1,\n mX2,\n );\n }\n }\n\n return function BezierEasing(x: number): number {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\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 * @format\n */\n\n'use strict';\n\nimport View from '../Components/View/View';\nimport setAndForwardRef from '../Utilities/setAndForwardRef';\nimport {AnimatedEvent} from './AnimatedEvent';\nimport * as createAnimatedComponentInjection from './createAnimatedComponentInjection';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nlet animatedComponentNextId = 1;\n\nexport type AnimatedComponentType<\n -Props: {+[string]: mixed, ...},\n +Instance = mixed,\n> = React.AbstractComponent<\n $ObjMap<\n Props &\n $ReadOnly<{\n passthroughAnimatedPropExplicitValues?: React.ElementConfig<\n typeof View,\n >,\n }>,\n () => any,\n >,\n Instance,\n>;\n\nfunction createAnimatedComponent<Props: {+[string]: mixed, ...}, Instance>(\n Component: React.AbstractComponent<Props, Instance>,\n): AnimatedComponentType<Props, Instance> {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n '`createAnimatedComponent` does not support stateless functional components; ' +\n 'use a class component instead.',\n );\n\n class AnimatedComponent extends React.Component<Object> {\n _component: any; // TODO T53738161: flow type this, and the whole file\n _invokeAnimatedPropsCallbackOnMount: boolean = false;\n _prevComponent: any;\n _propsAnimated: AnimatedProps;\n _eventDetachers: Array<Function> = [];\n\n // Only to be used in this file, and only in Fabric.\n _animatedComponentId: string = `${animatedComponentNextId++}:animatedComponent`;\n\n _attachNativeEvents() {\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n const scrollableNode = this._component?.getScrollableNode\n ? this._component.getScrollableNode()\n : this._component;\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent && prop.__isNative) {\n prop.__attach(scrollableNode, key);\n this._eventDetachers.push(() => prop.__detach(scrollableNode, key));\n }\n }\n }\n\n _detachNativeEvents() {\n this._eventDetachers.forEach(remove => remove());\n this._eventDetachers = [];\n }\n\n _isFabric = (): boolean => {\n // When called during the first render, `_component` is always null.\n // Therefore, even if a component is rendered in Fabric, we can't detect\n // that until ref is set, which happens sometime after the first render.\n // In cases where this value switching between \"false\" and \"true\" on Fabric\n // causes issues, add an additional check for _component nullity.\n if (this._component == null) {\n return false;\n }\n return (\n // eslint-disable-next-line dot-notation\n this._component['_internalInstanceHandle']?.stateNode?.canonical !=\n null ||\n // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as this._component would actually be the underlying host component and the above check\n // would be sufficient.\n (this._component.getNativeScrollRef != null &&\n this._component.getNativeScrollRef() != null &&\n // eslint-disable-next-line dot-notation\n this._component.getNativeScrollRef()['_internalInstanceHandle']\n ?.stateNode?.canonical != null) ||\n (this._component.getScrollResponder != null &&\n this._component.getScrollResponder() != null &&\n this._component.getScrollResponder().getNativeScrollRef != null &&\n this._component.getScrollResponder().getNativeScrollRef() != null &&\n this._component.getScrollResponder().getNativeScrollRef()[\n // eslint-disable-next-line dot-notation\n '_internalInstanceHandle'\n ]?.stateNode?.canonical != null)\n );\n };\n\n _waitForUpdate = (): void => {\n if (this._isFabric()) {\n NativeAnimatedHelper.API.setWaitingForIdentifier(\n this._animatedComponentId,\n );\n }\n };\n\n _markUpdateComplete = (): void => {\n if (this._isFabric()) {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(\n this._animatedComponentId,\n );\n }\n };\n\n // The system is best designed when setNativeProps is implemented. It is\n // able to avoid re-rendering and directly set the attributes that changed.\n // However, setNativeProps can only be implemented on leaf native\n // components. If you want to animate a composite component, you need to\n // re-render it. In this case, we have a fallback that uses forceUpdate.\n // This fallback is also called in Fabric.\n _animatedPropsCallback = (): void => {\n if (this._component == null) {\n // AnimatedProps is created in will-mount because it's used in render.\n // But this callback may be invoked before mount in async mode,\n // In which case we should defer the setNativeProps() call.\n // React may throw away uncommitted work in async mode,\n // So a deferred call won't always be invoked.\n this._invokeAnimatedPropsCallbackOnMount = true;\n } else if (\n process.env.NODE_ENV === 'test' ||\n // For animating properties of non-leaf/non-native components\n typeof this._component.setNativeProps !== 'function' ||\n // In Fabric, force animations to go through forceUpdate and skip setNativeProps\n this._isFabric()\n ) {\n this.forceUpdate();\n } else if (!this._propsAnimated.__isNative) {\n this._component.setNativeProps(\n this._propsAnimated.__getAnimatedValue(),\n );\n } else {\n throw new Error(\n 'Attempting to run JS driven animation on animated ' +\n 'node that has been moved to \"native\" earlier by starting an ' +\n 'animation with `useNativeDriver: true`',\n );\n }\n };\n\n _attachProps(nextProps: any) {\n const oldPropsAnimated = this._propsAnimated;\n\n this._propsAnimated = new AnimatedProps(\n nextProps,\n this._animatedPropsCallback,\n );\n this._propsAnimated.__attach();\n\n // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n if (oldPropsAnimated) {\n oldPropsAnimated.__restoreDefaultValues();\n oldPropsAnimated.__detach();\n }\n }\n\n _setComponentRef: (ref: React.ElementRef<any>) => void = setAndForwardRef({\n getForwardedRef: () => this.props.forwardedRef,\n setLocalRef: ref => {\n this._prevComponent = this._component;\n this._component = ref;\n },\n });\n\n render(): React.Node {\n const animatedProps = this._propsAnimated.__getValue() || {};\n\n const {style = {}, ...props} = animatedProps;\n const {style: passthruStyle = {}, ...passthruProps} =\n this.props.passthroughAnimatedPropExplicitValues || {};\n const mergedStyle = {...style, ...passthruStyle};\n\n // Force `collapsable` to be false so that native view is not flattened.\n // Flattened views cannot be accurately referenced by a native driver.\n return (\n <Component\n {...props}\n {...passthruProps}\n collapsable={false}\n style={mergedStyle}\n ref={this._setComponentRef}\n />\n );\n }\n\n UNSAFE_componentWillMount() {\n this._waitForUpdate();\n this._attachProps(this.props);\n }\n\n componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._animatedPropsCallback();\n }\n\n this._propsAnimated.setNativeView(this._component);\n this._attachNativeEvents();\n this._markUpdateComplete();\n }\n\n UNSAFE_componentWillReceiveProps(newProps: any) {\n this._waitForUpdate();\n this._attachProps(newProps);\n }\n\n componentDidUpdate(prevProps: any) {\n if (this._component !== this._prevComponent) {\n this._propsAnimated.setNativeView(this._component);\n }\n if (this._component !== this._prevComponent || prevProps !== this.props) {\n this._detachNativeEvents();\n this._attachNativeEvents();\n }\n this._markUpdateComplete();\n }\n\n componentWillUnmount() {\n this._propsAnimated && this._propsAnimated.__detach();\n this._detachNativeEvents();\n this._markUpdateComplete();\n this._component = null;\n this._prevComponent = null;\n }\n }\n\n return React.forwardRef(function AnimatedComponentWrapper(props, ref) {\n return (\n <AnimatedComponent\n {...props}\n {...(ref == null ? null : {forwardedRef: ref})}\n />\n );\n });\n}\n\n// $FlowIgnore[incompatible-cast] - Will be compatible after refactors.\nexport default (createAnimatedComponentInjection.recordAndRetrieve() ??\n createAnimatedComponent: typeof createAnimatedComponent);\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 * @format\n * @flow\n */\n\n'use strict';\n\nimport type {ElementRef, Ref} from 'react';\n\ntype Args = $ReadOnly<{|\n getForwardedRef: () => ?Ref<any>,\n setLocalRef: (ref: ElementRef<any>) => mixed,\n|}>;\n\n/**\n * This is a helper function for when a component needs to be able to forward a ref\n * to a child component, but still needs to have access to that component as part of\n * its implementation.\n *\n * Its main use case is in wrappers for native components.\n *\n * Usage:\n *\n * class MyView extends React.Component {\n * _nativeRef = null;\n *\n * _setNativeRef = setAndForwardRef({\n * getForwardedRef: () => this.props.forwardedRef,\n * setLocalRef: ref => {\n * this._nativeRef = ref;\n * },\n * });\n *\n * render() {\n * return <View ref={this._setNativeRef} />;\n * }\n * }\n *\n * const MyViewWithRef = React.forwardRef((props, ref) => (\n * <MyView {...props} forwardedRef={ref} />\n * ));\n *\n * module.exports = MyViewWithRef;\n */\n\nfunction setAndForwardRef({\n getForwardedRef,\n setLocalRef,\n}: Args): (ref: ElementRef<any>) => void {\n return function forwardRef(ref: ElementRef<any>) {\n const forwardedRef = getForwardedRef();\n\n setLocalRef(ref);\n\n // Forward to user ref prop (if one has been specified)\n if (typeof forwardedRef === 'function') {\n // Handle function-based refs. String-based refs are handled as functions.\n forwardedRef(ref);\n } else if (typeof forwardedRef === 'object' && forwardedRef != null) {\n // Handle createRef-based refs\n forwardedRef.current = ref;\n }\n };\n}\n\nmodule.exports = setAndForwardRef;\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 strict-local\n * @format\n */\n\nimport * as React from 'react';\n\ntype createAnimatedComponent = <TProps: {...}, TInstance>(\n Component: React.AbstractComponent<TProps, TInstance>,\n) => React.AbstractComponent<TProps, TInstance>;\n\n// This can be undefined, null, or the experimental implementation. If this is\n// null, that means `createAnimatedComponent` has already been initialized and\n// it is too late to call `inject`.\nlet injected: ?createAnimatedComponent;\n\n/**\n * Call during bundle initialization to opt-in to new `createAnimatedComponent`.\n */\nexport function inject(newInjected: createAnimatedComponent): void {\n if (injected !== undefined) {\n if (__DEV__) {\n console.error(\n 'createAnimatedComponentInjection: ' +\n (injected == null\n ? 'Must be called before `createAnimatedComponent`.'\n : 'Cannot be called more than once.'),\n );\n }\n return;\n }\n injected = newInjected;\n}\n\n/**\n * Only called by `createAnimatedComponent.js`.\n */\nexport function recordAndRetrieve(): createAnimatedComponent | null {\n if (injected === undefined) {\n injected = null;\n }\n return injected;\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport {findNodeHandle} from '../../ReactNative/RendererProxy';\nimport {AnimatedEvent} from '../AnimatedEvent';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport invariant from 'invariant';\n\nexport default class AnimatedProps extends AnimatedNode {\n _props: Object;\n _animatedView: any;\n _callback: () => void;\n\n constructor(props: Object, callback: () => void) {\n super();\n if (props.style) {\n props = {\n ...props,\n style: new AnimatedStyle(props.style),\n };\n }\n this._props = props;\n this._callback = callback;\n }\n\n __getValue(): Object {\n const props: {[string]: any | ((...args: any) => void)} = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getValue();\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n }\n\n __getAnimatedValue(): Object {\n const props: {[string]: any} = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n return props;\n }\n\n __attach(): void {\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach(): void {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n\n update(): void {\n this._callback();\n }\n\n __makeNative(platformConfig: ?PlatformConfig): void {\n if (!this.__isNative) {\n this.__isNative = true;\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n\n // Since this does not call the super.__makeNative, we need to store the\n // supplied platformConfig here, before calling __connectAnimatedView\n // where it will be needed to traverse the graph of attached values.\n super.__setPlatformConfig(platformConfig);\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n }\n\n setNativeView(animatedView: any): void {\n if (this._animatedView === animatedView) {\n return;\n }\n this._animatedView = animatedView;\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n }\n\n __connectAnimatedView(): void {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n const nativeViewTag: ?number = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree',\n );\n NativeAnimatedHelper.API.connectAnimatedNodeToView(\n this.__getNativeTag(),\n nativeViewTag,\n );\n }\n\n __disconnectAnimatedView(): void {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n const nativeViewTag: ?number = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree',\n );\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(\n this.__getNativeTag(),\n nativeViewTag,\n );\n }\n\n __restoreDefaultValues(): void {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n }\n\n __getNativeConfig(): Object {\n const propsConfig: {[string]: number} = {};\n for (const propKey in this._props) {\n const value = this._props[propKey];\n if (value instanceof AnimatedNode) {\n value.__makeNative(this.__getPlatformConfig());\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n return {\n type: 'props',\n props: propsConfig,\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedStyle extends AnimatedWithChildren {\n _style: Object;\n\n constructor(style: any) {\n super();\n style = flattenStyle(style) || ({}: {[string]: any});\n if (style.transform) {\n style = {\n ...style,\n transform: new AnimatedTransform(style.transform),\n };\n }\n this._style = style;\n }\n\n // Recursively get values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetValues(style: any): {[string]: any | {...}} {\n const updatedStyle: {[string]: any | {...}} = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n return updatedStyle;\n }\n\n __getValue(): Object {\n return this._walkStyleAndGetValues(this._style);\n }\n\n // Recursively get animated values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetAnimatedValues(style: any): {[string]: any | {...}} {\n const updatedStyle: {[string]: any | {...}} = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n return updatedStyle;\n }\n\n __getAnimatedValue(): Object {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n\n __attach(): void {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach(): void {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n super.__makeNative(platformConfig);\n }\n\n __getNativeConfig(): Object {\n const styleConfig: {[string]: ?number} = {};\n for (const styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n const style = this._style[styleKey];\n style.__makeNative(this.__getPlatformConfig());\n styleConfig[styleKey] = style.__getNativeTag();\n }\n // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n }\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig,\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedTransform extends AnimatedWithChildren {\n _transforms: $ReadOnlyArray<Object>;\n\n constructor(transforms: $ReadOnlyArray<Object>) {\n super();\n this._transforms = transforms;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n });\n super.__makeNative(platformConfig);\n }\n\n __getValue(): $ReadOnlyArray<Object> {\n return this._get(animatedNode => animatedNode.__getValue());\n }\n\n __getAnimatedValue(): $ReadOnlyArray<Object> {\n return this._get(animatedNode => animatedNode.__getAnimatedValue());\n }\n\n __attach(): void {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n\n __detach(): void {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n super.__detach();\n }\n\n __getNativeConfig(): any {\n const transConfigs = [];\n\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag(),\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value),\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs,\n };\n }\n\n _get(getter: AnimatedNode => any): $ReadOnlyArray<Object> {\n return this._transforms.map(transform => {\n const result: {[string]: any} = {};\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = getter(value);\n } else if (Array.isArray(value)) {\n result[key] = value.map(element => {\n if (element instanceof AnimatedNode) {\n return getter(element);\n } else {\n return element;\n }\n });\n } else if (typeof value === 'object') {\n result[key] = {};\n for (const [nestedKey, nestedValue] of Object.entries(value)) {\n if (nestedValue instanceof AnimatedNode) {\n result[key][nestedKey] = getter(nestedValue);\n } else {\n result[key][nestedKey] = nestedValue;\n }\n }\n } else {\n result[key] = value;\n }\n }\n return result;\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedAddition extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() + this._b.__getValue();\n }\n\n interpolate<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n ): AnimatedInterpolation<OutputT> {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedDiffClamp extends AnimatedWithChildren {\n _a: AnimatedNode;\n _min: number;\n _max: number;\n _value: number;\n _lastValue: number;\n\n constructor(a: AnimatedNode, min: number, max: number) {\n super();\n\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n interpolate<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n ): AnimatedInterpolation<OutputT> {\n return new AnimatedInterpolation(this, config);\n }\n\n __getValue(): number {\n const value = this._a.__getValue();\n const diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n }\n\n __attach(): void {\n this._a.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max,\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedDivision extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n _warnedAboutDivideByZero: boolean = false;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n if (b === 0 || (b instanceof AnimatedNode && b.__getValue() === 0)) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n const a = this._a.__getValue();\n const b = this._b.__getValue();\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n }\n // Passing infinity/NaN to Fabric will cause a native crash\n return 0;\n }\n this._warnedAboutDivideByZero = false;\n return a / b;\n }\n\n interpolate<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n ): AnimatedInterpolation<OutputT> {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedModulo extends AnimatedWithChildren {\n _a: AnimatedNode;\n _modulus: number;\n\n constructor(a: AnimatedNode, modulus: number) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return (\n ((this._a.__getValue() % this._modulus) + this._modulus) % this._modulus\n );\n }\n\n interpolate<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n ): AnimatedInterpolation<OutputT> {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus,\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedMultiplication extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() * this._b.__getValue();\n }\n\n interpolate<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n ): AnimatedInterpolation<OutputT> {\n return new AnimatedInterpolation(this, config);\n }\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedSubtraction extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() - this._b.__getValue();\n }\n\n interpolate<OutputT: number | string>(\n config: InterpolationConfigType<OutputT>,\n ): AnimatedInterpolation<OutputT> {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\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 * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {EndCallback} from '../animations/Animation';\nimport type AnimatedValue from './AnimatedValue';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\n\nexport default class AnimatedTracking extends AnimatedNode {\n _value: AnimatedValue;\n _parent: AnimatedNode;\n _callback: ?EndCallback;\n _animationConfig: Object;\n _animationClass: any;\n _useNativeDriver: boolean;\n\n constructor(\n value: AnimatedValue,\n parent: AnimatedNode,\n animationClass: any,\n animationConfig: Object,\n callback?: ?EndCallback,\n ) {\n super();\n this._value = value;\n this._parent = parent;\n this._animationClass = animationClass;\n this._animationConfig = animationConfig;\n this._useNativeDriver =\n NativeAnimatedHelper.shouldUseNativeDriver(animationConfig);\n this._callback = callback;\n this.__attach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.__isNative = true;\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n this._value.__makeNative(platformConfig);\n }\n\n __getValue(): Object {\n return this._parent.__getValue();\n }\n\n __attach(): void {\n this._parent.__addChild(this);\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n let {platformConfig} = this._animationConfig;\n this.__makeNative(platformConfig);\n }\n }\n\n __detach(): void {\n this._parent.__removeChild(this);\n super.__detach();\n }\n\n update(): void {\n this._value.animate(\n new this._animationClass({\n ...this._animationConfig,\n toValue: (this._animationConfig.toValue: any).__getValue(),\n }),\n this._callback,\n );\n }\n\n __getNativeConfig(): any {\n const animation = new this._animationClass({\n ...this._animationConfig,\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined,\n });\n const animationConfig = animation.__getNativeAnimationConfig();\n return {\n type: 'tracking',\n animationId: NativeAnimatedHelper.generateNewAnimationId(),\n animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag(),\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 * @format\n */\n\n'use strict';\n\nimport type {Numeric as AnimatedNumeric} from './AnimatedImplementation';\nimport type {EndResult} from './animations/Animation';\nimport type {EndCallback} from './animations/Animation';\nimport type {DecayAnimationConfig} from './animations/DecayAnimation';\nimport type {SpringAnimationConfig} from './animations/SpringAnimation';\nimport type {TimingAnimationConfig} from './animations/TimingAnimation';\n\nimport {AnimatedEvent, attachNativeEvent} from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedColor from './nodes/AnimatedColor';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\n\n/**\n * Animations are a source of flakiness in snapshot testing. This mock replaces\n * animation functions from AnimatedImplementation with empty animations for\n * predictability in tests. When possible the animation will run immediately\n * to the final state.\n */\n\n// Prevent any callback invocation from recursively triggering another\n// callback, which may trigger another animation\nlet inAnimationCallback = false;\nfunction mockAnimationStart(\n start: (callback?: ?EndCallback) => void,\n): (callback?: ?EndCallback) => void {\n return callback => {\n const guardedCallback =\n callback == null\n ? callback\n : (...args: Array<EndResult>) => {\n if (inAnimationCallback) {\n console.warn(\n 'Ignoring recursive animation callback when running mock animations',\n );\n return;\n }\n inAnimationCallback = true;\n try {\n callback(...args);\n } finally {\n inAnimationCallback = false;\n }\n };\n start(guardedCallback);\n };\n}\n\nexport type CompositeAnimation = {\n start: (callback?: ?EndCallback) => void,\n stop: () => void,\n reset: () => void,\n _startNativeLoop: (iterations?: number) => void,\n _isUsingNativeDriver: () => boolean,\n ...\n};\n\nconst emptyAnimation = {\n start: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n },\n};\n\nconst mockCompositeAnimation = (\n animations: Array<CompositeAnimation>,\n): CompositeAnimation => ({\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n animations.forEach(animation => animation.start());\n callback?.({finished: true});\n }),\n});\n\nconst spring = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: SpringAnimationConfig,\n): CompositeAnimation {\n const anyValue: any = value;\n return {\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n anyValue.setValue(config.toValue);\n callback?.({finished: true});\n }),\n };\n};\n\nconst timing = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: TimingAnimationConfig,\n): CompositeAnimation {\n const anyValue: any = value;\n return {\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n anyValue.setValue(config.toValue);\n callback?.({finished: true});\n }),\n };\n};\n\nconst decay = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: DecayAnimationConfig,\n): CompositeAnimation {\n return emptyAnimation;\n};\n\nconst sequence = function (\n animations: Array<CompositeAnimation>,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\ntype ParallelConfig = {stopTogether?: boolean, ...};\nconst parallel = function (\n animations: Array<CompositeAnimation>,\n config?: ?ParallelConfig,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\nconst delay = function (time: number): CompositeAnimation {\n return emptyAnimation;\n};\n\nconst stagger = function (\n time: number,\n animations: Array<CompositeAnimation>,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\ntype LoopAnimationConfig = {\n iterations: number,\n resetBeforeIteration?: boolean,\n ...\n};\n\nconst loop = function (\n animation: CompositeAnimation,\n // $FlowFixMe[prop-missing]\n {iterations = -1}: LoopAnimationConfig = {},\n): CompositeAnimation {\n return emptyAnimation;\n};\n\nexport type {AnimatedNumeric as Numeric};\n\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Color: AnimatedColor,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay,\n timing,\n spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay,\n sequence,\n parallel,\n stagger,\n loop,\n event: AnimatedImplementation.event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\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 strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport FlatList from '../../Lists/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst FlatListWithEventThrottle = React.forwardRef((props, ref) => (\n <FlatList scrollEventThrottle={0.0001} {...props} ref={ref} />\n));\n\nexport default (createAnimatedComponent(\n FlatListWithEventThrottle,\n): AnimatedComponentType<\n React.ElementConfig<typeof FlatList>,\n React.ElementRef<typeof FlatList>,\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 * @format\n */\n\nimport typeof ScrollViewNativeComponent from '../Components/ScrollView/ScrollViewNativeComponent';\nimport type {ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {\n ViewabilityConfigCallbackPair,\n ViewToken,\n} from './ViewabilityHelper';\nimport type {RenderItemProps, RenderItemType} from './VirtualizedList';\n\nimport {type ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport VirtualizedList from './VirtualizedList';\nimport {keyExtractor as defaultKeyExtractor} from './VirtualizeUtils';\nimport memoizeOne from 'memoize-one';\n\nconst View = require('../Components/View/View');\nconst StyleSheet = require('../StyleSheet/StyleSheet');\nconst deepDiffer = require('../Utilities/differ/deepDiffer');\nconst Platform = require('../Utilities/Platform');\nconst invariant = require('invariant');\nconst React = require('react');\n\ntype RequiredProps<ItemT> = {|\n /**\n * For simplicity, data is just a plain array. If you want to use something else, like an\n * immutable list, use the underlying `VirtualizedList` directly.\n */\n data: ?$ReadOnlyArray<ItemT>,\n|};\ntype OptionalProps<ItemT> = {|\n /**\n * Takes an item from `data` and renders it into the list. Example usage:\n *\n * <FlatList\n * ItemSeparatorComponent={Platform.OS !== 'android' && ({highlighted}) => (\n * <View style={[style.separator, highlighted && {marginLeft: 0}]} />\n * )}\n * data={[{title: 'Title Text', key: 'item1'}]}\n * renderItem={({item, separators}) => (\n * <TouchableHighlight\n * onPress={() => this._onPress(item)}\n * onShowUnderlay={separators.highlight}\n * onHideUnderlay={separators.unhighlight}>\n * <View style={{backgroundColor: 'white'}}>\n * <Text>{item.title}</Text>\n * </View>\n * </TouchableHighlight>\n * )}\n * />\n *\n * Provides additional metadata like `index` if you need it, as well as a more generic\n * `separators.updateProps` function which let's you set whatever props you want to change the\n * rendering of either the leading separator or trailing separator in case the more common\n * `highlight` and `unhighlight` (which set the `highlighted: boolean` prop) are insufficient for\n * your use-case.\n */\n renderItem?: ?RenderItemType<ItemT>,\n\n /**\n * Optional custom style for multi-item rows generated when numColumns > 1.\n */\n columnWrapperStyle?: ViewStyleProp,\n /**\n * A marker property for telling the list to re-render (since it implements `PureComponent`). If\n * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the\n * `data` prop, stick it here and treat it immutably.\n */\n extraData?: any,\n /**\n * `getItemLayout` is an optional optimizations that let us skip measurement of dynamic content if\n * you know the height of items a priori. `getItemLayout` is the most efficient, and is easy to\n * use if you have fixed height items, for example:\n *\n * getItemLayout={(data, index) => (\n * {length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index}\n * )}\n *\n * Adding `getItemLayout` can be a great performance boost for lists of several hundred items.\n * Remember to include separator length (height or width) in your offset calculation if you\n * specify `ItemSeparatorComponent`.\n */\n getItemLayout?: (\n data: ?Array<ItemT>,\n index: number,\n ) => {\n length: number,\n offset: number,\n index: number,\n ...\n },\n /**\n * If true, renders items next to each other horizontally instead of stacked vertically.\n */\n horizontal?: ?boolean,\n /**\n * How many items to render in the initial batch. This should be enough to fill the screen but not\n * much more. Note these items will never be unmounted as part of the windowed rendering in order\n * to improve perceived performance of scroll-to-top actions.\n */\n initialNumToRender?: ?number,\n /**\n * Instead of starting at the top with the first item, start at `initialScrollIndex`. This\n * disables the \"scroll to top\" optimization that keeps the first `initialNumToRender` items\n * always rendered and immediately renders the items starting at this initial index. Requires\n * `getItemLayout` to be implemented.\n */\n initialScrollIndex?: ?number,\n /**\n * Reverses the direction of scroll. Uses scale transforms of -1.\n */\n inverted?: ?boolean,\n /**\n * Used to extract a unique key for a given item at the specified index. Key is used for caching\n * and as the react key to track item re-ordering. The default extractor checks `item.key`, then\n * falls back to using the index, like React does.\n */\n keyExtractor?: ?(item: ItemT, index: number) => string,\n /**\n * Multiple columns can only be rendered with `horizontal={false}` and will zig-zag like a\n * `flexWrap` layout. Items should all be the same height - masonry layouts are not supported.\n *\n * The default value is 1.\n */\n numColumns?: number,\n /**\n * Note: may have bugs (missing content) in some circumstances - use at your own risk.\n *\n * This may improve scroll performance for large lists.\n *\n * The default value is true for Android.\n */\n removeClippedSubviews?: boolean,\n /**\n * See `ScrollView` for flow type and further documentation.\n */\n fadingEdgeLength?: ?number,\n /**\n * Enable an optimization to memoize the item renderer to prevent unnecessary rerenders.\n */\n strictMode?: boolean,\n|};\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews: ?boolean) {\n return removeClippedSubviews ?? Platform.OS === 'android';\n}\n\n// numColumnsOrDefault(this.props.numColumns)\nfunction numColumnsOrDefault(numColumns: ?number) {\n return numColumns ?? 1;\n}\n\ntype FlatListProps<ItemT> = {|\n ...RequiredProps<ItemT>,\n ...OptionalProps<ItemT>,\n|};\n\ntype VirtualizedListProps = React.ElementConfig<typeof VirtualizedList>;\n\nexport type Props<ItemT> = {\n ...$Diff<\n VirtualizedListProps,\n {\n getItem: $PropertyType<VirtualizedListProps, 'getItem'>,\n getItemCount: $PropertyType<VirtualizedListProps, 'getItemCount'>,\n getItemLayout: $PropertyType<VirtualizedListProps, 'getItemLayout'>,\n renderItem: $PropertyType<VirtualizedListProps, 'renderItem'>,\n keyExtractor: $PropertyType<VirtualizedListProps, 'keyExtractor'>,\n ...\n },\n >,\n ...FlatListProps<ItemT>,\n ...\n};\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [`<SectionList>`](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * <FlatList\n * data={[{key: 'a'}, {key: 'b'}]}\n * renderItem={({item}) => <Text>{item.key}</Text>}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * <TouchableOpacity onPress={this._onPress}>\n * <View>\n * <Text style={{ color: textColor }}>\n * {this.props.title}\n * </Text>\n * </View>\n * </TouchableOpacity>\n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map<string, boolean>)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * <MyListItem\n * id={item.id}\n * onPressItem={this._onPressItem}\n * selected={!!this.state.selected.get(item.id)}\n * title={item.title}\n * />\n * );\n *\n * render() {\n * return (\n * <FlatList\n * data={this.props.data}\n * extraData={this.state}\n * keyExtractor={this._keyExtractor}\n * renderItem={this._renderItem}\n * />\n * );\n * }\n * }\n *\n * This is a convenience wrapper around [`<VirtualizedList>`](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {\n props: Props<ItemT>;\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params?: ?{animated?: ?boolean, ...}) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToIndex(params: {\n animated?: ?boolean,\n index: number,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToItem(params: {\n animated?: ?boolean,\n item: ItemT,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder(): ?ScrollResponderType {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n\n /**\n * Provides a reference to the underlying host component\n */\n getNativeScrollRef():\n | ?React.ElementRef<typeof View>\n | ?React.ElementRef<ScrollViewNativeComponent> {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n\n getScrollableNode(): any {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props: {[string]: mixed, ...}) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n }\n\n constructor(props: Props<ItemT>) {\n super(props);\n this._checkProps(this.props);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs =\n this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(\n pair.onViewableItemsChanged,\n ),\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(\n this.props.onViewableItemsChanged,\n ),\n });\n }\n }\n\n // $FlowFixMe[missing-local-annot]\n componentDidUpdate(prevProps: Props<ItemT>) {\n invariant(\n prevProps.numColumns === this.props.numColumns,\n 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' +\n 'changing the number of columns to force a fresh render of the component.',\n );\n invariant(\n prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged,\n 'Changing onViewableItemsChanged on the fly is not supported',\n );\n invariant(\n !deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig),\n 'Changing viewabilityConfig on the fly is not supported',\n );\n invariant(\n prevProps.viewabilityConfigCallbackPairs ===\n this.props.viewabilityConfigCallbackPairs,\n 'Changing viewabilityConfigCallbackPairs on the fly is not supported',\n );\n\n this._checkProps(this.props);\n }\n\n _listRef: ?React.ElementRef<typeof VirtualizedList>;\n _virtualizedListPairs: Array<ViewabilityConfigCallbackPair> = [];\n\n _captureRef = (ref: ?React.ElementRef<typeof VirtualizedList>) => {\n this._listRef = ref;\n };\n\n // $FlowFixMe[missing-local-annot]\n _checkProps(props: Props<ItemT>) {\n const {\n // $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant\n getItem,\n // $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant\n getItemCount,\n horizontal,\n columnWrapperStyle,\n onViewableItemsChanged,\n viewabilityConfigCallbackPairs,\n } = props;\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(\n !getItem && !getItemCount,\n 'FlatList does not support custom data formats.',\n );\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(\n !columnWrapperStyle,\n 'columnWrapperStyle not supported for single column lists',\n );\n }\n invariant(\n !(onViewableItemsChanged && viewabilityConfigCallbackPairs),\n 'FlatList does not support setting both onViewableItemsChanged and ' +\n 'viewabilityConfigCallbackPairs.',\n );\n }\n\n // $FlowFixMe[missing-local-annot]\n _getItem = (data: Array<ItemT>, index: number) => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n if (numColumns > 1) {\n const ret = [];\n for (let kk = 0; kk < numColumns; kk++) {\n const itemIndex = index * numColumns + kk;\n if (itemIndex < data.length) {\n const item = data[itemIndex];\n ret.push(item);\n }\n }\n return ret;\n } else {\n return data[index];\n }\n };\n\n _getItemCount = (data: ?Array<ItemT>): number => {\n if (Array.isArray(data)) {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n\n _keyExtractor = (items: ItemT | Array<ItemT>, index: number): string => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;\n\n if (numColumns > 1) {\n invariant(\n Array.isArray(items),\n 'FlatList: Encountered internal consistency error, expected each item to consist of an ' +\n 'array with 1-%s columns; instead, received a single item.',\n numColumns,\n );\n return items\n .map((item, kk) =>\n keyExtractor(((item: $FlowFixMe): ItemT), index * numColumns + kk),\n )\n .join(':');\n }\n\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n };\n\n _pushMultiColumnViewable(arr: Array<ViewToken>, v: ViewToken): void {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n const index = v.index * numColumns + ii;\n arr.push({...v, item, key: keyExtractor(item, index), index});\n });\n }\n\n _createOnViewableItemsChanged(\n onViewableItemsChanged: ?(info: {\n viewableItems: Array<ViewToken>,\n changed: Array<ViewToken>,\n ...\n }) => void,\n // $FlowFixMe[missing-local-annot]\n ) {\n return (info: {\n viewableItems: Array<ViewToken>,\n changed: Array<ViewToken>,\n ...\n }) => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n const changed: Array<ViewToken> = [];\n const viewableItems: Array<ViewToken> = [];\n info.viewableItems.forEach(v =>\n this._pushMultiColumnViewable(viewableItems, v),\n );\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({viewableItems, changed});\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n _renderer = (\n ListItemComponent: ?(React.ComponentType<any> | React.Element<any>),\n renderItem: ?RenderItemType<ItemT>,\n columnWrapperStyle: ?ViewStyleProp,\n numColumns: ?number,\n extraData: ?any,\n // $FlowFixMe[missing-local-annot]\n ) => {\n const cols = numColumnsOrDefault(numColumns);\n\n const render = (props: RenderItemProps<ItemT>): React.Node => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return <ListItemComponent {...props} />;\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n\n const renderProp = (info: RenderItemProps<ItemT>) => {\n if (cols > 1) {\n const {item, index} = info;\n invariant(\n Array.isArray(item),\n 'Expected array of items with numColumns > 1',\n );\n return (\n <View style={StyleSheet.compose(styles.row, columnWrapperStyle)}>\n {item.map((it, kk) => {\n const element = render({\n // $FlowFixMe[incompatible-call]\n item: it,\n index: index * cols + kk,\n separators: info.separators,\n });\n return element != null ? (\n <React.Fragment key={kk}>{element}</React.Fragment>\n ) : null;\n })}\n </View>\n );\n } else {\n return render(info);\n }\n };\n\n return ListItemComponent\n ? {ListItemComponent: renderProp}\n : {renderItem: renderProp};\n };\n\n // $FlowFixMe[missing-local-annot]\n _memoizedRenderer = memoizeOne(this._renderer);\n\n render(): React.Node {\n const {\n numColumns,\n columnWrapperStyle,\n removeClippedSubviews: _removeClippedSubviews,\n strictMode = false,\n ...restProps\n } = this.props;\n\n const renderer = strictMode ? this._memoizedRenderer : this._renderer;\n\n return (\n // $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.\n <VirtualizedList\n {...restProps}\n getItem={this._getItem}\n getItemCount={this._getItemCount}\n keyExtractor={this._keyExtractor}\n ref={this._captureRef}\n viewabilityConfigCallbackPairs={this._virtualizedListPairs}\n removeClippedSubviews={removeClippedSubviewsOrDefault(\n _removeClippedSubviews,\n )}\n {...renderer(\n this.props.ListItemComponent,\n this.props.renderItem,\n columnWrapperStyle,\n numColumns,\n this.props.extraData,\n )}\n />\n );\n }\n}\n\nconst styles = StyleSheet.create({\n row: {flexDirection: 'row'},\n});\n\nmodule.exports = FlatList;\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 * @format\n */\n\nimport type {ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport type {ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {LayoutEvent, ScrollEvent} from '../Types/CoreEventTypes';\nimport type {ViewToken} from './ViewabilityHelper';\nimport type {\n FrameMetricProps,\n Item,\n Props,\n RenderItemProps,\n RenderItemType,\n Separators,\n} from './VirtualizedListProps';\n\nimport RefreshControl from '../Components/RefreshControl/RefreshControl';\nimport ScrollView from '../Components/ScrollView/ScrollView';\nimport View from '../Components/View/View';\nimport Batchinator from '../Interaction/Batchinator';\nimport {findNodeHandle} from '../ReactNative/RendererProxy';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport clamp from '../Utilities/clamp';\nimport infoLog from '../Utilities/infoLog';\nimport {CellRenderMask} from './CellRenderMask';\nimport ChildListCollection from './ChildListCollection';\nimport FillRateHelper from './FillRateHelper';\nimport StateSafePureComponent from './StateSafePureComponent';\nimport ViewabilityHelper from './ViewabilityHelper';\nimport CellRenderer from './VirtualizedListCellRenderer';\nimport {\n VirtualizedListCellContextProvider,\n VirtualizedListContext,\n VirtualizedListContextProvider,\n} from './VirtualizedListContext.js';\nimport {\n computeWindowedRenderLimits,\n keyExtractor as defaultKeyExtractor,\n} from './VirtualizeUtils';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type {RenderItemProps, RenderItemType, Separators};\n\nconst ON_END_REACHED_EPSILON = 0.001;\n\nlet _usedIndexForKey = false;\nlet _keylessItemComponentName: string = '';\n\ntype ViewabilityHelperCallbackTuple = {\n viewabilityHelper: ViewabilityHelper,\n onViewableItemsChanged: (info: {\n viewableItems: Array<ViewToken>,\n changed: Array<ViewToken>,\n ...\n }) => void,\n ...\n};\n\ntype State = {\n renderMask: CellRenderMask,\n cellsAroundViewport: {first: number, last: number},\n};\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal: ?boolean) {\n return horizontal ?? false;\n}\n\n// initialNumToRenderOrDefault(this.props.initialNumToRenderOrDefault)\nfunction initialNumToRenderOrDefault(initialNumToRender: ?number) {\n return initialNumToRender ?? 10;\n}\n\n// maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch: ?number) {\n return maxToRenderPerBatch ?? 10;\n}\n\n// onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold: ?number) {\n return onEndReachedThreshold ?? 2;\n}\n\n// scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\nfunction scrollEventThrottleOrDefault(scrollEventThrottle: ?number) {\n return scrollEventThrottle ?? 50;\n}\n\n// windowSizeOrDefault(this.props.windowSize)\nfunction windowSizeOrDefault(windowSize: ?number) {\n return windowSize ?? 21;\n}\n\nfunction findLastWhere<T>(\n arr: $ReadOnlyArray<T>,\n predicate: (element: T) => boolean,\n): T | null {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) {\n return arr[i];\n }\n }\n\n return null;\n}\n\n/**\n * Base implementation for the more convenient [`<FlatList>`](https://reactnative.dev/docs/flatlist)\n * and [`<SectionList>`](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\nexport default class VirtualizedList extends StateSafePureComponent<\n Props,\n State,\n> {\n static contextType: typeof VirtualizedListContext = VirtualizedListContext;\n\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params?: ?{animated?: ?boolean, ...}) {\n const animated = params ? params.animated : true;\n const veryLast = this.props.getItemCount(this.props.data) - 1;\n const frame = this.__getFrameMetricsApprox(veryLast, this.props);\n const offset = Math.max(\n 0,\n frame.offset +\n frame.length +\n this._footerLength -\n this._scrollMetrics.visibleLength,\n );\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontalOrDefault(this.props.horizontal)\n ? {x: offset, animated}\n : {y: offset, animated},\n );\n }\n\n // scrollToIndex may be janky without getItemLayout prop\n scrollToIndex(params: {\n animated?: ?boolean,\n index: number,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }): $FlowFixMe {\n const {\n data,\n horizontal,\n getItemCount,\n getItemLayout,\n onScrollToIndexFailed,\n } = this.props;\n const {animated, index, viewOffset, viewPosition} = params;\n invariant(\n index >= 0,\n `scrollToIndex out of range: requested index ${index} but minimum is 0`,\n );\n invariant(\n getItemCount(data) >= 1,\n `scrollToIndex out of range: item length ${getItemCount(\n data,\n )} but minimum is 1`,\n );\n invariant(\n index < getItemCount(data),\n `scrollToIndex out of range: requested index ${index} is out of 0 to ${\n getItemCount(data) - 1\n }`,\n );\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(\n !!onScrollToIndexFailed,\n 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' +\n 'otherwise there is no way to know the location of offscreen indices or handle failures.',\n );\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index,\n });\n return;\n }\n const frame = this.__getFrameMetricsApprox(Math.floor(index), this.props);\n const offset =\n Math.max(\n 0,\n this._getOffsetApprox(index, this.props) -\n (viewPosition || 0) *\n (this._scrollMetrics.visibleLength - frame.length),\n ) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontal ? {x: offset, animated} : {y: offset, animated},\n );\n }\n\n // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n scrollToItem(params: {\n animated?: ?boolean,\n item: Item,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n const {item} = params;\n const {data, getItem, getItemCount} = this.props;\n const itemCount = getItemCount(data);\n for (let index = 0; index < itemCount; index++) {\n if (getItem(data, index) === item) {\n this.scrollToIndex({...params, index});\n break;\n }\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {\n const {animated, offset} = params;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontalOrDefault(this.props.horizontal)\n ? {x: offset, animated}\n : {y: offset, animated},\n );\n }\n\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.recordInteraction();\n });\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n }\n\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n getScrollResponder(): ?ScrollResponderType {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n\n getScrollableNode(): ?number {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n }\n\n getScrollRef():\n | ?React.ElementRef<typeof ScrollView>\n | ?React.ElementRef<typeof View> {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n\n setNativeProps(props: Object) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n }\n\n _getCellKey(): string {\n return this.context?.cellKey || 'rootList';\n }\n\n // $FlowFixMe[missing-local-annot]\n _getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n\n hasMore(): boolean {\n return this._hasMore;\n }\n\n // $FlowFixMe[missing-local-annot]\n _getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n\n _registerAsNestedChild = (childList: {\n cellKey: string,\n ref: React.ElementRef<typeof VirtualizedList>,\n }): void => {\n this._nestedChildLists.add(childList.ref, childList.cellKey);\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _unregisterAsNestedChild = (childList: {\n ref: React.ElementRef<typeof VirtualizedList>,\n }): void => {\n this._nestedChildLists.remove(childList.ref);\n };\n\n state: State;\n\n constructor(props: Props) {\n super(props);\n invariant(\n // $FlowFixMe[prop-missing]\n !props.onScroll || !props.onScroll.__isNative,\n 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' +\n 'to support native onScroll events with useNativeDriver',\n );\n invariant(\n windowSizeOrDefault(props.windowSize) > 0,\n 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.',\n );\n\n invariant(\n props.getItemCount,\n 'VirtualizedList: The \"getItemCount\" prop must be provided',\n );\n\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(\n this._updateCellsToRender,\n this.props.updateCellsBatchingPeriod ?? 50,\n );\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(\n pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged,\n }),\n );\n } else {\n const {onViewableItemsChanged, viewabilityConfig} = this.props;\n if (onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged,\n });\n }\n }\n\n invariant(\n !this.context,\n 'Unexpectedly saw VirtualizedListContext available in ctor',\n );\n\n const initialRenderRegion = VirtualizedList._initialRenderRegion(props);\n\n this.state = {\n cellsAroundViewport: initialRenderRegion,\n renderMask: VirtualizedList._createRenderMask(props, initialRenderRegion),\n };\n }\n\n static _createRenderMask(\n props: Props,\n cellsAroundViewport: {first: number, last: number},\n additionalRegions?: ?$ReadOnlyArray<{first: number, last: number}>,\n ): CellRenderMask {\n const itemCount = props.getItemCount(props.data);\n\n invariant(\n cellsAroundViewport.first >= 0 &&\n cellsAroundViewport.last >= cellsAroundViewport.first - 1 &&\n cellsAroundViewport.last < itemCount,\n `Invalid cells around viewport \"[${cellsAroundViewport.first}, ${cellsAroundViewport.last}]\" was passed to VirtualizedList._createRenderMask`,\n );\n\n const renderMask = new CellRenderMask(itemCount);\n\n if (itemCount > 0) {\n const allRegions = [cellsAroundViewport, ...(additionalRegions ?? [])];\n for (const region of allRegions) {\n renderMask.addCells(region);\n }\n\n // The initially rendered cells are retained as part of the\n // \"scroll-to-top\" optimization\n if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n const initialRegion = VirtualizedList._initialRenderRegion(props);\n renderMask.addCells(initialRegion);\n }\n\n // The layout coordinates of sticker headers may be off-screen while the\n // actual header is on-screen. Keep the most recent before the viewport\n // rendered, even if its layout coordinates are not in viewport.\n const stickyIndicesSet = new Set(props.stickyHeaderIndices);\n VirtualizedList._ensureClosestStickyHeader(\n props,\n stickyIndicesSet,\n renderMask,\n cellsAroundViewport.first,\n );\n }\n\n return renderMask;\n }\n\n static _initialRenderRegion(props: Props): {first: number, last: number} {\n const itemCount = props.getItemCount(props.data);\n const scrollIndex = Math.floor(Math.max(0, props.initialScrollIndex ?? 0));\n\n return {\n first: scrollIndex,\n last:\n Math.min(\n itemCount,\n scrollIndex + initialNumToRenderOrDefault(props.initialNumToRender),\n ) - 1,\n };\n }\n\n static _ensureClosestStickyHeader(\n props: Props,\n stickyIndicesSet: Set<number>,\n renderMask: CellRenderMask,\n cellIdx: number,\n ) {\n const stickyOffset = props.ListHeaderComponent ? 1 : 0;\n\n for (let itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n renderMask.addCells({first: itemIdx, last: itemIdx});\n break;\n }\n }\n }\n\n _adjustCellsAroundViewport(\n props: Props,\n cellsAroundViewport: {first: number, last: number},\n ): {first: number, last: number} {\n const {data, getItemCount} = props;\n const onEndReachedThreshold = onEndReachedThresholdOrDefault(\n props.onEndReachedThreshold,\n );\n this._updateViewableItems(props, cellsAroundViewport);\n\n const {contentLength, offset, visibleLength} = this._scrollMetrics;\n const distanceFromEnd = contentLength - visibleLength - offset;\n\n // Wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength <= 0 || contentLength <= 0) {\n return cellsAroundViewport.last >= getItemCount(data)\n ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)\n : cellsAroundViewport;\n }\n\n let newCellsAroundViewport: {first: number, last: number};\n if (props.disableVirtualization) {\n const renderAhead =\n distanceFromEnd < onEndReachedThreshold * visibleLength\n ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch)\n : 0;\n\n newCellsAroundViewport = {\n first: 0,\n last: Math.min(\n cellsAroundViewport.last + renderAhead,\n getItemCount(data) - 1,\n ),\n };\n } else {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n\n // Thus, we want to recalculate the windowed render limits if any of the following hold:\n // - initialScrollIndex is undefined or is 0\n // - initialScrollIndex > 0 AND scrolling is complete\n // - initialScrollIndex > 0 AND the end of the list is visible (this handles the case\n // where the list is shorter than the visible area)\n if (\n props.initialScrollIndex &&\n !this._scrollMetrics.offset &&\n Math.abs(distanceFromEnd) >= Number.EPSILON\n ) {\n return cellsAroundViewport.last >= getItemCount(data)\n ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)\n : cellsAroundViewport;\n }\n\n newCellsAroundViewport = computeWindowedRenderLimits(\n props,\n maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch),\n windowSizeOrDefault(props.windowSize),\n cellsAroundViewport,\n this.__getFrameMetricsApprox,\n this._scrollMetrics,\n );\n invariant(\n newCellsAroundViewport.last < getItemCount(data),\n 'computeWindowedRenderLimits() should return range in-bounds',\n );\n }\n\n if (this._nestedChildLists.size() > 0) {\n // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n // Will this prevent rendering if the nested list doesn't realize the end?\n const childIdx = this._findFirstChildWithMore(\n newCellsAroundViewport.first,\n newCellsAroundViewport.last,\n );\n\n newCellsAroundViewport.last = childIdx ?? newCellsAroundViewport.last;\n }\n\n return newCellsAroundViewport;\n }\n\n _findFirstChildWithMore(first: number, last: number): number | null {\n for (let ii = first; ii <= last; ii++) {\n const cellKeyForIndex = this._indicesToKeys.get(ii);\n if (\n cellKeyForIndex != null &&\n this._nestedChildLists.anyInCell(cellKeyForIndex, childList =>\n childList.hasMore(),\n )\n ) {\n return ii;\n }\n }\n\n return null;\n }\n\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n ref: this,\n cellKey: this.context.cellKey,\n });\n }\n }\n\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({ref: this});\n }\n this._updateCellsToRenderBatcher.dispose({abort: true});\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n this._fillRateHelper.deactivateAndFlush();\n }\n\n static getDerivedStateFromProps(newProps: Props, prevState: State): State {\n // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n const itemCount = newProps.getItemCount(newProps.data);\n if (itemCount === prevState.renderMask.numCells()) {\n return prevState;\n }\n\n const constrainedCells = VirtualizedList._constrainToItemCount(\n prevState.cellsAroundViewport,\n newProps,\n );\n\n return {\n cellsAroundViewport: constrainedCells,\n renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells),\n };\n }\n\n _pushCells(\n cells: Array<Object>,\n stickyHeaderIndices: Array<number>,\n stickyIndicesFromProps: Set<number>,\n first: number,\n last: number,\n inversionStyle: ViewStyleProp,\n ) {\n const {\n CellRendererComponent,\n ItemSeparatorComponent,\n ListHeaderComponent,\n ListItemComponent,\n data,\n debug,\n getItem,\n getItemCount,\n getItemLayout,\n horizontal,\n renderItem,\n } = this.props;\n const stickyOffset = ListHeaderComponent ? 1 : 0;\n const end = getItemCount(data) - 1;\n let prevCellKey;\n last = Math.min(end, last);\n for (let ii = first; ii <= last; ii++) {\n const item = getItem(data, ii);\n const key = this._keyExtractor(item, ii, this.props);\n this._indicesToKeys.set(ii, key);\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n cells.push(\n <CellRenderer\n CellRendererComponent={CellRendererComponent}\n ItemSeparatorComponent={ii < end ? ItemSeparatorComponent : undefined}\n ListItemComponent={ListItemComponent}\n cellKey={key}\n debug={debug}\n fillRateHelper={this._fillRateHelper}\n getItemLayout={getItemLayout}\n horizontal={horizontal}\n index={ii}\n inversionStyle={inversionStyle}\n item={item}\n key={key}\n prevCellKey={prevCellKey}\n onCellLayout={this._onCellLayout}\n onUpdateSeparators={this._onUpdateSeparators}\n onCellFocusCapture={e => this._onCellFocusCapture(key)}\n onUnmount={this._onCellUnmount}\n ref={ref => {\n this._cellRefs[key] = ref;\n }}\n renderItem={renderItem}\n />,\n );\n prevCellKey = key;\n }\n }\n\n static _constrainToItemCount(\n cells: {first: number, last: number},\n props: Props,\n ): {first: number, last: number} {\n const itemCount = props.getItemCount(props.data);\n const last = Math.min(itemCount - 1, cells.last);\n\n const maxToRenderPerBatch = maxToRenderPerBatchOrDefault(\n props.maxToRenderPerBatch,\n );\n\n return {\n first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n last,\n };\n }\n\n _onUpdateSeparators = (keys: Array<?string>, newProps: Object) => {\n keys.forEach(key => {\n const ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _isNestedWithSameOrientation(): boolean {\n const nestedContext = this.context;\n return !!(\n nestedContext &&\n !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal)\n );\n }\n\n _getSpacerKey = (isVertical: boolean): string =>\n isVertical ? 'height' : 'width';\n\n _keyExtractor(\n item: Item,\n index: number,\n props: {\n keyExtractor?: ?(item: Item, index: number) => string,\n ...\n },\n // $FlowFixMe[missing-local-annot]\n ) {\n if (props.keyExtractor != null) {\n return props.keyExtractor(item, index);\n }\n\n const key = defaultKeyExtractor(item, index);\n if (key === String(index)) {\n _usedIndexForKey = true;\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n return key;\n }\n\n render(): React.Node {\n if (__DEV__) {\n const flatStyles = flattenStyle(this.props.contentContainerStyle);\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn(\n '`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' +\n 'Consider using `numColumns` with `FlatList` instead.',\n );\n }\n }\n const {ListEmptyComponent, ListFooterComponent, ListHeaderComponent} =\n this.props;\n const {data, horizontal} = this.props;\n const inversionStyle = this.props.inverted\n ? horizontalOrDefault(this.props.horizontal)\n ? styles.horizontallyInverted\n : styles.verticallyInverted\n : null;\n const cells: Array<any | React.Node> = [];\n const stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n const stickyHeaderIndices = [];\n\n // 1. Add cell for ListHeaderComponent\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n const element = React.isValidElement(ListHeaderComponent) ? (\n ListHeaderComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n <ListHeaderComponent />\n );\n cells.push(\n <VirtualizedListCellContextProvider\n cellKey={this._getCellKey() + '-header'}\n key=\"$header\">\n <View\n onLayout={this._onLayoutHeader}\n style={StyleSheet.compose(\n inversionStyle,\n this.props.ListHeaderComponentStyle,\n )}>\n {\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element\n }\n </View>\n </VirtualizedListCellContextProvider>,\n );\n }\n\n // 2a. Add a cell for ListEmptyComponent if applicable\n const itemCount = this.props.getItemCount(data);\n if (itemCount === 0 && ListEmptyComponent) {\n const element: React.Element<any> = ((React.isValidElement(\n ListEmptyComponent,\n ) ? (\n ListEmptyComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n <ListEmptyComponent />\n )): any);\n cells.push(\n <VirtualizedListCellContextProvider\n cellKey={this._getCellKey() + '-empty'}\n key=\"$empty\">\n {React.cloneElement(element, {\n onLayout: (event: LayoutEvent) => {\n this._onLayoutEmpty(event);\n if (element.props.onLayout) {\n element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, element.props.style),\n })}\n </VirtualizedListCellContextProvider>,\n );\n }\n\n // 2b. Add cells and spacers for each item\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n const spacerKey = this._getSpacerKey(!horizontal);\n\n const renderRegions = this.state.renderMask.enumerateRegions();\n const lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);\n\n for (const section of renderRegions) {\n if (section.isSpacer) {\n // Legacy behavior is to avoid spacers when virtualization is\n // disabled (including head spacers on initial render).\n if (this.props.disableVirtualization) {\n continue;\n }\n\n // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n const isLastSpacer = section === lastSpacer;\n const constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n const last = constrainToMeasured\n ? clamp(\n section.first - 1,\n section.last,\n this._highestMeasuredFrameIndex,\n )\n : section.last;\n\n const firstMetrics = this.__getFrameMetricsApprox(\n section.first,\n this.props,\n );\n const lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n const spacerSize =\n lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n cells.push(\n <View\n key={`$spacer-${section.first}`}\n style={{[spacerKey]: spacerSize}}\n />,\n );\n } else {\n this._pushCells(\n cells,\n stickyHeaderIndices,\n stickyIndicesFromProps,\n section.first,\n section.last,\n inversionStyle,\n );\n }\n }\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn(\n 'VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' +\n 'item or provide a custom keyExtractor.',\n _keylessItemComponentName,\n );\n this._hasWarned.keys = true;\n }\n }\n\n // 3. Add cell for ListFooterComponent\n if (ListFooterComponent) {\n const element = React.isValidElement(ListFooterComponent) ? (\n ListFooterComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n <ListFooterComponent />\n );\n cells.push(\n <VirtualizedListCellContextProvider\n cellKey={this._getFooterCellKey()}\n key=\"$footer\">\n <View\n onLayout={this._onLayoutFooter}\n style={StyleSheet.compose(\n inversionStyle,\n this.props.ListFooterComponentStyle,\n )}>\n {\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element\n }\n </View>\n </VirtualizedListCellContextProvider>,\n );\n }\n\n // 4. Render the ScrollView\n const scrollProps = {\n ...this.props,\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: scrollEventThrottleOrDefault(\n this.props.scrollEventThrottle,\n ), // TODO: Android support\n invertStickyHeaders:\n this.props.invertStickyHeaders !== undefined\n ? this.props.invertStickyHeaders\n : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle\n ? [inversionStyle, this.props.style]\n : this.props.style,\n };\n\n this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;\n\n const innerRet = (\n <VirtualizedListContextProvider\n value={{\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: horizontalOrDefault(this.props.horizontal),\n getOutermostParentListRef: this._getOutermostParentListRef,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild,\n }}>\n {React.cloneElement(\n (\n this.props.renderScrollComponent ||\n this._defaultRenderScrollComponent\n )(scrollProps),\n {\n ref: this._captureScrollRef,\n },\n cells,\n )}\n </VirtualizedListContextProvider>\n );\n let ret: React.Node = innerRet;\n if (__DEV__) {\n ret = (\n <ScrollView.Context.Consumer>\n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null &&\n this.props.scrollEnabled !== false\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n </ScrollView.Context.Consumer>\n );\n }\n if (this.props.debug) {\n return (\n <View style={styles.debug}>\n {ret}\n {this._renderDebugOverlay()}\n </View>\n );\n } else {\n return ret;\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const {data, extraData} = this.props;\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n }\n // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n const hiPriInProgress = this._hiPriInProgress;\n this._scheduleCellsToRenderUpdate();\n // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n _averageCellLength = 0;\n _cellRefs: {[string]: null | CellRenderer<any>} = {};\n _fillRateHelper: FillRateHelper;\n _frames: {\n [string]: {\n inLayout?: boolean,\n index: number,\n length: number,\n offset: number,\n },\n } = {};\n _footerLength = 0;\n // Used for preventing scrollToIndex from being called multiple times for initialScrollIndex\n _hasTriggeredInitialScrollToIndex = false;\n _hasInteracted = false;\n _hasMore = false;\n _hasWarned: {[string]: boolean} = {};\n _headerLength = 0;\n _hiPriInProgress: boolean = false; // flag to prevent infinite hiPri cell limit update\n _highestMeasuredFrameIndex = 0;\n _indicesToKeys: Map<number, string> = new Map();\n _lastFocusedCellKey: ?string = null;\n _nestedChildLists: ChildListCollection<VirtualizedList> =\n new ChildListCollection();\n _offsetFromParentVirtualizedList: number = 0;\n _prevParentOffset: number = 0;\n // $FlowFixMe[missing-local-annot]\n _scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0,\n zoomScale: 1,\n };\n _scrollRef: ?React.ElementRef<any> = null;\n _sentEndForContentLength = 0;\n _totalCellLength = 0;\n _totalCellsMeasured = 0;\n _updateCellsToRenderBatcher: Batchinator;\n _viewabilityTuples: Array<ViewabilityHelperCallbackTuple> = [];\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(\n this.props,\n this.state.cellsAroundViewport,\n this._scrollMetrics,\n );\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _defaultRenderScrollComponent = props => {\n const onRefresh = props.onRefresh;\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return <View {...props} />;\n } else if (onRefresh) {\n invariant(\n typeof props.refreshing === 'boolean',\n '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +\n JSON.stringify(props.refreshing ?? 'undefined') +\n '`',\n );\n return (\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n <ScrollView\n {...props}\n refreshControl={\n props.refreshControl == null ? (\n <RefreshControl\n // $FlowFixMe[incompatible-type]\n refreshing={props.refreshing}\n onRefresh={onRefresh}\n progressViewOffset={props.progressViewOffset}\n />\n ) : (\n props.refreshControl\n )\n }\n />\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n return <ScrollView {...props} />;\n }\n };\n\n _onCellLayout = (e: LayoutEvent, cellKey: string, index: number): void => {\n const layout = e.nativeEvent.layout;\n const next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index,\n inLayout: true,\n };\n const curr = this._frames[cellKey];\n if (\n !curr ||\n next.offset !== curr.offset ||\n next.length !== curr.length ||\n index !== curr.index\n ) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength =\n this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(\n this._highestMeasuredFrameIndex,\n index,\n );\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n };\n\n _onCellFocusCapture(cellKey: string) {\n this._lastFocusedCellKey = cellKey;\n const renderMask = VirtualizedList._createRenderMask(\n this.props,\n this.state.cellsAroundViewport,\n this._getNonViewportRenderRegions(this.props),\n );\n\n this.setState(state => {\n if (!renderMask.equals(state.renderMask)) {\n return {renderMask};\n }\n return null;\n });\n }\n\n _onCellUnmount = (cellKey: string) => {\n const curr = this._frames[cellKey];\n if (curr) {\n this._frames[cellKey] = {...curr, inLayout: false};\n }\n };\n\n _triggerRemeasureForChildListsInCell(cellKey: string): void {\n this._nestedChildLists.forEachInCell(cellKey, childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n\n measureLayoutRelativeToContainingList(): void {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n }\n // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n this._scrollRef.measureLayout(\n this.context.getOutermostParentListRef().getScrollRef(),\n (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({x, y});\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height,\n });\n const scrollMetrics = this._convertParentScrollMetrics(\n this.context.getScrollMetrics(),\n );\n\n const metricsChanged =\n this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength ||\n this._scrollMetrics.offset !== scrollMetrics.offset;\n\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset;\n\n // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n this._nestedChildLists.forEach(childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n },\n error => {\n console.warn(\n \"VirtualizedList: Encountered an error while measuring a list's\" +\n ' offset from its containing VirtualizedList.',\n );\n },\n );\n } catch (error) {\n console.warn(\n 'measureLayoutRelativeToContainingList threw an error',\n error.stack,\n );\n }\n }\n\n _onLayout = (e: LayoutEvent) => {\n if (this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n this.measureLayoutRelativeToContainingList();\n } else {\n this._scrollMetrics.visibleLength = this._selectLength(\n e.nativeEvent.layout,\n );\n }\n this.props.onLayout && this.props.onLayout(e);\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEndReached();\n };\n\n _onLayoutEmpty = (e: LayoutEvent) => {\n this.props.onLayout && this.props.onLayout(e);\n };\n\n _getFooterCellKey(): string {\n return this._getCellKey() + '-footer';\n }\n\n _onLayoutFooter = (e: LayoutEvent) => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n _onLayoutHeader = (e: LayoutEvent) => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n // $FlowFixMe[missing-local-annot]\n _renderDebugOverlay() {\n const normalize =\n this._scrollMetrics.visibleLength /\n (this._scrollMetrics.contentLength || 1);\n const framesInLayout = [];\n const itemCount = this.props.getItemCount(this.props.data);\n for (let ii = 0; ii < itemCount; ii++) {\n const frame = this.__getFrameMetricsApprox(ii, this.props);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n const windowTop = this.__getFrameMetricsApprox(\n this.state.cellsAroundViewport.first,\n this.props,\n ).offset;\n const frameLast = this.__getFrameMetricsApprox(\n this.state.cellsAroundViewport.last,\n this.props,\n );\n const windowLen = frameLast.offset + frameLast.length - windowTop;\n const visTop = this._scrollMetrics.offset;\n const visLen = this._scrollMetrics.visibleLength;\n\n return (\n <View style={[styles.debugOverlayBase, styles.debugOverlay]}>\n {framesInLayout.map((f, ii) => (\n <View\n key={'f' + ii}\n style={[\n styles.debugOverlayBase,\n styles.debugOverlayFrame,\n {\n top: f.offset * normalize,\n height: f.length * normalize,\n },\n ]}\n />\n ))}\n <View\n style={[\n styles.debugOverlayBase,\n styles.debugOverlayFrameLast,\n {\n top: windowTop * normalize,\n height: windowLen * normalize,\n },\n ]}\n />\n <View\n style={[\n styles.debugOverlayBase,\n styles.debugOverlayFrameVis,\n {\n top: visTop * normalize,\n height: visLen * normalize,\n },\n ]}\n />\n </View>\n );\n }\n\n _selectLength(\n metrics: $ReadOnly<{\n height: number,\n width: number,\n ...\n }>,\n ): number {\n return !horizontalOrDefault(this.props.horizontal)\n ? metrics.height\n : metrics.width;\n }\n\n _selectOffset(\n metrics: $ReadOnly<{\n x: number,\n y: number,\n ...\n }>,\n ): number {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n\n _maybeCallOnEndReached() {\n const {data, getItemCount, onEndReached, onEndReachedThreshold} =\n this.props;\n const {contentLength, visibleLength, offset} = this._scrollMetrics;\n let distanceFromEnd = contentLength - visibleLength - offset;\n\n // Especially when oERT is zero it's necessary to 'floor' very small distanceFromEnd values to be 0\n // since debouncing causes us to not fire this event for every single \"pixel\" we scroll and can thus\n // be at the \"end\" of the list with a distanceFromEnd approximating 0 but not quite there.\n if (distanceFromEnd < ON_END_REACHED_EPSILON) {\n distanceFromEnd = 0;\n }\n\n // TODO: T121172172 Look into why we're \"defaulting\" to a threshold of 2 when oERT is not present\n const threshold =\n onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : 2;\n if (\n onEndReached &&\n this.state.cellsAroundViewport.last === getItemCount(data) - 1 &&\n distanceFromEnd <= threshold &&\n this._scrollMetrics.contentLength !== this._sentEndForContentLength\n ) {\n // Only call onEndReached once for a given content length\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({distanceFromEnd});\n } else if (distanceFromEnd > threshold) {\n // If the user scrolls away from the end and back again cause\n // an onEndReached to be triggered again\n this._sentEndForContentLength = 0;\n }\n }\n\n _onContentSizeChange = (width: number, height: number) => {\n if (\n width > 0 &&\n height > 0 &&\n this.props.initialScrollIndex != null &&\n this.props.initialScrollIndex > 0 &&\n !this._hasTriggeredInitialScrollToIndex\n ) {\n if (this.props.contentOffset == null) {\n this.scrollToIndex({\n animated: false,\n index: this.props.initialScrollIndex,\n });\n }\n this._hasTriggeredInitialScrollToIndex = true;\n }\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n this._scrollMetrics.contentLength = this._selectLength({height, width});\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEndReached();\n };\n\n /* Translates metrics from a scroll event in a parent VirtualizedList into\n * coordinates relative to the child list.\n */\n _convertParentScrollMetrics = (metrics: {\n visibleLength: number,\n offset: number,\n ...\n }): $FlowFixMe => {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n const offset = metrics.offset - this._offsetFromParentVirtualizedList;\n // Child's visible length is the same as its parent's\n const visibleLength = metrics.visibleLength;\n const dOffset = offset - this._scrollMetrics.offset;\n const contentLength = this._scrollMetrics.contentLength;\n\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset,\n };\n };\n\n _onScroll = (e: Object) => {\n this._nestedChildLists.forEach(childList => {\n childList._onScroll(e);\n });\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n const timestamp = e.timeStamp;\n let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n let contentLength = this._selectLength(e.nativeEvent.contentSize);\n let offset = this._selectOffset(e.nativeEvent.contentOffset);\n let dOffset = offset - this._scrollMetrics.offset;\n\n if (this._isNestedWithSameOrientation()) {\n if (this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n ({visibleLength, contentLength, offset, dOffset} =\n this._convertParentScrollMetrics({\n visibleLength,\n offset,\n }));\n }\n\n const dt = this._scrollMetrics.timestamp\n ? Math.max(1, timestamp - this._scrollMetrics.timestamp)\n : 1;\n const velocity = dOffset / dt;\n\n if (\n dt > 500 &&\n this._scrollMetrics.dt > 500 &&\n contentLength > 5 * visibleLength &&\n !this._hasWarned.perf\n ) {\n infoLog(\n 'VirtualizedList: You have a large list that is slow to update - make sure your ' +\n 'renderItem function renders components that follow React performance best practices ' +\n 'like PureComponent, shouldComponentUpdate, etc.',\n {dt, prevDt: this._scrollMetrics.dt, contentLength},\n );\n this._hasWarned.perf = true;\n }\n\n // For invalid negative values (w/ RTL), set this to 1.\n const zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength,\n zoomScale,\n };\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n if (!this.props) {\n return;\n }\n this._maybeCallOnEndReached();\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n this._computeBlankness();\n this._scheduleCellsToRenderUpdate();\n };\n\n _scheduleCellsToRenderUpdate() {\n const {first, last} = this.state.cellsAroundViewport;\n const {offset, visibleLength, velocity} = this._scrollMetrics;\n const itemCount = this.props.getItemCount(this.props.data);\n let hiPri = false;\n const onEndReachedThreshold = onEndReachedThresholdOrDefault(\n this.props.onEndReachedThreshold,\n );\n const scrollingThreshold = (onEndReachedThreshold * visibleLength) / 2;\n // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n if (first > 0) {\n const distTop =\n offset - this.__getFrameMetricsApprox(first, this.props).offset;\n hiPri =\n hiPri || distTop < 0 || (velocity < -2 && distTop < scrollingThreshold);\n }\n // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n if (last >= 0 && last < itemCount - 1) {\n const distBottom =\n this.__getFrameMetricsApprox(last, this.props).offset -\n (offset + visibleLength);\n hiPri =\n hiPri ||\n distBottom < 0 ||\n (velocity > 2 && distBottom < scrollingThreshold);\n }\n // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n if (\n hiPri &&\n (this._averageCellLength || this.props.getItemLayout) &&\n !this._hiPriInProgress\n ) {\n this._hiPriInProgress = true;\n // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n this._updateCellsToRenderBatcher.dispose({abort: true});\n this._updateCellsToRender();\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n _onScrollBeginDrag = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollBeginDrag(e);\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n _onScrollEndDrag = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollEndDrag(e);\n });\n const {velocity} = e.nativeEvent;\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n this._computeBlankness();\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n _onMomentumScrollBegin = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollBegin(e);\n });\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n _onMomentumScrollEnd = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollEnd(e);\n });\n this._scrollMetrics.velocity = 0;\n this._computeBlankness();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n _updateCellsToRender = () => {\n this.setState((state, props) => {\n const cellsAroundViewport = this._adjustCellsAroundViewport(\n props,\n state.cellsAroundViewport,\n );\n const renderMask = VirtualizedList._createRenderMask(\n props,\n cellsAroundViewport,\n this._getNonViewportRenderRegions(props),\n );\n\n if (\n cellsAroundViewport.first === state.cellsAroundViewport.first &&\n cellsAroundViewport.last === state.cellsAroundViewport.last &&\n renderMask.equals(state.renderMask)\n ) {\n return null;\n }\n\n return {cellsAroundViewport, renderMask};\n });\n };\n\n _createViewToken = (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n // $FlowFixMe[missing-local-annot]\n ) => {\n const {data, getItem} = props;\n const item = getItem(data, index);\n return {\n index,\n item,\n key: this._keyExtractor(item, index, props),\n isViewable,\n };\n };\n\n /**\n * Gets an approximate offset to an item at a given index. Supports\n * fractional indices.\n */\n _getOffsetApprox = (index: number, props: FrameMetricProps): number => {\n if (Number.isInteger(index)) {\n return this.__getFrameMetricsApprox(index, props).offset;\n } else {\n const frameMetrics = this.__getFrameMetricsApprox(\n Math.floor(index),\n props,\n );\n const remainder = index - Math.floor(index);\n return frameMetrics.offset + remainder * frameMetrics.length;\n }\n };\n\n __getFrameMetricsApprox: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n } = (index, props) => {\n const frame = this._getFrameMetrics(index, props);\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n const {data, getItemCount, getItemLayout} = props;\n invariant(\n index >= 0 && index < getItemCount(data),\n 'Tried to get frame for out of range index ' + index,\n );\n invariant(\n !getItemLayout,\n 'Should not have to estimate frames when a measurement metrics function is provided',\n );\n return {\n length: this._averageCellLength,\n offset: this._averageCellLength * index,\n };\n }\n };\n\n _getFrameMetrics = (\n index: number,\n props: FrameMetricProps,\n ): ?{\n length: number,\n offset: number,\n index: number,\n inLayout?: boolean,\n ...\n } => {\n const {data, getItem, getItemCount, getItemLayout} = props;\n invariant(\n index >= 0 && index < getItemCount(data),\n 'Tried to get frame for out of range index ' + index,\n );\n const item = getItem(data, index);\n const frame = item && this._frames[this._keyExtractor(item, index, props)];\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n return getItemLayout(data, index);\n }\n }\n return frame;\n };\n\n _getNonViewportRenderRegions = (\n props: FrameMetricProps,\n ): $ReadOnlyArray<{\n first: number,\n last: number,\n }> => {\n // Keep a viewport's worth of content around the last focused cell to allow\n // random navigation around it without any blanking. E.g. tabbing from one\n // focused item out of viewport to another.\n if (\n !(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])\n ) {\n return [];\n }\n\n const lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n const focusedCellIndex = lastFocusedCellRenderer.props.index;\n const itemCount = props.getItemCount(props.data);\n\n // The cell may have been unmounted and have a stale index\n if (\n focusedCellIndex >= itemCount ||\n this._indicesToKeys.get(focusedCellIndex) !== this._lastFocusedCellKey\n ) {\n return [];\n }\n\n let first = focusedCellIndex;\n let heightOfCellsBeforeFocused = 0;\n for (\n let i = first - 1;\n i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength;\n i--\n ) {\n first--;\n heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(\n i,\n props,\n ).length;\n }\n\n let last = focusedCellIndex;\n let heightOfCellsAfterFocused = 0;\n for (\n let i = last + 1;\n i < itemCount &&\n heightOfCellsAfterFocused < this._scrollMetrics.visibleLength;\n i++\n ) {\n last++;\n heightOfCellsAfterFocused += this.__getFrameMetricsApprox(\n i,\n props,\n ).length;\n }\n\n return [{first, last}];\n };\n\n _updateViewableItems(\n props: FrameMetricProps,\n cellsAroundViewport: {first: number, last: number},\n ) {\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(\n props,\n this._scrollMetrics.offset,\n this._scrollMetrics.visibleLength,\n this._getFrameMetrics,\n this._createViewToken,\n tuple.onViewableItemsChanged,\n cellsAroundViewport,\n );\n });\n }\n}\n\nconst styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{scaleY: -1}],\n },\n horizontallyInverted: {\n transform: [{scaleX: -1}],\n },\n debug: {\n flex: 1,\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0,\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1,\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange',\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2,\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2,\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 * @format\n * @flow\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport AndroidSwipeRefreshLayoutNativeComponent, {\n Commands as AndroidSwipeRefreshLayoutCommands,\n} from './AndroidSwipeRefreshLayoutNativeComponent';\nimport PullToRefreshViewNativeComponent, {\n Commands as PullToRefreshCommands,\n} from './PullToRefreshViewNativeComponent';\n\nconst Platform = require('../../Utilities/Platform');\nconst React = require('react');\n\ntype IOSProps = $ReadOnly<{|\n /**\n * The color of the refresh indicator.\n */\n tintColor?: ?ColorValue,\n /**\n * Title color.\n */\n titleColor?: ?ColorValue,\n /**\n * The title displayed under the refresh indicator.\n */\n title?: ?string,\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Whether the pull to refresh functionality is enabled.\n */\n enabled?: ?boolean,\n /**\n * The colors (at least one) that will be used to draw the refresh indicator.\n */\n colors?: ?$ReadOnlyArray<ColorValue>,\n /**\n * The background color of the refresh indicator.\n */\n progressBackgroundColor?: ?ColorValue,\n /**\n * Size of the refresh indicator.\n */\n size?: ?('default' | 'large'),\n|}>;\n\nexport type RefreshControlProps = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?() => void | Promise<void>,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n\n /**\n * Progress view top offset\n */\n progressViewOffset?: ?number,\n|}>;\n\n/**\n * This component is used inside a ScrollView or ListView to add pull to refresh\n * functionality. When the ScrollView is at `scrollY: 0`, swiping down\n * triggers an `onRefresh` event.\n *\n * ### Usage example\n *\n * ``` js\n * class RefreshableList extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * refreshing: false,\n * };\n * }\n *\n * _onRefresh() {\n * this.setState({refreshing: true});\n * fetchData().then(() => {\n * this.setState({refreshing: false});\n * });\n * }\n *\n * render() {\n * return (\n * <ListView\n * refreshControl={\n * <RefreshControl\n * refreshing={this.state.refreshing}\n * onRefresh={this._onRefresh.bind(this)}\n * />\n * }\n * ...\n * >\n * ...\n * </ListView>\n * );\n * }\n * ...\n * }\n * ```\n *\n * __Note:__ `refreshing` is a controlled prop, this is why it needs to be set to true\n * in the `onRefresh` function otherwise the refresh indicator will stop immediately.\n */\nclass RefreshControl extends React.Component<RefreshControlProps> {\n _nativeRef: ?React.ElementRef<\n | typeof PullToRefreshViewNativeComponent\n | typeof AndroidSwipeRefreshLayoutNativeComponent,\n >;\n _lastNativeRefreshing = false;\n\n componentDidMount() {\n this._lastNativeRefreshing = this.props.refreshing;\n }\n\n componentDidUpdate(prevProps: RefreshControlProps) {\n // RefreshControl is a controlled component so if the native refreshing\n // value doesn't match the current js refreshing prop update it to\n // the js value.\n if (this.props.refreshing !== prevProps.refreshing) {\n this._lastNativeRefreshing = this.props.refreshing;\n } else if (\n this.props.refreshing !== this._lastNativeRefreshing &&\n this._nativeRef\n ) {\n if (Platform.OS === 'android') {\n AndroidSwipeRefreshLayoutCommands.setNativeRefreshing(\n this._nativeRef,\n this.props.refreshing,\n );\n } else {\n PullToRefreshCommands.setNativeRefreshing(\n this._nativeRef,\n this.props.refreshing,\n );\n }\n this._lastNativeRefreshing = this.props.refreshing;\n }\n }\n\n render(): React.Node {\n if (Platform.OS === 'ios') {\n const {enabled, colors, progressBackgroundColor, size, ...props} =\n this.props;\n return (\n <PullToRefreshViewNativeComponent\n {...props}\n ref={this._setNativeRef}\n onRefresh={this._onRefresh}\n />\n );\n } else {\n const {tintColor, titleColor, title, ...props} = this.props;\n return (\n <AndroidSwipeRefreshLayoutNativeComponent\n {...props}\n ref={this._setNativeRef}\n onRefresh={this._onRefresh}\n />\n );\n }\n }\n\n _onRefresh = () => {\n this._lastNativeRefreshing = true;\n\n this.props.onRefresh && this.props.onRefresh();\n\n // The native component will start refreshing so force an update to\n // make sure it stays in sync with the js component.\n this.forceUpdate();\n };\n\n _setNativeRef = (\n ref: ?React.ElementRef<\n | typeof PullToRefreshViewNativeComponent\n | typeof AndroidSwipeRefreshLayoutNativeComponent,\n >,\n ) => {\n this._nativeRef = ref;\n };\n}\n\nmodule.exports = RefreshControl;\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Whether the pull to refresh functionality is enabled.\n */\n enabled?: WithDefault<boolean, true>,\n /**\n * The colors (at least one) that will be used to draw the refresh indicator.\n */\n colors?: ?$ReadOnlyArray<ColorValue>,\n /**\n * The background color of the refresh indicator.\n */\n progressBackgroundColor?: ?ColorValue,\n /**\n * Size of the refresh indicator.\n */\n size?: WithDefault<'default' | 'large', 'default'>,\n /**\n * Progress view top offset\n */\n progressViewOffset?: WithDefault<Float, 0>,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?DirectEventHandler<null>,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n|}>;\n\ntype NativeType = HostComponent<NativeProps>;\n\ninterface NativeCommands {\n +setNativeRefreshing: (\n viewRef: React.ElementRef<NativeType>,\n value: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['setNativeRefreshing'],\n});\n\nexport default (codegenNativeComponent<NativeProps>(\n 'AndroidSwipeRefreshLayout',\n): NativeType);\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The color of the refresh indicator.\n */\n tintColor?: ?ColorValue,\n /**\n * Title color.\n */\n titleColor?: ?ColorValue,\n /**\n * The title displayed under the refresh indicator.\n */\n title?: WithDefault<string, null>,\n /**\n * Progress view top offset\n */\n progressViewOffset?: WithDefault<Float, 0>,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?DirectEventHandler<null>,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\ninterface NativeCommands {\n +setNativeRefreshing: (\n viewRef: React.ElementRef<ComponentType>,\n refreshing: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['setNativeRefreshing'],\n});\n\nexport default (codegenNativeComponent<NativeProps>('PullToRefreshView', {\n paperComponentName: 'RCTRefreshControl',\n excludedPlatforms: ['android'],\n}): HostComponent<NativeProps>);\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {PointProp} from '../../StyleSheet/PointPropType';\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n LayoutEvent,\n PressEvent,\n ScrollEvent,\n} from '../../Types/CoreEventTypes';\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport type {KeyboardEvent, KeyboardMetrics} from '../Keyboard/Keyboard';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {Props as ScrollViewStickyHeaderProps} from './ScrollViewStickyHeader';\n\nimport AnimatedImplementation from '../../Animated/AnimatedImplementation';\nimport FrameRateLogger from '../../Interaction/FrameRateLogger';\nimport {findNodeHandle} from '../../ReactNative/RendererProxy';\nimport UIManager from '../../ReactNative/UIManager';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport splitLayoutProps from '../../StyleSheet/splitLayoutProps';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Dimensions from '../../Utilities/Dimensions';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport setAndForwardRef from '../../Utilities/setAndForwardRef';\nimport Keyboard from '../Keyboard/Keyboard';\nimport TextInputState from '../TextInput/TextInputState';\nimport View from '../View/View';\nimport AndroidHorizontalScrollContentViewNativeComponent from './AndroidHorizontalScrollContentViewNativeComponent';\nimport AndroidHorizontalScrollViewNativeComponent from './AndroidHorizontalScrollViewNativeComponent';\nimport processDecelerationRate from './processDecelerationRate';\nimport ScrollContentViewNativeComponent from './ScrollContentViewNativeComponent';\nimport Commands from './ScrollViewCommands';\nimport ScrollViewContext, {HORIZONTAL, VERTICAL} from './ScrollViewContext';\nimport ScrollViewNativeComponent from './ScrollViewNativeComponent';\nimport ScrollViewStickyHeader from './ScrollViewStickyHeader';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nif (Platform.OS === 'ios') {\n require('../../Renderer/shims/ReactNative'); // Force side effects to prevent T55744311\n}\n\nconst {NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple} =\n Platform.OS === 'android'\n ? {\n NativeHorizontalScrollViewTuple: [\n AndroidHorizontalScrollViewNativeComponent,\n AndroidHorizontalScrollContentViewNativeComponent,\n ],\n NativeVerticalScrollViewTuple: [ScrollViewNativeComponent, View],\n }\n : {\n NativeHorizontalScrollViewTuple: [\n ScrollViewNativeComponent,\n ScrollContentViewNativeComponent,\n ],\n NativeVerticalScrollViewTuple: [\n ScrollViewNativeComponent,\n ScrollContentViewNativeComponent,\n ],\n };\n\n/*\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollView` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. This is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\n// Public methods for ScrollView\nexport type ScrollViewImperativeMethods = $ReadOnly<{|\n getScrollResponder: $PropertyType<ScrollView, 'getScrollResponder'>,\n getScrollableNode: $PropertyType<ScrollView, 'getScrollableNode'>,\n getInnerViewNode: $PropertyType<ScrollView, 'getInnerViewNode'>,\n getInnerViewRef: $PropertyType<ScrollView, 'getInnerViewRef'>,\n getNativeScrollRef: $PropertyType<ScrollView, 'getNativeScrollRef'>,\n scrollTo: $PropertyType<ScrollView, 'scrollTo'>,\n scrollToEnd: $PropertyType<ScrollView, 'scrollToEnd'>,\n flashScrollIndicators: $PropertyType<ScrollView, 'flashScrollIndicators'>,\n scrollResponderZoomTo: $PropertyType<ScrollView, 'scrollResponderZoomTo'>,\n scrollResponderScrollNativeHandleToKeyboard: $PropertyType<\n ScrollView,\n 'scrollResponderScrollNativeHandleToKeyboard',\n >,\n|}>;\n\nexport type DecelerationRateType = 'fast' | 'normal' | number;\nexport type ScrollResponderType = ScrollViewImperativeMethods;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * Controls whether iOS should automatically adjust the content inset\n * for scroll views that are placed behind a navigation bar or\n * tab bar/ toolbar. The default value is true.\n * @platform ios\n */\n automaticallyAdjustContentInsets?: ?boolean,\n /**\n * Controls whether the ScrollView should automatically adjust its `contentInset`\n * and `scrollViewInsets` when the Keyboard changes its size. The default value is false.\n * @platform ios\n */\n automaticallyAdjustKeyboardInsets?: ?boolean,\n /**\n * Controls whether iOS should automatically adjust the scroll indicator\n * insets. The default value is true. Available on iOS 13 and later.\n * @platform ios\n */\n automaticallyAdjustsScrollIndicatorInsets?: ?boolean,\n /**\n * The amount by which the scroll view content is inset from the edges\n * of the scroll view. Defaults to `{top: 0, left: 0, bottom: 0, right: 0}`.\n * @platform ios\n */\n contentInset?: ?EdgeInsetsProp,\n /**\n * When true, the scroll view bounces when it reaches the end of the\n * content if the content is larger then the scroll view along the axis of\n * the scroll direction. When false, it disables all bouncing even if\n * the `alwaysBounce*` props are true. The default value is true.\n * @platform ios\n */\n bounces?: ?boolean,\n /**\n * By default, ScrollView has an active pan responder that hijacks panresponders\n * deeper in the render tree in order to prevent accidental touches while scrolling.\n * However, in certain occasions (such as when using snapToInterval) in a vertical scrollview\n * You may want to disable this behavior in order to prevent the ScrollView from blocking touches\n */\n disableScrollViewPanResponder?: ?boolean,\n /**\n * When true, gestures can drive zoom past min/max and the zoom will animate\n * to the min/max value at gesture end, otherwise the zoom will not exceed\n * the limits.\n * @platform ios\n */\n bouncesZoom?: ?boolean,\n /**\n * When true, the scroll view bounces horizontally when it reaches the end\n * even if the content is smaller than the scroll view itself. The default\n * value is true when `horizontal={true}` and false otherwise.\n * @platform ios\n */\n alwaysBounceHorizontal?: ?boolean,\n /**\n * When true, the scroll view bounces vertically when it reaches the end\n * even if the content is smaller than the scroll view itself. The default\n * value is false when `horizontal={true}` and true otherwise.\n * @platform ios\n */\n alwaysBounceVertical?: ?boolean,\n /**\n * When true, the scroll view automatically centers the content when the\n * content is smaller than the scroll view bounds; when the content is\n * larger than the scroll view, this property has no effect. The default\n * value is false.\n * @platform ios\n */\n centerContent?: ?boolean,\n /**\n * The style of the scroll indicators.\n *\n * - `'default'` (the default), same as `black`.\n * - `'black'`, scroll indicator is black. This style is good against a light background.\n * - `'white'`, scroll indicator is white. This style is good against a dark background.\n *\n * @platform ios\n */\n indicatorStyle?: ?('default' | 'black' | 'white'),\n /**\n * When true, the ScrollView will try to lock to only vertical or horizontal\n * scrolling while dragging. The default value is false.\n * @platform ios\n */\n directionalLockEnabled?: ?boolean,\n /**\n * When false, once tracking starts, won't try to drag if the touch moves.\n * The default value is true.\n * @platform ios\n */\n canCancelContentTouches?: ?boolean,\n /**\n * When set, the scroll view will adjust the scroll position so that the first child that is\n * currently visible and at or beyond `minIndexForVisible` will not change position. This is\n * useful for lists that are loading content in both directions, e.g. a chat thread, where new\n * messages coming in might otherwise cause the scroll position to jump. A value of 0 is common,\n * but other values such as 1 can be used to skip loading spinners or other content that should\n * not maintain position.\n *\n * The optional `autoscrollToTopThreshold` can be used to make the content automatically scroll\n * to the top after making the adjustment if the user was within the threshold of the top before\n * the adjustment was made. This is also useful for chat-like applications where you want to see\n * new messages scroll into place, but not if the user has scrolled up a ways and it would be\n * disruptive to scroll a bunch.\n *\n * Caveat 1: Reordering elements in the scrollview with this enabled will probably cause\n * jumpiness and jank. It can be fixed, but there are currently no plans to do so. For now,\n * don't re-order the content of any ScrollViews or Lists that use this feature.\n *\n * Caveat 2: This simply uses `contentOffset` and `frame.origin` in native code to compute\n * visibility. Occlusion, transforms, and other complexity won't be taken into account as to\n * whether content is \"visible\" or not.\n *\n * @platform ios\n */\n maintainVisibleContentPosition?: ?$ReadOnly<{|\n minIndexForVisible: number,\n autoscrollToTopThreshold?: ?number,\n |}>,\n /**\n * The maximum allowed zoom scale. The default value is 1.0.\n * @platform ios\n */\n maximumZoomScale?: ?number,\n /**\n * The minimum allowed zoom scale. The default value is 1.0.\n * @platform ios\n */\n minimumZoomScale?: ?number,\n /**\n * When true, ScrollView allows use of pinch gestures to zoom in and out.\n * The default value is true.\n * @platform ios\n */\n pinchGestureEnabled?: ?boolean,\n /**\n * This controls how often the scroll event will be fired while scrolling\n * (as a time interval in ms). A lower number yields better accuracy for code\n * that is tracking the scroll position, but can lead to scroll performance\n * problems due to the volume of information being send over the bridge.\n *\n * Values between 0 and 17ms indicate 60fps updates are needed and throttling\n * will be disabled.\n *\n * If you do not need precise scroll position tracking, set this value higher\n * to limit the information being sent across the bridge.\n *\n * The default value is zero, which results in the scroll event being sent only\n * once each time the view is scrolled.\n *\n * @platform ios\n */\n scrollEventThrottle?: ?number,\n /**\n * The amount by which the scroll view indicators are inset from the edges\n * of the scroll view. This should normally be set to the same value as\n * the `contentInset`. Defaults to `{0, 0, 0, 0}`.\n * @platform ios\n */\n scrollIndicatorInsets?: ?EdgeInsetsProp,\n /**\n * When true, the scroll view can be programmatically scrolled beyond its\n * content size. The default value is false.\n * @platform ios\n */\n scrollToOverflowEnabled?: ?boolean,\n /**\n * When true, the scroll view scrolls to top when the status bar is tapped.\n * The default value is true.\n * @platform ios\n */\n scrollsToTop?: ?boolean,\n /**\n * Fires when the scroll view scrolls to top after the status bar has been tapped\n * @platform ios\n */\n onScrollToTop?: (event: ScrollEvent) => void,\n /**\n * When true, shows a horizontal scroll indicator.\n * The default value is true.\n */\n showsHorizontalScrollIndicator?: ?boolean,\n /**\n * The current scale of the scroll view content. The default value is 1.0.\n * @platform ios\n */\n zoomScale?: ?number,\n /**\n * This property specifies how the safe area insets are used to modify the\n * content area of the scroll view. The default value of this property is\n * \"never\". Available on iOS 11 and later.\n * @platform ios\n */\n contentInsetAdjustmentBehavior?: ?(\n | 'automatic'\n | 'scrollableAxes'\n | 'never'\n | 'always'\n ),\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Enables nested scrolling for Android API level 21+.\n * Nested scrolling is supported by default on iOS\n * @platform android\n */\n nestedScrollEnabled?: ?boolean,\n /**\n * Sometimes a scrollview takes up more space than its content fills. When this is\n * the case, this prop will fill the rest of the scrollview with a color to avoid setting\n * a background and creating unnecessary overdraw. This is an advanced optimization\n * that is not needed in the general case.\n * @platform android\n */\n endFillColor?: ?ColorValue,\n /**\n * Tag used to log scroll performance on this scroll view. Will force\n * momentum events to be turned on (see sendMomentumEvents). This doesn't do\n * anything out of the box and you need to implement a custom native\n * FpsListener for it to be useful.\n * @platform android\n */\n scrollPerfTag?: ?string,\n /**\n * Used to override default value of overScroll mode.\n *\n * Possible values:\n *\n * - `'auto'` - Default value, allow a user to over-scroll\n * this view only if the content is large enough to meaningfully scroll.\n * - `'always'` - Always allow a user to over-scroll this view.\n * - `'never'` - Never allow a user to over-scroll this view.\n *\n * @platform android\n */\n overScrollMode?: ?('auto' | 'always' | 'never'),\n /**\n * Causes the scrollbars not to turn transparent when they are not in use.\n * The default value is false.\n *\n * @platform android\n */\n persistentScrollbar?: ?boolean,\n /**\n * Fades out the edges of the scroll content.\n *\n * If the value is greater than 0, the fading edges will be set accordingly\n * to the current scroll direction and position,\n * indicating if there is more content to show.\n *\n * The default value is 0.\n *\n * @platform android\n */\n fadingEdgeLength?: ?number,\n|}>;\n\ntype StickyHeaderComponentType = React.AbstractComponent<\n ScrollViewStickyHeaderProps,\n $ReadOnly<interface {setNextHeaderY: number => void}>,\n>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * These styles will be applied to the scroll view content container which\n * wraps all of the child views. Example:\n *\n * ```\n * return (\n * <ScrollView contentContainerStyle={styles.contentContainer}>\n * </ScrollView>\n * );\n * ...\n * const styles = StyleSheet.create({\n * contentContainer: {\n * paddingVertical: 20\n * }\n * });\n * ```\n */\n contentContainerStyle?: ?ViewStyleProp,\n /**\n * Used to manually set the starting scroll offset.\n * The default value is `{x: 0, y: 0}`.\n */\n contentOffset?: ?PointProp,\n /**\n * When true, the scroll view stops on the next index (in relation to scroll\n * position at release) regardless of how fast the gesture is. This can be\n * used for pagination when the page is less than the width of the\n * horizontal ScrollView or the height of the vertical ScrollView. The default value is false.\n */\n disableIntervalMomentum?: ?boolean,\n /**\n * A floating-point number that determines how quickly the scroll view\n * decelerates after the user lifts their finger. You may also use string\n * shortcuts `\"normal\"` and `\"fast\"` which match the underlying iOS settings\n * for `UIScrollViewDecelerationRateNormal` and\n * `UIScrollViewDecelerationRateFast` respectively.\n *\n * - `'normal'`: 0.998 on iOS, 0.985 on Android (the default)\n * - `'fast'`: 0.99 on iOS, 0.9 on Android\n */\n decelerationRate?: ?DecelerationRateType,\n /**\n * When true, the scroll view's children are arranged horizontally in a row\n * instead of vertically in a column. The default value is false.\n */\n horizontal?: ?boolean,\n /**\n * If sticky headers should stick at the bottom instead of the top of the\n * ScrollView. This is usually used with inverted ScrollViews.\n */\n invertStickyHeaders?: ?boolean,\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n *\n * *Cross platform*\n *\n * - `'none'` (the default), drags do not dismiss the keyboard.\n * - `'on-drag'`, the keyboard is dismissed when a drag begins.\n *\n * *iOS Only*\n *\n * - `'interactive'`, the keyboard is dismissed interactively with the drag and moves in\n * synchrony with the touch; dragging upwards cancels the dismissal.\n * On android this is not supported and it will have the same behavior as 'none'.\n */\n keyboardDismissMode?: ?// default\n // cross-platform\n ('none' | 'on-drag' | 'interactive'), // ios only\n /**\n * Determines when the keyboard should stay visible after a tap.\n *\n * - `'never'` (the default), tapping outside of the focused text input when the keyboard\n * is up dismisses the keyboard. When this happens, children won't receive the tap.\n * - `'always'`, the keyboard will not dismiss automatically, and the scroll view will not\n * catch taps, but children of the scroll view can catch taps.\n * - `'handled'`, the keyboard will not dismiss automatically when the tap was handled by\n * a children, (or captured by an ancestor).\n * - `false`, deprecated, use 'never' instead\n * - `true`, deprecated, use 'always' instead\n */\n keyboardShouldPersistTaps?: ?('always' | 'never' | 'handled' | true | false),\n /**\n * Called when the momentum scroll starts (scroll which occurs as the ScrollView glides to a stop).\n */\n onMomentumScrollBegin?: ?(event: ScrollEvent) => void,\n /**\n * Called when the momentum scroll ends (scroll which occurs as the ScrollView glides to a stop).\n */\n onMomentumScrollEnd?: ?(event: ScrollEvent) => void,\n\n /**\n * Fires at most once per frame during scrolling. The frequency of the\n * events can be controlled using the `scrollEventThrottle` prop.\n */\n onScroll?: ?(event: ScrollEvent) => void,\n /**\n * Called when the user begins to drag the scroll view.\n */\n onScrollBeginDrag?: ?(event: ScrollEvent) => void,\n /**\n * Called when the user stops dragging the scroll view and it either stops\n * or begins to glide.\n */\n onScrollEndDrag?: ?(event: ScrollEvent) => void,\n /**\n * Called when scrollable content view of the ScrollView changes.\n *\n * Handler function is passed the content width and content height as parameters:\n * `(contentWidth, contentHeight)`\n *\n * It's implemented using onLayout handler attached to the content container\n * which this ScrollView renders.\n */\n onContentSizeChange?: (contentWidth: number, contentHeight: number) => void,\n onKeyboardDidShow?: (event: KeyboardEvent) => void,\n onKeyboardDidHide?: (event: KeyboardEvent) => void,\n onKeyboardWillShow?: (event: KeyboardEvent) => void,\n onKeyboardWillHide?: (event: KeyboardEvent) => void,\n /**\n * When true, the scroll view stops on multiples of the scroll view's size\n * when scrolling. This can be used for horizontal pagination. The default\n * value is false.\n *\n * Note: Vertical pagination is not supported on Android.\n */\n pagingEnabled?: ?boolean,\n\n /**\n * When false, the view cannot be scrolled via touch interaction.\n * The default value is true.\n *\n * Note that the view can always be scrolled by calling `scrollTo`.\n */\n scrollEnabled?: ?boolean,\n /**\n * When true, shows a vertical scroll indicator.\n * The default value is true.\n */\n showsVerticalScrollIndicator?: ?boolean,\n /**\n * When true, Sticky header is hidden when scrolling down, and dock at the top\n * when scrolling up\n */\n stickyHeaderHiddenOnScroll?: ?boolean,\n /**\n * An array of child indices determining which children get docked to the\n * top of the screen when scrolling. For example, passing\n * `stickyHeaderIndices={[0]}` will cause the first child to be fixed to the\n * top of the scroll view. This property is not supported in conjunction\n * with `horizontal={true}`.\n */\n stickyHeaderIndices?: ?$ReadOnlyArray<number>,\n /**\n * A React Component that will be used to render sticky headers.\n * To be used together with `stickyHeaderIndices` or with `SectionList`, defaults to `ScrollViewStickyHeader`.\n * You may need to set this if your sticky header uses custom transforms (eg. translation),\n * for example when you want your list to have an animated hidable header.\n */\n StickyHeaderComponent?: StickyHeaderComponentType,\n /**\n * When `snapToInterval` is set, `snapToAlignment` will define the relationship\n * of the snapping to the scroll view.\n *\n * - `'start'` (the default) will align the snap at the left (horizontal) or top (vertical)\n * - `'center'` will align the snap in the center\n * - `'end'` will align the snap at the right (horizontal) or bottom (vertical)\n */\n snapToAlignment?: ?('start' | 'center' | 'end'),\n /**\n * When set, causes the scroll view to stop at multiples of the value of\n * `snapToInterval`. This can be used for paginating through children\n * that have lengths smaller than the scroll view. Typically used in\n * combination with `snapToAlignment` and `decelerationRate=\"fast\"`.\n *\n * Overrides less configurable `pagingEnabled` prop.\n */\n snapToInterval?: ?number,\n /**\n * When set, causes the scroll view to stop at the defined offsets.\n * This can be used for paginating through variously sized children\n * that have lengths smaller than the scroll view. Typically used in\n * combination with `decelerationRate=\"fast\"`.\n *\n * Overrides less configurable `pagingEnabled` and `snapToInterval` props.\n */\n snapToOffsets?: ?$ReadOnlyArray<number>,\n /**\n * Use in conjunction with `snapToOffsets`. By default, the beginning\n * of the list counts as a snap offset. Set `snapToStart` to false to disable\n * this behavior and allow the list to scroll freely between its start and\n * the first `snapToOffsets` offset.\n * The default value is true.\n */\n snapToStart?: ?boolean,\n /**\n * Use in conjunction with `snapToOffsets`. By default, the end\n * of the list counts as a snap offset. Set `snapToEnd` to false to disable\n * this behavior and allow the list to scroll freely between its end and\n * the last `snapToOffsets` offset.\n * The default value is true.\n */\n snapToEnd?: ?boolean,\n /**\n * Experimental: When true, offscreen child views (whose `overflow` value is\n * `hidden`) are removed from their native backing superview when offscreen.\n * This can improve scrolling performance on long lists. The default value is\n * true.\n */\n removeClippedSubviews?: ?boolean,\n /**\n * A RefreshControl component, used to provide pull-to-refresh\n * functionality for the ScrollView. Only works for vertical ScrollViews\n * (`horizontal` prop must be `false`).\n *\n * See [RefreshControl](docs/refreshcontrol.html).\n */\n /* $FlowFixMe[unclear-type] - how to handle generic type without existential\n * operator? */\n refreshControl?: ?React.Element<any>,\n children?: React.Node,\n /**\n * A ref to the inner View element of the ScrollView. This should be used\n * instead of calling `getInnerViewRef`.\n */\n innerViewRef?: React.Ref<typeof View>,\n /**\n * A ref to the Native ScrollView component. This ref can be used to call\n * all of ScrollView's public methods, in addition to native methods like\n * measure, measureLayout, etc.\n */\n scrollViewRef?: React.Ref<\n typeof ScrollViewNativeComponent & ScrollViewImperativeMethods,\n >,\n|}>;\n\ntype State = {|\n layoutHeight: ?number,\n|};\n\nconst IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\n\nexport type ScrollViewComponentStatics = $ReadOnly<{|\n Context: typeof ScrollViewContext,\n|}>;\n\n/**\n * Component that wraps platform ScrollView while providing\n * integration with touch locking \"responder\" system.\n *\n * Keep in mind that ScrollViews must have a bounded height in order to work,\n * since they contain unbounded-height children into a bounded container (via\n * a scroll interaction). In order to bound the height of a ScrollView, either\n * set the height of the view directly (discouraged) or make sure all parent\n * views have bounded height. Forgetting to transfer `{flex: 1}` down the\n * view stack can lead to errors here, which the element inspector makes\n * easy to debug.\n *\n * Doesn't yet support other contained responders from blocking this scroll\n * view from becoming the responder.\n *\n *\n * `<ScrollView>` vs [`<FlatList>`](https://reactnative.dev/docs/flatlist) - which one to use?\n *\n * `ScrollView` simply renders all its react child components at once. That\n * makes it very easy to understand and use.\n *\n * On the other hand, this has a performance downside. Imagine you have a very\n * long list of items you want to display, maybe several screens worth of\n * content. Creating JS components and native views for everything all at once,\n * much of which may not even be shown, will contribute to slow rendering and\n * increased memory usage.\n *\n * This is where `FlatList` comes into play. `FlatList` renders items lazily,\n * just when they are about to appear, and removes items that scroll way off\n * screen to save memory and processing time.\n *\n * `FlatList` is also handy if you want to render separators between your items,\n * multiple columns, infinite scroll loading, or any number of other features it\n * supports out of the box.\n */\nclass ScrollView extends React.Component<Props, State> {\n static Context: typeof ScrollViewContext = ScrollViewContext;\n\n constructor(props: Props) {\n super(props);\n\n this._scrollAnimatedValue = new AnimatedImplementation.Value(\n this.props.contentOffset?.y ?? 0,\n );\n this._scrollAnimatedValue.setOffset(this.props.contentInset?.top ?? 0);\n }\n\n _scrollAnimatedValue: AnimatedImplementation.Value;\n _scrollAnimatedValueAttachment: ?{detach: () => void, ...} = null;\n _stickyHeaderRefs: Map<string, React.ElementRef<StickyHeaderComponentType>> =\n new Map();\n _headerLayoutYs: Map<string, number> = new Map();\n\n _keyboardMetrics: ?KeyboardMetrics = null;\n _additionalScrollOffset: number = 0;\n _isTouching: boolean = false;\n _lastMomentumScrollBeginTime: number = 0;\n _lastMomentumScrollEndTime: number = 0;\n\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (this.props.keyboardShouldPersistTaps !== 'always').\n _observedScrollSinceBecomingResponder: boolean = false;\n _becameResponderWhileAnimating: boolean = false;\n _preventNegativeScrollOffset: ?boolean = null;\n\n _animated = null;\n\n _subscriptionKeyboardWillShow: ?EventSubscription = null;\n _subscriptionKeyboardWillHide: ?EventSubscription = null;\n _subscriptionKeyboardDidShow: ?EventSubscription = null;\n _subscriptionKeyboardDidHide: ?EventSubscription = null;\n\n state: State = {\n layoutHeight: null,\n };\n\n componentDidMount() {\n if (typeof this.props.keyboardShouldPersistTaps === 'boolean') {\n console.warn(\n `'keyboardShouldPersistTaps={${\n this.props.keyboardShouldPersistTaps === true ? 'true' : 'false'\n }}' is deprecated. ` +\n `Use 'keyboardShouldPersistTaps=\"${\n this.props.keyboardShouldPersistTaps ? 'always' : 'never'\n }\"' instead`,\n );\n }\n\n this._keyboardMetrics = Keyboard.metrics();\n this._additionalScrollOffset = 0;\n\n this._subscriptionKeyboardWillShow = Keyboard.addListener(\n 'keyboardWillShow',\n this.scrollResponderKeyboardWillShow,\n );\n this._subscriptionKeyboardWillHide = Keyboard.addListener(\n 'keyboardWillHide',\n this.scrollResponderKeyboardWillHide,\n );\n this._subscriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n this.scrollResponderKeyboardDidShow,\n );\n this._subscriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n this.scrollResponderKeyboardDidHide,\n );\n\n this._updateAnimatedNodeAttachment();\n }\n\n componentDidUpdate(prevProps: Props) {\n const prevContentInsetTop = prevProps.contentInset\n ? prevProps.contentInset.top\n : 0;\n const newContentInsetTop = this.props.contentInset\n ? this.props.contentInset.top\n : 0;\n if (prevContentInsetTop !== newContentInsetTop) {\n this._scrollAnimatedValue.setOffset(newContentInsetTop || 0);\n }\n\n this._updateAnimatedNodeAttachment();\n }\n\n componentWillUnmount() {\n if (this._subscriptionKeyboardWillShow != null) {\n this._subscriptionKeyboardWillShow.remove();\n }\n if (this._subscriptionKeyboardWillHide != null) {\n this._subscriptionKeyboardWillHide.remove();\n }\n if (this._subscriptionKeyboardDidShow != null) {\n this._subscriptionKeyboardDidShow.remove();\n }\n if (this._subscriptionKeyboardDidHide != null) {\n this._subscriptionKeyboardDidHide.remove();\n }\n\n if (this._scrollAnimatedValueAttachment) {\n this._scrollAnimatedValueAttachment.detach();\n }\n }\n\n _setNativeRef: $FlowFixMe = setAndForwardRef({\n getForwardedRef: () => this.props.scrollViewRef,\n setLocalRef: ref => {\n this._scrollViewRef = ref;\n\n /*\n This is a hack. Ideally we would forwardRef to the underlying\n host component. However, since ScrollView has it's own methods that can be\n called as well, if we used the standard forwardRef then these\n methods wouldn't be accessible and thus be a breaking change.\n\n Therefore we edit ref to include ScrollView's public methods so that\n they are callable from the ref.\n */\n if (ref) {\n ref.getScrollResponder = this.getScrollResponder;\n ref.getScrollableNode = this.getScrollableNode;\n ref.getInnerViewNode = this.getInnerViewNode;\n ref.getInnerViewRef = this.getInnerViewRef;\n ref.getNativeScrollRef = this.getNativeScrollRef;\n ref.scrollTo = this.scrollTo;\n ref.scrollToEnd = this.scrollToEnd;\n ref.flashScrollIndicators = this.flashScrollIndicators;\n ref.scrollResponderZoomTo = this.scrollResponderZoomTo;\n ref.scrollResponderScrollNativeHandleToKeyboard =\n this.scrollResponderScrollNativeHandleToKeyboard;\n }\n },\n });\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder: () => ScrollResponderType = () => {\n // $FlowFixMe[unclear-type]\n return ((this: any): ScrollResponderType);\n };\n\n getScrollableNode: () => ?number = () => {\n return findNodeHandle(this._scrollViewRef);\n };\n\n getInnerViewNode: () => ?number = () => {\n return findNodeHandle(this._innerViewRef);\n };\n\n getInnerViewRef: () => ?React.ElementRef<typeof View> = () => {\n return this._innerViewRef;\n };\n\n getNativeScrollRef: () => ?React.ElementRef<HostComponent<mixed>> = () => {\n return this._scrollViewRef;\n };\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n *\n * Example:\n *\n * `scrollTo({x: 0, y: 0, animated: true})`\n *\n * Note: The weird function signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as an alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo: (\n options?:\n | {\n x?: number,\n y?: number,\n animated?: boolean,\n ...\n }\n | number,\n deprecatedX?: number,\n deprecatedAnimated?: boolean,\n ) => void = (\n options?:\n | {\n x?: number,\n y?: number,\n animated?: boolean,\n ...\n }\n | number,\n deprecatedX?: number,\n deprecatedAnimated?: boolean,\n ) => {\n let x, y, animated;\n if (typeof options === 'number') {\n console.warn(\n '`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, ' +\n 'animated: true})` instead.',\n );\n y = options;\n x = deprecatedX;\n animated = deprecatedAnimated;\n } else if (options) {\n y = options.y;\n x = options.x;\n animated = options.animated;\n }\n if (this._scrollViewRef == null) {\n return;\n }\n Commands.scrollTo(this._scrollViewRef, x || 0, y || 0, animated !== false);\n };\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({animated: true})` for smooth animated scrolling,\n * `scrollToEnd({animated: false})` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd: (options?: ?{animated?: boolean, ...}) => void = (\n options?: ?{animated?: boolean, ...},\n ) => {\n // Default to true\n const animated = (options && options.animated) !== false;\n if (this._scrollViewRef == null) {\n return;\n }\n Commands.scrollToEnd(this._scrollViewRef, animated);\n };\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators: () => void = () => {\n if (this._scrollViewRef == null) {\n return;\n }\n Commands.flashScrollIndicators(this._scrollViewRef);\n };\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {number} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's bottom \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: <T>(\n nodeHandle: number | React.ElementRef<HostComponent<T>>,\n additionalOffset?: number,\n preventNegativeScrollOffset?: boolean,\n ) => void = <T>(\n nodeHandle: number | React.ElementRef<HostComponent<T>>,\n additionalOffset?: number,\n preventNegativeScrollOffset?: boolean,\n ) => {\n this._additionalScrollOffset = additionalOffset || 0;\n this._preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n\n if (this._innerViewRef == null) {\n return;\n }\n\n if (typeof nodeHandle === 'number') {\n UIManager.measureLayout(\n nodeHandle,\n findNodeHandle(this),\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._textInputFocusError,\n this._inputMeasureAndScrollToKeyboard,\n );\n } else {\n nodeHandle.measureLayout(\n this._innerViewRef,\n this._inputMeasureAndScrollToKeyboard,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._textInputFocusError,\n );\n }\n };\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: (\n rect: {|\n x: number,\n y: number,\n width: number,\n height: number,\n animated?: boolean,\n |},\n animated?: boolean, // deprecated, put this inside the rect argument instead\n ) => void = (\n rect: {|\n x: number,\n y: number,\n width: number,\n height: number,\n animated?: boolean,\n |},\n animated?: boolean, // deprecated, put this inside the rect argument instead\n ) => {\n invariant(Platform.OS === 'ios', 'zoomToRect is not implemented');\n if ('animated' in rect) {\n this._animated = rect.animated;\n delete rect.animated;\n } else if (typeof animated !== 'undefined') {\n console.warn(\n '`scrollResponderZoomTo` `animated` argument is deprecated. Use `options.animated` instead',\n );\n }\n\n if (this._scrollViewRef == null) {\n return;\n }\n Commands.zoomToRect(this._scrollViewRef, rect, animated !== false);\n };\n\n _textInputFocusError() {\n console.warn('Error measuring text field.');\n }\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n _inputMeasureAndScrollToKeyboard: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void = (left: number, top: number, width: number, height: number) => {\n let keyboardScreenY = Dimensions.get('window').height;\n\n const scrollTextInputIntoVisibleRect = () => {\n if (this._keyboardMetrics != null) {\n keyboardScreenY = this._keyboardMetrics.screenY;\n }\n let scrollOffsetY =\n top - keyboardScreenY + height + this._additionalScrollOffset;\n\n // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n if (this._preventNegativeScrollOffset === true) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n this.scrollTo({x: 0, y: scrollOffsetY, animated: true});\n\n this._additionalScrollOffset = 0;\n this._preventNegativeScrollOffset = false;\n };\n\n if (this._keyboardMetrics == null) {\n // `_keyboardMetrics` is set inside `scrollResponderKeyboardWillShow` which\n // is not guaranteed to be called before `_inputMeasureAndScrollToKeyboard` but native has already scheduled it.\n // In case it was not called before `_inputMeasureAndScrollToKeyboard`, we postpone scrolling to\n // text input.\n setTimeout(() => {\n scrollTextInputIntoVisibleRect();\n }, 0);\n } else {\n scrollTextInputIntoVisibleRect();\n }\n };\n\n _getKeyForIndex(index: $FlowFixMe, childArray: $FlowFixMe): $FlowFixMe {\n const child = childArray[index];\n return child && child.key;\n }\n\n _updateAnimatedNodeAttachment() {\n if (this._scrollAnimatedValueAttachment) {\n this._scrollAnimatedValueAttachment.detach();\n }\n if (\n this.props.stickyHeaderIndices &&\n this.props.stickyHeaderIndices.length > 0\n ) {\n this._scrollAnimatedValueAttachment =\n AnimatedImplementation.attachNativeEvent(\n this._scrollViewRef,\n 'onScroll',\n [{nativeEvent: {contentOffset: {y: this._scrollAnimatedValue}}}],\n );\n }\n }\n\n _setStickyHeaderRef(\n key: string,\n ref: ?React.ElementRef<StickyHeaderComponentType>,\n ) {\n if (ref) {\n this._stickyHeaderRefs.set(key, ref);\n } else {\n this._stickyHeaderRefs.delete(key);\n }\n }\n\n _onStickyHeaderLayout(index: $FlowFixMe, event: $FlowFixMe, key: $FlowFixMe) {\n const {stickyHeaderIndices} = this.props;\n if (!stickyHeaderIndices) {\n return;\n }\n const childArray = React.Children.toArray(this.props.children);\n if (key !== this._getKeyForIndex(index, childArray)) {\n // ignore stale layout update\n return;\n }\n\n const layoutY = event.nativeEvent.layout.y;\n this._headerLayoutYs.set(key, layoutY);\n\n const indexOfIndex = stickyHeaderIndices.indexOf(index);\n const previousHeaderIndex = stickyHeaderIndices[indexOfIndex - 1];\n if (previousHeaderIndex != null) {\n const previousHeader = this._stickyHeaderRefs.get(\n this._getKeyForIndex(previousHeaderIndex, childArray),\n );\n previousHeader &&\n previousHeader.setNextHeaderY &&\n previousHeader.setNextHeaderY(layoutY);\n }\n }\n\n _handleScroll = (e: ScrollEvent) => {\n if (__DEV__) {\n if (\n this.props.onScroll &&\n this.props.scrollEventThrottle == null &&\n Platform.OS === 'ios'\n ) {\n console.log(\n 'You specified `onScroll` on a <ScrollView> but not ' +\n '`scrollEventThrottle`. You will only receive one event. ' +\n 'Using `16` you get all the events but be aware that it may ' +\n \"cause frame drops, use a bigger number if you don't need as \" +\n 'much precision.',\n );\n }\n }\n this._observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n };\n\n _handleLayout = (e: LayoutEvent) => {\n if (this.props.invertStickyHeaders === true) {\n this.setState({layoutHeight: e.nativeEvent.layout.height});\n }\n if (this.props.onLayout) {\n this.props.onLayout(e);\n }\n };\n\n _handleContentOnLayout = (e: LayoutEvent) => {\n const {width, height} = e.nativeEvent.layout;\n this.props.onContentSizeChange &&\n this.props.onContentSizeChange(width, height);\n };\n\n _scrollViewRef: ?React.ElementRef<HostComponent<mixed>> = null;\n\n _innerViewRef: ?React.ElementRef<typeof View> = null;\n _setInnerViewRef: $FlowFixMe = setAndForwardRef({\n getForwardedRef: () => this.props.innerViewRef,\n setLocalRef: ref => {\n this._innerViewRef = ref;\n },\n });\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` module callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n\n scrollResponderKeyboardWillShow: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = e.endCoordinates;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n };\n\n scrollResponderKeyboardWillHide: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n };\n\n scrollResponderKeyboardDidShow: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = e.endCoordinates;\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n };\n\n scrollResponderKeyboardDidHide: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n };\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n _handleMomentumScrollBegin: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n this._lastMomentumScrollBeginTime = global.performance.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n _handleMomentumScrollEnd: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n FrameRateLogger.endScroll();\n this._lastMomentumScrollEndTime = global.performance.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n _handleScrollBeginDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n FrameRateLogger.beginScroll(); // TODO: track all scrolls after implementing onScrollEndAnimation\n\n if (\n Platform.OS === 'android' &&\n this.props.keyboardDismissMode === 'on-drag'\n ) {\n dismissKeyboard();\n }\n\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n _handleScrollEndDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n const {velocity} = e.nativeEvent;\n // - If we are animating, then this is a \"drag\" that is stopping the scrollview and momentum end\n // will fire.\n // - If velocity is non-zero, then the interaction will stop when momentum scroll ends or\n // another drag starts and ends.\n // - If we don't get velocity, better to stop the interaction twice than not stop it.\n if (\n !this._isAnimating() &&\n (!velocity || (velocity.x === 0 && velocity.y === 0))\n ) {\n FrameRateLogger.endScroll();\n }\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n _isAnimating: () => boolean = () => {\n const now = global.performance.now();\n const timeSinceLastMomentumScrollEnd =\n now - this._lastMomentumScrollEndTime;\n const isAnimating =\n timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS ||\n this._lastMomentumScrollEndTime < this._lastMomentumScrollBeginTime;\n return isAnimating;\n };\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n _handleResponderGrant: (e: PressEvent) => void = (e: PressEvent) => {\n this._observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this._becameResponderWhileAnimating = this._isAnimating();\n };\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n _handleResponderReject: () => void = () => {};\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n _handleResponderRelease: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = e.nativeEvent.touches.length !== 0;\n this.props.onResponderRelease && this.props.onResponderRelease(e);\n\n if (typeof e.target === 'number') {\n if (__DEV__) {\n console.error(\n 'Did not expect event target to be a number. Should have been a native component',\n );\n }\n\n return;\n }\n\n // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();\n if (\n currentlyFocusedTextInput != null &&\n this.props.keyboardShouldPersistTaps !== true &&\n this.props.keyboardShouldPersistTaps !== 'always' &&\n this._keyboardIsDismissible() &&\n e.target !== currentlyFocusedTextInput &&\n !this._observedScrollSinceBecomingResponder &&\n !this._becameResponderWhileAnimating\n ) {\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n };\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n _handleResponderTerminationRequest: () => boolean = () => {\n return !this._observedScrollSinceBecomingResponder;\n };\n\n /**\n * Invoke this from an `onScroll` event.\n */\n _handleScrollShouldSetResponder: () => boolean = () => {\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n return this._isTouching;\n };\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n _handleStartShouldSetResponder: (e: PressEvent) => boolean = (\n e: PressEvent,\n ) => {\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n\n const currentlyFocusedInput = TextInputState.currentlyFocusedInput();\n if (\n this.props.keyboardShouldPersistTaps === 'handled' &&\n this._keyboardIsDismissible() &&\n e.target !== currentlyFocusedInput\n ) {\n return true;\n }\n return false;\n };\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not a text input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n _handleStartShouldSetResponderCapture: (e: PressEvent) => boolean = (\n e: PressEvent,\n ) => {\n // The scroll view should receive taps instead of its descendants if:\n // * it is already animating/decelerating\n if (this._isAnimating()) {\n return true;\n }\n\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n\n // * the keyboard is up, keyboardShouldPersistTaps is 'never' (the default),\n // and a new touch starts with a non-textinput target (in which case the\n // first tap should be sent to the scroll view and dismiss the keyboard,\n // then the second tap goes to the actual interior view)\n const {keyboardShouldPersistTaps} = this.props;\n const keyboardNeverPersistTaps =\n !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';\n\n if (typeof e.target === 'number') {\n if (__DEV__) {\n console.error(\n 'Did not expect event target to be a number. Should have been a native component',\n );\n }\n\n return false;\n }\n\n // Let presses through if the soft keyboard is detached from the viewport\n if (this._softKeyboardIsDetached()) {\n return false;\n }\n\n if (\n keyboardNeverPersistTaps &&\n this._keyboardIsDismissible() &&\n e.target != null &&\n // $FlowFixMe[incompatible-call]\n !TextInputState.isTextInput(e.target)\n ) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Do we consider there to be a dismissible soft-keyboard open?\n */\n _keyboardIsDismissible: () => boolean = () => {\n const currentlyFocusedInput = TextInputState.currentlyFocusedInput();\n\n // We cannot dismiss the keyboard without an input to blur, even if a soft\n // keyboard is open (e.g. when keyboard is open due to a native component\n // not participating in TextInputState). It's also possible that the\n // currently focused input isn't a TextInput (such as by calling ref.focus\n // on a non-TextInput).\n const hasFocusedTextInput =\n currentlyFocusedInput != null &&\n TextInputState.isTextInput(currentlyFocusedInput);\n\n // Even if an input is focused, we may not have a keyboard to dismiss. E.g\n // when using a physical keyboard. Ensure we have an event for an opened\n // keyboard.\n const softKeyboardMayBeOpen =\n this._keyboardMetrics != null || this._keyboardEventsAreUnreliable();\n\n return hasFocusedTextInput && softKeyboardMayBeOpen;\n };\n\n /**\n * Whether an open soft keyboard is present which does not overlap the\n * viewport. E.g. for a VR soft-keyboard which is detached from the app\n * viewport.\n */\n _softKeyboardIsDetached: () => boolean = () => {\n return this._keyboardMetrics != null && this._keyboardMetrics.height === 0;\n };\n\n _keyboardEventsAreUnreliable: () => boolean = () => {\n // Android versions prior to API 30 rely on observing layout changes when\n // `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.\n return Platform.OS === 'android' && Platform.Version < 30;\n };\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {PressEvent} e Event.\n */\n _handleTouchEnd: (e: PressEvent) => void = (e: PressEvent) => {\n const nativeEvent = e.nativeEvent;\n this._isTouching = nativeEvent.touches.length !== 0;\n\n const {keyboardShouldPersistTaps} = this.props;\n const keyboardNeverPersistsTaps =\n !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';\n\n // Dismiss the keyboard now if we didn't become responder in capture phase\n // to eat presses, but still want to dismiss on interaction.\n // Don't do anything if the target of the touch event is the current input.\n const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();\n if (\n currentlyFocusedTextInput != null &&\n e.target !== currentlyFocusedTextInput &&\n this._softKeyboardIsDetached() &&\n this._keyboardIsDismissible() &&\n keyboardNeverPersistsTaps\n ) {\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n };\n\n /**\n * Invoke this from an `onTouchCancel` event.\n *\n * @param {PressEvent} e Event.\n */\n _handleTouchCancel: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = false;\n this.props.onTouchCancel && this.props.onTouchCancel(e);\n };\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {PressEvent} e Touch Start event.\n */\n _handleTouchStart: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n };\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {PressEvent} e Touch Start event.\n */\n _handleTouchMove: (e: PressEvent) => void = (e: PressEvent) => {\n this.props.onTouchMove && this.props.onTouchMove(e);\n };\n\n render(): React.Node | React.Element<string> {\n const [NativeDirectionalScrollView, NativeDirectionalScrollContentView] =\n this.props.horizontal === true\n ? NativeHorizontalScrollViewTuple\n : NativeVerticalScrollViewTuple;\n\n const contentContainerStyle = [\n this.props.horizontal === true && styles.contentContainerHorizontal,\n this.props.contentContainerStyle,\n ];\n if (__DEV__ && this.props.style !== undefined) {\n const style = flattenStyle(this.props.style);\n const childLayoutProps = ['alignItems', 'justifyContent'].filter(\n prop => style && style[prop] !== undefined,\n );\n invariant(\n childLayoutProps.length === 0,\n 'ScrollView child layout (' +\n JSON.stringify(childLayoutProps) +\n ') must be applied through the contentContainerStyle prop.',\n );\n }\n\n const contentSizeChangeProps =\n this.props.onContentSizeChange == null\n ? null\n : {\n onLayout: this._handleContentOnLayout,\n };\n\n const {stickyHeaderIndices} = this.props;\n let children = this.props.children;\n\n if (stickyHeaderIndices != null && stickyHeaderIndices.length > 0) {\n const childArray = React.Children.toArray(this.props.children);\n\n children = childArray.map((child, index) => {\n const indexOfIndex = child ? stickyHeaderIndices.indexOf(index) : -1;\n if (indexOfIndex > -1) {\n const key = child.key;\n const nextIndex = stickyHeaderIndices[indexOfIndex + 1];\n const StickyHeaderComponent =\n this.props.StickyHeaderComponent || ScrollViewStickyHeader;\n return (\n <StickyHeaderComponent\n key={key}\n nativeID={'StickyHeader-' + key} /* TODO: T68258846. */\n ref={ref => this._setStickyHeaderRef(key, ref)}\n nextHeaderLayoutY={this._headerLayoutYs.get(\n this._getKeyForIndex(nextIndex, childArray),\n )}\n onLayout={event => this._onStickyHeaderLayout(index, event, key)}\n scrollAnimatedValue={this._scrollAnimatedValue}\n inverted={this.props.invertStickyHeaders}\n hiddenOnScroll={this.props.stickyHeaderHiddenOnScroll}\n scrollViewHeight={this.state.layoutHeight}>\n {child}\n </StickyHeaderComponent>\n );\n } else {\n return child;\n }\n });\n }\n children = (\n <ScrollViewContext.Provider\n value={this.props.horizontal === true ? HORIZONTAL : VERTICAL}>\n {children}\n </ScrollViewContext.Provider>\n );\n\n const hasStickyHeaders =\n Array.isArray(stickyHeaderIndices) && stickyHeaderIndices.length > 0;\n\n const contentContainer = (\n <NativeDirectionalScrollContentView\n {...contentSizeChangeProps}\n ref={this._setInnerViewRef}\n style={contentContainerStyle}\n removeClippedSubviews={\n // Subview clipping causes issues with sticky headers on Android and\n // would be hard to fix properly in a performant way.\n Platform.OS === 'android' && hasStickyHeaders\n ? false\n : this.props.removeClippedSubviews\n }\n collapsable={false}>\n {children}\n </NativeDirectionalScrollContentView>\n );\n\n const alwaysBounceHorizontal =\n this.props.alwaysBounceHorizontal !== undefined\n ? this.props.alwaysBounceHorizontal\n : this.props.horizontal;\n\n const alwaysBounceVertical =\n this.props.alwaysBounceVertical !== undefined\n ? this.props.alwaysBounceVertical\n : !this.props.horizontal;\n\n const baseStyle =\n this.props.horizontal === true\n ? styles.baseHorizontal\n : styles.baseVertical;\n const props = {\n ...this.props,\n alwaysBounceHorizontal,\n alwaysBounceVertical,\n style: StyleSheet.compose(baseStyle, this.props.style),\n // Override the onContentSizeChange from props, since this event can\n // bubble up from TextInputs\n onContentSizeChange: null,\n onLayout: this._handleLayout,\n onMomentumScrollBegin: this._handleMomentumScrollBegin,\n onMomentumScrollEnd: this._handleMomentumScrollEnd,\n onResponderGrant: this._handleResponderGrant,\n onResponderReject: this._handleResponderReject,\n onResponderRelease: this._handleResponderRelease,\n onResponderTerminationRequest: this._handleResponderTerminationRequest,\n onScrollBeginDrag: this._handleScrollBeginDrag,\n onScrollEndDrag: this._handleScrollEndDrag,\n onScrollShouldSetResponder: this._handleScrollShouldSetResponder,\n onStartShouldSetResponder: this._handleStartShouldSetResponder,\n onStartShouldSetResponderCapture:\n this._handleStartShouldSetResponderCapture,\n onTouchEnd: this._handleTouchEnd,\n onTouchMove: this._handleTouchMove,\n onTouchStart: this._handleTouchStart,\n onTouchCancel: this._handleTouchCancel,\n onScroll: this._handleScroll,\n scrollEventThrottle: hasStickyHeaders\n ? 1\n : this.props.scrollEventThrottle,\n sendMomentumEvents:\n this.props.onMomentumScrollBegin || this.props.onMomentumScrollEnd\n ? true\n : false,\n // default to true\n snapToStart: this.props.snapToStart !== false,\n // default to true\n snapToEnd: this.props.snapToEnd !== false,\n // pagingEnabled is overridden by snapToInterval / snapToOffsets\n pagingEnabled: Platform.select({\n // on iOS, pagingEnabled must be set to false to have snapToInterval / snapToOffsets work\n ios:\n this.props.pagingEnabled === true &&\n this.props.snapToInterval == null &&\n this.props.snapToOffsets == null,\n // on Android, pagingEnabled must be set to true to have snapToInterval / snapToOffsets work\n android:\n this.props.pagingEnabled === true ||\n this.props.snapToInterval != null ||\n this.props.snapToOffsets != null,\n }),\n };\n\n const {decelerationRate} = this.props;\n if (decelerationRate != null) {\n props.decelerationRate = processDecelerationRate(decelerationRate);\n }\n\n const refreshControl = this.props.refreshControl;\n\n if (refreshControl) {\n if (Platform.OS === 'ios') {\n // On iOS the RefreshControl is a child of the ScrollView.\n return (\n <NativeDirectionalScrollView {...props} ref={this._setNativeRef}>\n {refreshControl}\n {contentContainer}\n </NativeDirectionalScrollView>\n );\n } else if (Platform.OS === 'android') {\n // On Android wrap the ScrollView with a AndroidSwipeRefreshLayout.\n // Since the ScrollView is wrapped add the style props to the\n // AndroidSwipeRefreshLayout and use flex: 1 for the ScrollView.\n // Note: we should split props.style on the inner and outer props\n // however, the ScrollView still needs the baseStyle to be scrollable\n const {outer, inner} = splitLayoutProps(flattenStyle(props.style));\n return React.cloneElement(\n refreshControl,\n {style: StyleSheet.compose(baseStyle, outer)},\n <NativeDirectionalScrollView\n {...props}\n style={StyleSheet.compose(baseStyle, inner)}\n ref={this._setNativeRef}>\n {contentContainer}\n </NativeDirectionalScrollView>,\n );\n }\n }\n return (\n <NativeDirectionalScrollView {...props} ref={this._setNativeRef}>\n {contentContainer}\n </NativeDirectionalScrollView>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n baseVertical: {\n flexGrow: 1,\n flexShrink: 1,\n flexDirection: 'column',\n overflow: 'scroll',\n },\n baseHorizontal: {\n flexGrow: 1,\n flexShrink: 1,\n flexDirection: 'row',\n overflow: 'scroll',\n },\n contentContainerHorizontal: {\n flexDirection: 'row',\n },\n});\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction Wrapper(props, ref: (mixed => mixed) | {current: mixed, ...}) {\n return <ScrollView {...props} scrollViewRef={ref} />;\n}\nWrapper.displayName = 'ScrollView';\nconst ForwardedScrollView = React.forwardRef(Wrapper);\n\n// $FlowFixMe[prop-missing] Add static context to ForwardedScrollView\nForwardedScrollView.Context = ScrollViewContext;\n\nForwardedScrollView.displayName = 'ScrollView';\n\nmodule.exports = ((ForwardedScrollView: $FlowFixMe): React.AbstractComponent<\n React.ElementConfig<typeof ScrollView>,\n $ReadOnly<{|\n ...$Exact<React.ElementRef<HostComponent<mixed>>>,\n ...ScrollViewImperativeMethods,\n |}>,\n> &\n ScrollViewComponentStatics);\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 * @format\n * @flow strict-local\n */\n\nimport NativeFrameRateLogger from './NativeFrameRateLogger';\n\nconst invariant = require('invariant');\n\n/**\n * Flow API for native FrameRateLogger module. If the native module is not installed, function calls\n * are just no-ops.\n *\n * Typical behavior is that `setContext` is called when a new screen is loaded (e.g. via a\n * navigation integration), and then `beginScroll` is called by `ScrollResponder` at which point the\n * native module then begins tracking frame drops. When `ScrollResponder` calls `endScroll`, the\n * native module gathers up all it's frame drop data and reports it via an analytics pipeline for\n * analysis.\n *\n * Note that `beginScroll` may be called multiple times by `ScrollResponder` - unclear if that's a\n * bug, but the native module should be robust to that.\n *\n * In the future we may add support for tracking frame drops in other types of interactions beyond\n * scrolling.\n */\nconst FrameRateLogger = {\n /**\n * Enable `debug` to see local logs of what's going on. `reportStackTraces` will grab stack traces\n * during UI thread stalls and upload them if the native module supports it.\n */\n setGlobalOptions: function (options: {\n debug?: boolean,\n reportStackTraces?: boolean,\n ...\n }) {\n if (options.debug !== undefined) {\n invariant(\n NativeFrameRateLogger,\n 'Trying to debug FrameRateLogger without the native module!',\n );\n }\n if (NativeFrameRateLogger) {\n // Needs to clone the object first to avoid modifying the argument.\n const optionsClone = {\n debug: !!options.debug,\n reportStackTraces: !!options.reportStackTraces,\n };\n NativeFrameRateLogger.setGlobalOptions(optionsClone);\n }\n },\n\n /**\n * Must call `setContext` before any events can be properly tracked, which is done automatically\n * in `AppRegistry`, but navigation is also a common place to hook in.\n */\n setContext: function (context: string) {\n NativeFrameRateLogger && NativeFrameRateLogger.setContext(context);\n },\n\n /**\n * Called in `ScrollResponder` so any component that uses that module will handle this\n * automatically.\n */\n beginScroll() {\n NativeFrameRateLogger && NativeFrameRateLogger.beginScroll();\n },\n\n /**\n * Called in `ScrollResponder` so any component that uses that module will handle this\n * automatically.\n */\n endScroll() {\n NativeFrameRateLogger && NativeFrameRateLogger.endScroll();\n },\n};\n\nmodule.exports = FrameRateLogger;\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 * @format\n * @flow strict\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +setGlobalOptions: (options: {|\n +debug?: ?boolean,\n +reportStackTraces?: ?boolean,\n |}) => void;\n +setContext: (context: string) => void;\n +beginScroll: () => void;\n +endScroll: () => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('FrameRateLogger'): ?Spec);\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 strict-local\n * @format\n */\n\nimport type {____ViewStyle_Internal} from './StyleSheetTypes';\n\nexport default function splitLayoutProps(props: ?____ViewStyle_Internal): {\n outer: ?____ViewStyle_Internal,\n inner: ?____ViewStyle_Internal,\n} {\n let outer: ?____ViewStyle_Internal = null;\n let inner: ?____ViewStyle_Internal = null;\n\n if (props != null) {\n // $FlowIgnore[incompatible-exact] Will contain a subset of keys from `props`.\n outer = {};\n // $FlowIgnore[incompatible-exact] Will contain a subset of keys from `props`.\n inner = {};\n\n for (const prop of Object.keys(props)) {\n switch (prop) {\n case 'margin':\n case 'marginHorizontal':\n case 'marginVertical':\n case 'marginBottom':\n case 'marginTop':\n case 'marginLeft':\n case 'marginRight':\n case 'flex':\n case 'flexGrow':\n case 'flexShrink':\n case 'flexBasis':\n case 'alignSelf':\n case 'height':\n case 'minHeight':\n case 'maxHeight':\n case 'width':\n case 'minWidth':\n case 'maxWidth':\n case 'position':\n case 'left':\n case 'right':\n case 'bottom':\n case 'top':\n case 'transform':\n case 'rowGap':\n case 'columnGap':\n case 'gap':\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n outer[prop] = props[prop];\n break;\n default:\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n inner[prop] = props[prop];\n break;\n }\n }\n }\n\n return {outer, inner};\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 strict-local\n * @format\n */\n\n// This function dismisses the currently-open keyboard, if any.\n\n'use strict';\n\nconst TextInputState = require('../Components/TextInput/TextInputState');\n\nfunction dismissKeyboard() {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedInput());\n}\n\nmodule.exports = dismissKeyboard;\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 * @format\n * @flow strict-local\n */\n\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../../EventEmitter/NativeEventEmitter';\nimport LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport NativeKeyboardObserver from './NativeKeyboardObserver';\n\nexport type KeyboardEventName = $Keys<KeyboardEventDefinitions>;\n\nexport type KeyboardEventEasing =\n | 'easeIn'\n | 'easeInEaseOut'\n | 'easeOut'\n | 'linear'\n | 'keyboard';\n\nexport type KeyboardMetrics = $ReadOnly<{|\n screenX: number,\n screenY: number,\n width: number,\n height: number,\n|}>;\n\nexport type KeyboardEvent = AndroidKeyboardEvent | IOSKeyboardEvent;\n\ntype BaseKeyboardEvent = {|\n duration: number,\n easing: KeyboardEventEasing,\n endCoordinates: KeyboardMetrics,\n|};\n\nexport type AndroidKeyboardEvent = $ReadOnly<{|\n ...BaseKeyboardEvent,\n duration: 0,\n easing: 'keyboard',\n|}>;\n\nexport type IOSKeyboardEvent = $ReadOnly<{|\n ...BaseKeyboardEvent,\n startCoordinates: KeyboardMetrics,\n isEventFromThisApp: boolean,\n|}>;\n\ntype KeyboardEventDefinitions = {\n keyboardWillShow: [KeyboardEvent],\n keyboardDidShow: [KeyboardEvent],\n keyboardWillHide: [KeyboardEvent],\n keyboardDidHide: [KeyboardEvent],\n keyboardWillChangeFrame: [KeyboardEvent],\n keyboardDidChangeFrame: [KeyboardEvent],\n};\n\n/**\n * `Keyboard` module to control keyboard events.\n *\n * ### Usage\n *\n * The Keyboard module allows you to listen for native events and react to them, as\n * well as make changes to the keyboard, like dismissing it.\n *\n *```\n * import React, { Component } from 'react';\n * import { Keyboard, TextInput } from 'react-native';\n *\n * class Example extends Component {\n * componentWillMount () {\n * this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);\n * this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);\n * }\n *\n * componentWillUnmount () {\n * this.keyboardDidShowListener.remove();\n * this.keyboardDidHideListener.remove();\n * }\n *\n * _keyboardDidShow () {\n * alert('Keyboard Shown');\n * }\n *\n * _keyboardDidHide () {\n * alert('Keyboard Hidden');\n * }\n *\n * render() {\n * return (\n * <TextInput\n * onSubmitEditing={Keyboard.dismiss}\n * />\n * );\n * }\n * }\n *```\n */\n\nclass Keyboard {\n _currentlyShowing: ?KeyboardEvent;\n\n _emitter: NativeEventEmitter<KeyboardEventDefinitions> =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeKeyboardObserver,\n );\n\n constructor() {\n this.addListener('keyboardDidShow', ev => {\n this._currentlyShowing = ev;\n });\n this.addListener('keyboardDidHide', _ev => {\n this._currentlyShowing = null;\n });\n }\n\n /**\n * The `addListener` function connects a JavaScript function to an identified native\n * keyboard notification event.\n *\n * This function then returns the reference to the listener.\n *\n * @param {string} eventName The `nativeEvent` is the string that identifies the event you're listening for. This\n *can be any of the following:\n *\n * - `keyboardWillShow`\n * - `keyboardDidShow`\n * - `keyboardWillHide`\n * - `keyboardDidHide`\n * - `keyboardWillChangeFrame`\n * - `keyboardDidChangeFrame`\n *\n * Android versions prior to API 30 rely on observing layout changes when\n * `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.\n *\n * `keyboardWillShow` as well as `keyboardWillHide` are not available on Android since there is\n * no native corresponding event.\n *\n * @param {function} callback function to be called when the event fires.\n */\n addListener<K: $Keys<KeyboardEventDefinitions>>(\n eventType: K,\n listener: (...$ElementType<KeyboardEventDefinitions, K>) => mixed,\n context?: mixed,\n ): EventSubscription {\n return this._emitter.addListener(eventType, listener);\n }\n\n /**\n * Removes all listeners for a specific event type.\n *\n * @param {string} eventType The native event string listeners are watching which will be removed.\n */\n removeAllListeners<K: $Keys<KeyboardEventDefinitions>>(eventType: ?K): void {\n this._emitter.removeAllListeners(eventType);\n }\n\n /**\n * Dismisses the active keyboard and removes focus.\n */\n dismiss(): void {\n dismissKeyboard();\n }\n\n /**\n * Whether the keyboard is last known to be visible.\n */\n isVisible(): boolean {\n return !!this._currentlyShowing;\n }\n\n /**\n * Return the metrics of the soft-keyboard if visible.\n */\n metrics(): ?KeyboardMetrics {\n return this._currentlyShowing?.endCoordinates;\n }\n\n /**\n * Useful for syncing TextInput (or other keyboard accessory view) size of\n * position changes with keyboard movements.\n */\n scheduleLayoutAnimation(event: KeyboardEvent): void {\n const {duration, easing} = event;\n if (duration != null && duration !== 0) {\n LayoutAnimation.configureNext({\n duration: duration,\n update: {\n duration: duration,\n type: (easing != null && LayoutAnimation.Types[easing]) || 'keyboard',\n },\n });\n }\n }\n}\n\nmodule.exports = (new Keyboard(): Keyboard);\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 strict-local\n * @format\n */\n\n'use strict';\n\nimport type {Spec as FabricUIManagerSpec} from '../ReactNative/FabricUIManager';\nimport type {\n LayoutAnimationConfig as LayoutAnimationConfig_,\n LayoutAnimationProperty,\n LayoutAnimationType,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport Platform from '../Utilities/Platform';\n\nconst UIManager = require('../ReactNative/UIManager');\n\n// Reexport type\nexport type LayoutAnimationConfig = LayoutAnimationConfig_;\n\ntype OnAnimationDidEndCallback = () => void;\ntype OnAnimationDidFailCallback = () => void;\n\nlet isLayoutAnimationEnabled: boolean =\n ReactNativeFeatureFlags.isLayoutAnimationEnabled();\n\nfunction setEnabled(value: boolean) {\n isLayoutAnimationEnabled = isLayoutAnimationEnabled;\n}\n\n/**\n * Configures the next commit to be animated.\n *\n * onAnimationDidEnd is guaranteed to be called when the animation completes.\n * onAnimationDidFail is *never* called in the classic, pre-Fabric renderer,\n * and never has been. In the new renderer (Fabric) it is called only if configuration\n * parsing fails.\n */\nfunction configureNext(\n config: LayoutAnimationConfig,\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n onAnimationDidFail?: OnAnimationDidFailCallback,\n) {\n if (Platform.isTesting) {\n return;\n }\n\n if (!isLayoutAnimationEnabled) {\n return;\n }\n\n // Since LayoutAnimations may possibly be disabled for now on iOS (Fabric),\n // or Android (non-Fabric) we race a setTimeout with animation completion,\n // in case onComplete is never called\n // from native. Once LayoutAnimations+Fabric unconditionally ship everywhere, we can\n // delete this mechanism at least in the Fabric branch.\n let animationCompletionHasRun = false;\n const onAnimationComplete = () => {\n if (animationCompletionHasRun) {\n return;\n }\n animationCompletionHasRun = true;\n clearTimeout(raceWithAnimationId);\n onAnimationDidEnd?.();\n };\n const raceWithAnimationId = setTimeout(\n onAnimationComplete,\n (config.duration ?? 0) + 17 /* one frame + 1ms */,\n );\n\n // In Fabric, LayoutAnimations are unconditionally enabled for Android, and\n // conditionally enabled on iOS (pending fully shipping; this is a temporary state).\n const FabricUIManager: FabricUIManagerSpec = global?.nativeFabricUIManager;\n if (FabricUIManager?.configureNextLayoutAnimation) {\n global?.nativeFabricUIManager?.configureNextLayoutAnimation(\n config,\n onAnimationComplete,\n onAnimationDidFail ??\n function () {} /* this will only be called if configuration parsing fails */,\n );\n return;\n }\n\n // This will only run if Fabric is *not* installed.\n // If you have Fabric + non-Fabric running in the same VM, non-Fabric LayoutAnimations\n // will not work.\n if (UIManager?.configureNextLayoutAnimation) {\n UIManager.configureNextLayoutAnimation(\n config,\n onAnimationComplete ?? function () {},\n onAnimationDidFail ??\n function () {} /* this should never be called in Non-Fabric */,\n );\n }\n}\n\nfunction create(\n duration: number,\n type: LayoutAnimationType,\n property: LayoutAnimationProperty,\n): LayoutAnimationConfig {\n return {\n duration,\n create: {type, property},\n update: {type},\n delete: {type, property},\n };\n}\n\nconst Presets = {\n easeInEaseOut: (create(\n 300,\n 'easeInEaseOut',\n 'opacity',\n ): LayoutAnimationConfig),\n linear: (create(500, 'linear', 'opacity'): LayoutAnimationConfig),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity',\n },\n update: {\n type: 'spring',\n springDamping: 0.4,\n },\n delete: {\n type: 'linear',\n property: 'opacity',\n },\n },\n};\n\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\nconst LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext,\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard',\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY',\n }),\n checkConfig(...args: Array<mixed>) {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n Presets,\n easeInEaseOut: (configureNext.bind(null, Presets.easeInEaseOut): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n linear: (configureNext.bind(null, Presets.linear): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n spring: (configureNext.bind(null, Presets.spring): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n setEnabled,\n};\n\nmodule.exports = LayoutAnimation;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('KeyboardObserver'): ?Spec);\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n removeClippedSubviews?: ?boolean,\n|}>;\n\ntype NativeType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>(\n 'AndroidHorizontalScrollContentView',\n): NativeType);\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 strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'AndroidHorizontalScrollView',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {\n decelerationRate: true,\n disableIntervalMomentum: true,\n endFillColor: {process: require('../../StyleSheet/processColor')},\n fadingEdgeLength: true,\n nestedScrollEnabled: true,\n overScrollMode: true,\n pagingEnabled: true,\n persistentScrollbar: true,\n scrollEnabled: true,\n scrollPerfTag: true,\n sendMomentumEvents: true,\n showsHorizontalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToStart: true,\n snapToOffsets: true,\n contentOffset: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderRadius: true,\n borderStyle: true,\n borderRightColor: {process: require('../../StyleSheet/processColor')},\n borderColor: {process: require('../../StyleSheet/processColor')},\n borderBottomColor: {process: require('../../StyleSheet/processColor')},\n borderTopLeftRadius: true,\n borderTopColor: {process: require('../../StyleSheet/processColor')},\n removeClippedSubviews: true,\n borderTopRightRadius: true,\n borderLeftColor: {process: require('../../StyleSheet/processColor')},\n pointerEvents: true,\n },\n};\n\nconst AndroidHorizontalScrollViewNativeComponent: HostComponent<Props> =\n NativeComponentRegistry.get<Props>(\n 'AndroidHorizontalScrollView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default AndroidHorizontalScrollViewNativeComponent;\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 * @format\n * @flow strict-local\n */\n\nimport Platform from '../../Utilities/Platform';\n\nfunction processDecelerationRate(\n decelerationRate: number | 'normal' | 'fast',\n): number {\n if (decelerationRate === 'normal') {\n return Platform.select({\n ios: 0.998,\n android: 0.985,\n });\n } else if (decelerationRate === 'fast') {\n return Platform.select({\n ios: 0.99,\n android: 0.9,\n });\n }\n return decelerationRate;\n}\n\nmodule.exports = processDecelerationRate;\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 * @format\n * @flow\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps as Props} from '../View/ViewPropTypes';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTScrollContentView',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {},\n};\n\nconst ScrollContentViewNativeComponent: HostComponent<Props> =\n NativeComponentRegistry.get<Props>(\n 'RCTScrollContentView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ScrollContentViewNativeComponent;\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {Double} from '../../Types/CodegenTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport * as React from 'react';\n\ntype ScrollViewNativeComponentType = HostComponent<mixed>;\ninterface NativeCommands {\n +flashScrollIndicators: (\n viewRef: React.ElementRef<ScrollViewNativeComponentType>,\n ) => void;\n +scrollTo: (\n viewRef: React.ElementRef<ScrollViewNativeComponentType>,\n x: Double,\n y: Double,\n animated: boolean,\n ) => void;\n +scrollToEnd: (\n viewRef: React.ElementRef<ScrollViewNativeComponentType>,\n animated: boolean,\n ) => void;\n +zoomToRect: (\n viewRef: React.ElementRef<ScrollViewNativeComponentType>,\n rect: {|\n x: Double,\n y: Double,\n width: Double,\n height: Double,\n animated?: boolean,\n |},\n animated?: boolean,\n ) => void;\n}\n\nexport default (codegenNativeCommands<NativeCommands>({\n supportedCommands: [\n 'flashScrollIndicators',\n 'scrollTo',\n 'scrollToEnd',\n 'zoomToRect',\n ],\n}): NativeCommands);\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 strict\n * @format\n */\n\nimport * as React from 'react';\n\ntype Value = {horizontal: boolean} | null;\n\nconst ScrollViewContext: React.Context<Value> = React.createContext(null);\nif (__DEV__) {\n ScrollViewContext.displayName = 'ScrollViewContext';\n}\nexport default ScrollViewContext;\n\nexport const HORIZONTAL: Value = Object.freeze({horizontal: true});\nexport const VERTICAL: Value = Object.freeze({horizontal: false});\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 strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';\nimport Platform from '../../Utilities/Platform';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTScrollView',\n bubblingEventTypes: {},\n directEventTypes: {\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n },\n validAttributes: {\n contentOffset: {\n diff: require('../../Utilities/differ/pointsDiffer'),\n },\n decelerationRate: true,\n disableIntervalMomentum: true,\n pagingEnabled: true,\n scrollEnabled: true,\n showsVerticalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToOffsets: true,\n snapToStart: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n sendMomentumEvents: true,\n borderRadius: true,\n nestedScrollEnabled: true,\n borderStyle: true,\n borderRightColor: {process: require('../../StyleSheet/processColor')},\n borderColor: {process: require('../../StyleSheet/processColor')},\n borderBottomColor: {\n process: require('../../StyleSheet/processColor'),\n },\n persistentScrollbar: true,\n endFillColor: {process: require('../../StyleSheet/processColor')},\n fadingEdgeLength: true,\n overScrollMode: true,\n borderTopLeftRadius: true,\n scrollPerfTag: true,\n borderTopColor: {process: require('../../StyleSheet/processColor')},\n removeClippedSubviews: true,\n borderTopRightRadius: true,\n borderLeftColor: {process: require('../../StyleSheet/processColor')},\n pointerEvents: true,\n },\n }\n : {\n uiViewClassName: 'RCTScrollView',\n bubblingEventTypes: {},\n directEventTypes: {\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n topScrollToTop: {\n registrationName: 'onScrollToTop',\n },\n },\n validAttributes: {\n alwaysBounceHorizontal: true,\n alwaysBounceVertical: true,\n automaticallyAdjustContentInsets: true,\n automaticallyAdjustKeyboardInsets: true,\n automaticallyAdjustsScrollIndicatorInsets: true,\n bounces: true,\n bouncesZoom: true,\n canCancelContentTouches: true,\n centerContent: true,\n contentInset: {\n diff: require('../../Utilities/differ/insetsDiffer'),\n },\n contentOffset: {\n diff: require('../../Utilities/differ/pointsDiffer'),\n },\n contentInsetAdjustmentBehavior: true,\n decelerationRate: true,\n directionalLockEnabled: true,\n disableIntervalMomentum: true,\n indicatorStyle: true,\n inverted: true,\n keyboardDismissMode: true,\n maintainVisibleContentPosition: true,\n maximumZoomScale: true,\n minimumZoomScale: true,\n pagingEnabled: true,\n pinchGestureEnabled: true,\n scrollEnabled: true,\n scrollEventThrottle: true,\n scrollIndicatorInsets: {\n diff: require('../../Utilities/differ/insetsDiffer'),\n },\n scrollToOverflowEnabled: true,\n scrollsToTop: true,\n showsHorizontalScrollIndicator: true,\n showsVerticalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToOffsets: true,\n snapToStart: true,\n zoomScale: true,\n ...ConditionallyIgnoredEventHandlers({\n onScrollBeginDrag: true,\n onMomentumScrollEnd: true,\n onScrollEndDrag: true,\n onMomentumScrollBegin: true,\n onScrollToTop: true,\n onScroll: true,\n }),\n },\n };\n\nconst ScrollViewNativeComponent: HostComponent<Props> =\n NativeComponentRegistry.get<Props>(\n 'RCTScrollView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ScrollViewNativeComponent;\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 strict-local\n * @format\n */\n\nimport type {LayoutEvent} from '../../Types/CoreEventTypes';\n\nimport Animated from '../../Animated/Animated';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport * as React from 'react';\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nexport type Props = $ReadOnly<{\n children?: React.Element<$FlowFixMe>,\n nextHeaderLayoutY: ?number,\n onLayout: (event: LayoutEvent) => void,\n scrollAnimatedValue: Animated.Value,\n // Will cause sticky headers to stick at the bottom of the ScrollView instead\n // of the top.\n inverted: ?boolean,\n // The height of the parent ScrollView. Currently only set when inverted.\n scrollViewHeight: ?number,\n nativeID?: ?string,\n hiddenOnScroll?: ?boolean,\n}>;\n\ntype Instance = {\n ...React.ElementRef<typeof Animated.View>,\n setNextHeaderY: number => void,\n ...\n};\n\nconst ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<\n Props,\n Instance,\n> = React.forwardRef(function ScrollViewStickyHeader(props, forwardedRef) {\n const {\n inverted,\n scrollViewHeight,\n hiddenOnScroll,\n scrollAnimatedValue,\n nextHeaderLayoutY: _nextHeaderLayoutY,\n } = props;\n\n const [measured, setMeasured] = useState<boolean>(false);\n const [layoutY, setLayoutY] = useState<number>(0);\n const [layoutHeight, setLayoutHeight] = useState<number>(0);\n const [translateY, setTranslateY] = useState<?number>(null);\n const [nextHeaderLayoutY, setNextHeaderLayoutY] =\n useState<?number>(_nextHeaderLayoutY);\n const [isFabric, setIsFabric] = useState<boolean>(false);\n\n const callbackRef = (ref: Instance | null): void => {\n if (ref == null) {\n return;\n }\n ref.setNextHeaderY = value => {\n setNextHeaderLayoutY(value);\n };\n // Avoid dot notation because at Meta, private properties are obfuscated.\n // $FlowFixMe[prop-missing]\n const _internalInstanceHandler = ref['_internalInstanceHandle']; // eslint-disable-line dot-notation\n setIsFabric(Boolean(_internalInstanceHandler?.stateNode?.canonical));\n };\n const ref: (React.ElementRef<typeof Animated.View> | null) => void =\n // $FlowFixMe[incompatible-type] - Ref is mutated by `callbackRef`.\n useMergeRefs<Instance | null>(callbackRef, forwardedRef);\n\n const offset = useMemo(\n () =>\n hiddenOnScroll === true\n ? Animated.diffClamp(\n scrollAnimatedValue\n .interpolate({\n extrapolateLeft: 'clamp',\n inputRange: [layoutY, layoutY + 1],\n outputRange: ([0, 1]: Array<number>),\n })\n .interpolate({\n inputRange: [0, 1],\n outputRange: ([0, -1]: Array<number>),\n }),\n -layoutHeight,\n 0,\n )\n : null,\n [scrollAnimatedValue, layoutHeight, layoutY, hiddenOnScroll],\n );\n\n const [animatedTranslateY, setAnimatedTranslateY] = useState<Animated.Node>(\n () => {\n const inputRange: Array<number> = [-1, 0];\n const outputRange: Array<number> = [0, 0];\n const initialTranslateY = scrollAnimatedValue.interpolate({\n inputRange,\n outputRange,\n });\n\n if (offset != null) {\n return Animated.add(initialTranslateY, offset);\n }\n return initialTranslateY;\n },\n );\n\n const _haveReceivedInitialZeroTranslateY = useRef<boolean>(true);\n const _timer = useRef<?TimeoutID>(null);\n\n useEffect(() => {\n if (translateY !== 0 && translateY != null) {\n _haveReceivedInitialZeroTranslateY.current = false;\n }\n }, [translateY]);\n\n // This is called whenever the (Interpolated) Animated Value\n // updates, which is several times per frame during scrolling.\n // To ensure that the Fabric ShadowTree has the most recent\n // translate style of this node, we debounce the value and then\n // pass it through to the underlying node during render.\n // This is:\n // 1. Only an issue in Fabric.\n // 2. Worse in Android than iOS. In Android, but not iOS, you\n // can touch and move your finger slightly and still trigger\n // a \"tap\" event. In iOS, moving will cancel the tap in\n // both Fabric and non-Fabric. On Android when you move\n // your finger, the hit-detection moves from the Android\n // platform to JS, so we need the ShadowTree to have knowledge\n // of the current position.\n const animatedValueListener = useCallback(\n ({value}) => {\n const _debounceTimeout: number = Platform.OS === 'android' ? 15 : 64;\n // When the AnimatedInterpolation is recreated, it always initializes\n // to a value of zero and emits a value change of 0 to its listeners.\n if (value === 0 && !_haveReceivedInitialZeroTranslateY.current) {\n _haveReceivedInitialZeroTranslateY.current = true;\n return;\n }\n if (_timer.current != null) {\n clearTimeout(_timer.current);\n }\n _timer.current = setTimeout(() => {\n if (value !== translateY) {\n setTranslateY(value);\n }\n }, _debounceTimeout);\n },\n [translateY],\n );\n\n useEffect(() => {\n const inputRange: Array<number> = [-1, 0];\n const outputRange: Array<number> = [0, 0];\n\n if (measured) {\n if (inverted === true) {\n // The interpolation looks like:\n // - Negative scroll: no translation\n // - `stickStartPoint` is the point at which the header will start sticking.\n // It is calculated using the ScrollView viewport height so it is a the bottom.\n // - Headers that are in the initial viewport will never stick, `stickStartPoint`\n // will be negative.\n // - From 0 to `stickStartPoint` no translation. This will cause the header\n // to scroll normally until it reaches the top of the scroll view.\n // - From `stickStartPoint` to when the next header y hits the bottom edge of the header: translate\n // equally to scroll. This will cause the header to stay at the top of the scroll view.\n // - Past the collision with the next header y: no more translation. This will cause the\n // header to continue scrolling up and make room for the next sticky header.\n // In the case that there is no next header just translate equally to\n // scroll indefinitely.\n if (scrollViewHeight != null) {\n const stickStartPoint = layoutY + layoutHeight - scrollViewHeight;\n if (stickStartPoint > 0) {\n inputRange.push(stickStartPoint);\n outputRange.push(0);\n inputRange.push(stickStartPoint + 1);\n outputRange.push(1);\n // If the next sticky header has not loaded yet (probably windowing) or is the last\n // we can just keep it sticked forever.\n const collisionPoint =\n (nextHeaderLayoutY || 0) - layoutHeight - scrollViewHeight;\n if (collisionPoint > stickStartPoint) {\n inputRange.push(collisionPoint, collisionPoint + 1);\n outputRange.push(\n collisionPoint - stickStartPoint,\n collisionPoint - stickStartPoint,\n );\n }\n }\n }\n } else {\n // The interpolation looks like:\n // - Negative scroll: no translation\n // - From 0 to the y of the header: no translation. This will cause the header\n // to scroll normally until it reaches the top of the scroll view.\n // - From header y to when the next header y hits the bottom edge of the header: translate\n // equally to scroll. This will cause the header to stay at the top of the scroll view.\n // - Past the collision with the next header y: no more translation. This will cause the\n // header to continue scrolling up and make room for the next sticky header.\n // In the case that there is no next header just translate equally to\n // scroll indefinitely.\n inputRange.push(layoutY);\n outputRange.push(0);\n // If the next sticky header has not loaded yet (probably windowing) or is the last\n // we can just keep it sticked forever.\n const collisionPoint = (nextHeaderLayoutY || 0) - layoutHeight;\n if (collisionPoint >= layoutY) {\n inputRange.push(collisionPoint, collisionPoint + 1);\n outputRange.push(collisionPoint - layoutY, collisionPoint - layoutY);\n } else {\n inputRange.push(layoutY + 1);\n outputRange.push(1);\n }\n }\n }\n\n let newAnimatedTranslateY: Animated.Node = scrollAnimatedValue.interpolate({\n inputRange,\n outputRange,\n });\n\n if (offset != null) {\n newAnimatedTranslateY = Animated.add(newAnimatedTranslateY, offset);\n }\n\n // add the event listener\n let animatedListenerId;\n if (isFabric) {\n animatedListenerId = newAnimatedTranslateY.addListener(\n animatedValueListener,\n );\n }\n\n setAnimatedTranslateY(newAnimatedTranslateY);\n\n // clean up the event listener and timer\n return () => {\n if (animatedListenerId) {\n newAnimatedTranslateY.removeListener(animatedListenerId);\n }\n if (_timer.current != null) {\n clearTimeout(_timer.current);\n }\n };\n }, [nextHeaderLayoutY, measured, layoutHeight, layoutY, scrollViewHeight, scrollAnimatedValue, inverted, offset, animatedValueListener, isFabric]);\n\n const _onLayout = (event: LayoutEvent) => {\n setLayoutY(event.nativeEvent.layout.y);\n setLayoutHeight(event.nativeEvent.layout.height);\n setMeasured(true);\n\n props.onLayout(event);\n const child = React.Children.only(props.children);\n if (child.props.onLayout) {\n child.props.onLayout(event);\n }\n };\n\n const child = React.Children.only(props.children);\n\n // TODO T68319535: remove this if NativeAnimated is rewritten for Fabric\n const passthroughAnimatedPropExplicitValues =\n isFabric && translateY != null\n ? {\n style: {transform: [{translateY: translateY}]},\n }\n : null;\n\n return (\n /* $FlowFixMe[prop-missing] passthroughAnimatedPropExplicitValues isn't properly\n included in the Animated.View flow type. */\n <Animated.View\n collapsable={false}\n nativeID={props.nativeID}\n onLayout={_onLayout}\n ref={ref}\n style={[\n child.props.style,\n styles.header,\n {transform: [{translateY: animatedTranslateY}]},\n ]}\n passthroughAnimatedPropExplicitValues={\n passthroughAnimatedPropExplicitValues\n }>\n {React.cloneElement(child, {\n style: styles.fill, // We transfer the child style to the wrapper.\n onLayout: undefined, // we call this manually through our this._onLayout\n })}\n </Animated.View>\n );\n});\n\nconst styles = StyleSheet.create({\n header: {\n zIndex: 10,\n position: 'relative',\n },\n fill: {\n flex: 1,\n },\n});\n\nexport default ScrollViewStickyHeaderWithForwardedRef;\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 strict\n * @format\n */\n\nimport {useCallback} from 'react';\n\ntype CallbackRef<T> = T => mixed;\ntype ObjectRef<T> = {current: T, ...};\n\ntype Ref<T> = CallbackRef<T> | ObjectRef<T>;\n\n/**\n * Constructs a new ref that forwards new values to each of the given refs. The\n * given refs will always be invoked in the order that they are supplied.\n *\n * WARNING: A known problem of merging refs using this approach is that if any\n * of the given refs change, the returned callback ref will also be changed. If\n * the returned callback ref is supplied as a `ref` to a React element, this may\n * lead to problems with the given refs being invoked more times than desired.\n */\nexport default function useMergeRefs<T>(\n ...refs: $ReadOnlyArray<?Ref<T>>\n): CallbackRef<T> {\n return useCallback(\n (current: T) => {\n for (const ref of refs) {\n if (ref != null) {\n if (typeof ref === 'function') {\n ref(current);\n } else {\n ref.current = current;\n }\n }\n }\n },\n [...refs], // eslint-disable-line react-hooks/exhaustive-deps\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 * @format\n * @flow strict-local\n */\n\n'use strict';\n\nconst InteractionManager = require('./InteractionManager');\n\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\nclass Batchinator {\n _callback: () => void;\n _delay: number;\n _taskHandle: ?{cancel: () => void, ...};\n constructor(callback: () => void, delayMS: number) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n dispose(options: {abort: boolean, ...} = {abort: false}) {\n if (this._taskHandle) {\n this._taskHandle.cancel();\n if (!options.abort) {\n this._callback();\n }\n this._taskHandle = null;\n }\n }\n schedule() {\n if (this._taskHandle) {\n return;\n }\n const timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {cancel: () => clearTimeout(timeoutHandle)};\n }\n}\n\nmodule.exports = Batchinator;\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 * @format\n * @flow strict\n */\n\n'use strict';\n\nfunction clamp(min: number, value: number, max: number): number {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\n\nmodule.exports = clamp;\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 strict\n * @format\n */\n\nimport invariant from 'invariant';\n\nexport type CellRegion = {\n first: number,\n last: number,\n isSpacer: boolean,\n};\n\nexport class CellRenderMask {\n _numCells: number;\n _regions: Array<CellRegion>;\n\n constructor(numCells: number) {\n invariant(\n numCells >= 0,\n 'CellRenderMask must contain a non-negative number os cells',\n );\n\n this._numCells = numCells;\n\n if (numCells === 0) {\n this._regions = [];\n } else {\n this._regions = [\n {\n first: 0,\n last: numCells - 1,\n isSpacer: true,\n },\n ];\n }\n }\n\n enumerateRegions(): $ReadOnlyArray<CellRegion> {\n return this._regions;\n }\n\n addCells(cells: {first: number, last: number}): void {\n invariant(\n cells.first >= 0 &&\n cells.first < this._numCells &&\n cells.last >= -1 &&\n cells.last < this._numCells &&\n cells.last >= cells.first - 1,\n 'CellRenderMask.addCells called with invalid cell range',\n );\n\n // VirtualizedList uses inclusive ranges, where zero-count states are\n // possible. E.g. [0, -1] for no cells, starting at 0.\n if (cells.last < cells.first) {\n return;\n }\n\n const [firstIntersect, firstIntersectIdx] = this._findRegion(cells.first);\n const [lastIntersect, lastIntersectIdx] = this._findRegion(cells.last);\n\n // Fast-path if the cells to add are already all present in the mask. We\n // will otherwise need to do some mutation.\n if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n return;\n }\n\n // We need to replace the existing covered regions with 1-3 new regions\n // depending whether we need to split spacers out of overlapping regions.\n const newLeadRegion: Array<CellRegion> = [];\n const newTailRegion: Array<CellRegion> = [];\n const newMainRegion: CellRegion = {\n ...cells,\n isSpacer: false,\n };\n\n if (firstIntersect.first < newMainRegion.first) {\n if (firstIntersect.isSpacer) {\n newLeadRegion.push({\n first: firstIntersect.first,\n last: newMainRegion.first - 1,\n isSpacer: true,\n });\n } else {\n newMainRegion.first = firstIntersect.first;\n }\n }\n\n if (lastIntersect.last > newMainRegion.last) {\n if (lastIntersect.isSpacer) {\n newTailRegion.push({\n first: newMainRegion.last + 1,\n last: lastIntersect.last,\n isSpacer: true,\n });\n } else {\n newMainRegion.last = lastIntersect.last;\n }\n }\n\n const replacementRegions: Array<CellRegion> = [\n ...newLeadRegion,\n newMainRegion,\n ...newTailRegion,\n ];\n const numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n this._regions.splice(\n firstIntersectIdx,\n numRegionsToDelete,\n ...replacementRegions,\n );\n }\n\n numCells(): number {\n return this._numCells;\n }\n\n equals(other: CellRenderMask): boolean {\n return (\n this._numCells === other._numCells &&\n this._regions.length === other._regions.length &&\n this._regions.every(\n (region, i) =>\n region.first === other._regions[i].first &&\n region.last === other._regions[i].last &&\n region.isSpacer === other._regions[i].isSpacer,\n )\n );\n }\n\n _findRegion(cellIdx: number): [CellRegion, number] {\n let firstIdx = 0;\n let lastIdx = this._regions.length - 1;\n\n while (firstIdx <= lastIdx) {\n const middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n const middleRegion = this._regions[middleIdx];\n\n if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n return [middleRegion, middleIdx];\n } else if (cellIdx < middleRegion.first) {\n lastIdx = middleIdx - 1;\n } else if (cellIdx > middleRegion.last) {\n firstIdx = middleIdx + 1;\n }\n }\n\n invariant(false, `A region was not found containing cellIdx ${cellIdx}`);\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 strict\n * @format\n */\n\nimport invariant from 'invariant';\n\nexport default class ChildListCollection<TList> {\n _cellKeyToChildren: Map<string, Set<TList>> = new Map();\n _childrenToCellKey: Map<TList, string> = new Map();\n\n add(list: TList, cellKey: string): void {\n invariant(\n !this._childrenToCellKey.has(list),\n 'Trying to add already present child list',\n );\n\n const cellLists = this._cellKeyToChildren.get(cellKey) ?? new Set();\n cellLists.add(list);\n this._cellKeyToChildren.set(cellKey, cellLists);\n\n this._childrenToCellKey.set(list, cellKey);\n }\n\n remove(list: TList): void {\n const cellKey = this._childrenToCellKey.get(list);\n invariant(cellKey != null, 'Trying to remove non-present child list');\n this._childrenToCellKey.delete(list);\n\n const cellLists = this._cellKeyToChildren.get(cellKey);\n invariant(cellLists, '_cellKeyToChildren should contain cellKey');\n cellLists.delete(list);\n\n if (cellLists.size === 0) {\n this._cellKeyToChildren.delete(cellKey);\n }\n }\n\n forEach(fn: TList => void): void {\n for (const listSet of this._cellKeyToChildren.values()) {\n for (const list of listSet) {\n fn(list);\n }\n }\n }\n\n forEachInCell(cellKey: string, fn: TList => void): void {\n const listSet = this._cellKeyToChildren.get(cellKey) ?? [];\n for (const list of listSet) {\n fn(list);\n }\n }\n\n anyInCell(cellKey: string, fn: TList => boolean): boolean {\n const listSet = this._cellKeyToChildren.get(cellKey) ?? [];\n for (const list of listSet) {\n if (fn(list)) {\n return true;\n }\n }\n return false;\n }\n\n size(): number {\n return this._childrenToCellKey.size;\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 * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\nexport type FillRateInfo = Info;\n\nclass Info {\n any_blank_count: number = 0;\n any_blank_ms: number = 0;\n any_blank_speed_sum: number = 0;\n mostly_blank_count: number = 0;\n mostly_blank_ms: number = 0;\n pixels_blank: number = 0;\n pixels_sampled: number = 0;\n pixels_scrolled: number = 0;\n total_time_spent: number = 0;\n sample_count: number = 0;\n}\n\ntype FrameMetrics = {\n inLayout?: boolean,\n length: number,\n offset: number,\n ...\n};\n\nconst DEBUG = false;\n\nlet _listeners: Array<(Info) => void> = [];\nlet _minSampleCount = 10;\nlet _sampleRate = DEBUG ? 1 : null;\n\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\nclass FillRateHelper {\n _anyBlankStartTime: ?number = null;\n _enabled = false;\n _getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics;\n _info: Info = new Info();\n _mostlyBlankStartTime: ?number = null;\n _samplesStartTime: ?number = null;\n\n static addListener(callback: FillRateInfo => void): {\n remove: () => void,\n ...\n } {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n },\n };\n }\n\n static setSampleRate(sampleRate: number) {\n _sampleRate = sampleRate;\n }\n\n static setMinSampleCount(minSampleCount: number) {\n _minSampleCount = minSampleCount;\n }\n\n constructor(\n getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics,\n ) {\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n this._resetData();\n }\n\n activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n\n deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n const start = this._samplesStartTime; // const for flow\n if (start == null) {\n DEBUG &&\n console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n return;\n }\n const total_time_spent = global.performance.now() - start;\n const info: any = {\n ...this._info,\n total_time_spent,\n };\n if (DEBUG) {\n const derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank:\n this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min:\n this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min:\n this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent,\n };\n for (const key in derived) {\n // $FlowFixMe[prop-missing]\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n console.debug('FillRateHelper deactivateAndFlush: ', {derived, info});\n }\n _listeners.forEach(listener => listener(info));\n this._resetData();\n }\n\n computeBlankness(\n props: {\n ...FrameMetricProps,\n initialNumToRender?: ?number,\n ...\n },\n cellsAroundViewport: {\n first: number,\n last: number,\n ...\n },\n scrollMetrics: {\n dOffset: number,\n offset: number,\n velocity: number,\n visibleLength: number,\n ...\n },\n ): number {\n if (\n !this._enabled ||\n props.getItemCount(props.data) === 0 ||\n cellsAroundViewport.last < cellsAroundViewport.first ||\n this._samplesStartTime == null\n ) {\n return 0;\n }\n const {dOffset, offset, velocity, visibleLength} = scrollMetrics;\n\n // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n const scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n const now = global.performance.now();\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n this._anyBlankStartTime = null;\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n this._mostlyBlankStartTime = null;\n\n let blankTop = 0;\n let first = cellsAroundViewport.first;\n let firstFrame = this._getFrameMetrics(first, props);\n while (\n first <= cellsAroundViewport.last &&\n (!firstFrame || !firstFrame.inLayout)\n ) {\n firstFrame = this._getFrameMetrics(first, props);\n first++;\n }\n // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n if (firstFrame && first > 0) {\n blankTop = Math.min(\n visibleLength,\n Math.max(0, firstFrame.offset - offset),\n );\n }\n let blankBottom = 0;\n let last = cellsAroundViewport.last;\n let lastFrame = this._getFrameMetrics(last, props);\n while (\n last >= cellsAroundViewport.first &&\n (!lastFrame || !lastFrame.inLayout)\n ) {\n lastFrame = this._getFrameMetrics(last, props);\n last--;\n }\n // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n const bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(\n visibleLength,\n Math.max(0, offset + visibleLength - bottomEdge),\n );\n }\n const pixels_blank = Math.round(blankTop + blankBottom);\n const blankness = pixels_blank / visibleLength;\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n return blankness;\n }\n\n enabled(): boolean {\n return this._enabled;\n }\n\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n}\n\nmodule.exports = FillRateHelper;\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 strict\n * @format\n */\n\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n/**\n * `setState` is called asynchronously, and should not rely on the value of\n * `this.props` or `this.state`:\n * https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous\n *\n * SafePureComponent adds runtime enforcement, to catch cases where these\n * variables are read in a state updater function, instead of the ones passed\n * in.\n */\nexport default class StateSafePureComponent<\n Props,\n State: interface {},\n> extends React.PureComponent<Props, State> {\n _inAsyncStateUpdate = false;\n\n constructor(props: Props) {\n super(props);\n this._installSetStateHooks();\n }\n\n setState(\n partialState: ?($Shape<State> | ((State, Props) => ?$Shape<State>)),\n callback?: () => mixed,\n ): void {\n if (typeof partialState === 'function') {\n super.setState((state, props) => {\n this._inAsyncStateUpdate = true;\n let ret;\n try {\n ret = partialState(state, props);\n } catch (err) {\n throw err;\n } finally {\n this._inAsyncStateUpdate = false;\n }\n return ret;\n }, callback);\n } else {\n super.setState(partialState, callback);\n }\n }\n\n _installSetStateHooks() {\n const that = this;\n let {props, state} = this;\n\n Object.defineProperty(this, 'props', {\n get() {\n invariant(\n !that._inAsyncStateUpdate,\n '\"this.props\" should not be accessed during state updates',\n );\n return props;\n },\n set(newProps: Props) {\n props = newProps;\n },\n });\n Object.defineProperty(this, 'state', {\n get() {\n invariant(\n !that._inAsyncStateUpdate,\n '\"this.state\" should not be acceessed during state updates',\n );\n return state;\n },\n set(newState: State) {\n state = newState;\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 * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\nconst invariant = require('invariant');\n\nexport type ViewToken = {\n item: any,\n key: string,\n index: ?number,\n isViewable: boolean,\n section?: any,\n ...\n};\n\nexport type ViewabilityConfigCallbackPair = {\n viewabilityConfig: ViewabilityConfig,\n onViewableItemsChanged: (info: {\n viewableItems: Array<ViewToken>,\n changed: Array<ViewToken>,\n ...\n }) => void,\n ...\n};\n\nexport type ViewabilityConfig = {|\n /**\n * Minimum amount of time (in milliseconds) that an item must be physically viewable before the\n * viewability callback will be fired. A high number means that scrolling through content without\n * stopping will not mark the content as viewable.\n */\n minimumViewTime?: number,\n\n /**\n * Percent of viewport that must be covered for a partially occluded item to count as\n * \"viewable\", 0-100. Fully visible items are always considered viewable. A value of 0 means\n * that a single pixel in the viewport makes the item viewable, and a value of 100 means that\n * an item must be either entirely visible or cover the entire viewport to count as viewable.\n */\n viewAreaCoveragePercentThreshold?: number,\n\n /**\n * Similar to `viewAreaPercentThreshold`, but considers the percent of the item that is visible,\n * rather than the fraction of the viewable area it covers.\n */\n itemVisiblePercentThreshold?: number,\n\n /**\n * Nothing is considered viewable until the user scrolls or `recordInteraction` is called after\n * render.\n */\n waitForInteraction?: boolean,\n|};\n\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n _config: ViewabilityConfig;\n _hasInteracted: boolean = false;\n _timers: Set<number> = new Set();\n _viewableIndices: Array<number> = [];\n _viewableItems: Map<string, ViewToken> = new Map();\n\n constructor(\n config: ViewabilityConfig = {viewAreaCoveragePercentThreshold: 0},\n ) {\n this._config = config;\n }\n\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n dispose() {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.forEach(clearTimeout);\n }\n\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n computeViewableItems(\n props: FrameMetricProps,\n scrollOffset: number,\n viewportHeight: number,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => ?{\n length: number,\n offset: number,\n ...\n },\n // Optional optimization to reduce the scan size\n renderRange?: {\n first: number,\n last: number,\n ...\n },\n ): Array<number> {\n const itemCount = props.getItemCount(props.data);\n const {itemVisiblePercentThreshold, viewAreaCoveragePercentThreshold} =\n this._config;\n const viewAreaMode = viewAreaCoveragePercentThreshold != null;\n const viewablePercentThreshold = viewAreaMode\n ? viewAreaCoveragePercentThreshold\n : itemVisiblePercentThreshold;\n invariant(\n viewablePercentThreshold != null &&\n (itemVisiblePercentThreshold != null) !==\n (viewAreaCoveragePercentThreshold != null),\n 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold',\n );\n const viewableIndices = [];\n if (itemCount === 0) {\n return viewableIndices;\n }\n let firstVisible = -1;\n const {first, last} = renderRange || {first: 0, last: itemCount - 1};\n if (last >= itemCount) {\n console.warn(\n 'Invalid render range computing viewability ' +\n JSON.stringify({renderRange, itemCount}),\n );\n return [];\n }\n for (let idx = first; idx <= last; idx++) {\n const metrics = getFrameMetrics(idx, props);\n if (!metrics) {\n continue;\n }\n const top = metrics.offset - scrollOffset;\n const bottom = top + metrics.length;\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n if (\n _isViewable(\n viewAreaMode,\n viewablePercentThreshold,\n top,\n bottom,\n viewportHeight,\n metrics.length,\n )\n ) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n return viewableIndices;\n }\n\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n onUpdate(\n props: FrameMetricProps,\n scrollOffset: number,\n viewportHeight: number,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => ?{\n length: number,\n offset: number,\n ...\n },\n createViewToken: (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n ) => ViewToken,\n onViewableItemsChanged: ({\n viewableItems: Array<ViewToken>,\n changed: Array<ViewToken>,\n ...\n }) => void,\n // Optional optimization to reduce the scan size\n renderRange?: {\n first: number,\n last: number,\n ...\n },\n ): void {\n const itemCount = props.getItemCount(props.data);\n if (\n (this._config.waitForInteraction && !this._hasInteracted) ||\n itemCount === 0 ||\n !getFrameMetrics(0, props)\n ) {\n return;\n }\n let viewableIndices: Array<number> = [];\n if (itemCount) {\n viewableIndices = this.computeViewableItems(\n props,\n scrollOffset,\n viewportHeight,\n getFrameMetrics,\n renderRange,\n );\n }\n if (\n this._viewableIndices.length === viewableIndices.length &&\n this._viewableIndices.every((v, ii) => v === viewableIndices[ii])\n ) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n this._viewableIndices = viewableIndices;\n if (this._config.minimumViewTime) {\n const handle: TimeoutID = setTimeout(() => {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n this._timers.delete(handle);\n this._onUpdateSync(\n props,\n viewableIndices,\n onViewableItemsChanged,\n createViewToken,\n );\n }, this._config.minimumViewTime);\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.add(handle);\n } else {\n this._onUpdateSync(\n props,\n viewableIndices,\n onViewableItemsChanged,\n createViewToken,\n );\n }\n }\n\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n recordInteraction() {\n this._hasInteracted = true;\n }\n\n _onUpdateSync(\n props: FrameMetricProps,\n viewableIndicesToCheck: Array<number>,\n onViewableItemsChanged: ({\n changed: Array<ViewToken>,\n viewableItems: Array<ViewToken>,\n ...\n }) => void,\n createViewToken: (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n ) => ViewToken,\n ) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii =>\n this._viewableIndices.includes(ii),\n );\n const prevItems = this._viewableItems;\n const nextItems = new Map(\n viewableIndicesToCheck.map(ii => {\n const viewable = createViewToken(ii, true, props);\n return [viewable.key, viewable];\n }),\n );\n\n const changed = [];\n for (const [key, viewable] of nextItems) {\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n for (const [key, viewable] of prevItems) {\n if (!nextItems.has(key)) {\n changed.push({...viewable, isViewable: false});\n }\n }\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config,\n });\n }\n }\n}\n\nfunction _isViewable(\n viewAreaMode: boolean,\n viewablePercentThreshold: number,\n top: number,\n bottom: number,\n viewportHeight: number,\n itemLength: number,\n): boolean {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n const pixels = _getPixelsVisible(top, bottom, viewportHeight);\n const percent =\n 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(\n top: number,\n bottom: number,\n viewportHeight: number,\n): number {\n const visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(\n top: number,\n bottom: number,\n viewportHeight: number,\n): boolean {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nmodule.exports = ViewabilityHelper;\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 * @format\n */\n\nimport type {ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {FocusEvent, LayoutEvent} from '../Types/CoreEventTypes';\nimport type FillRateHelper from './FillRateHelper';\nimport type {RenderItemType} from './VirtualizedListProps';\n\nimport View from '../Components/View/View';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport {VirtualizedListCellContextProvider} from './VirtualizedListContext.js';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type Props<ItemT> = {\n CellRendererComponent?: ?React.ComponentType<any>,\n ItemSeparatorComponent: ?React.ComponentType<\n any | {highlighted: boolean, leadingItem: ?ItemT},\n >,\n ListItemComponent?: ?(React.ComponentType<any> | React.Element<any>),\n cellKey: string,\n debug?: ?boolean,\n fillRateHelper: FillRateHelper,\n getItemLayout?: (\n data: any,\n index: number,\n ) => {\n length: number,\n offset: number,\n index: number,\n ...\n },\n horizontal: ?boolean,\n index: number,\n inversionStyle: ViewStyleProp,\n item: ItemT,\n onCellLayout: (event: LayoutEvent, cellKey: string, index: number) => void,\n onCellFocusCapture?: (event: FocusEvent) => void,\n onUnmount: (cellKey: string) => void,\n onUpdateSeparators: (\n cellKeys: Array<?string>,\n props: $Shape<SeparatorProps<ItemT>>,\n ) => void,\n prevCellKey: ?string,\n renderItem?: ?RenderItemType<ItemT>,\n ...\n};\n\ntype SeparatorProps<ItemT> = $ReadOnly<{|\n highlighted: boolean,\n leadingItem: ?ItemT,\n|}>;\n\ntype State<ItemT> = {\n separatorProps: SeparatorProps<ItemT>,\n ...\n};\n\nexport default class CellRenderer<ItemT> extends React.Component<\n Props<ItemT>,\n State<ItemT>,\n> {\n state: State<ItemT> = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item,\n },\n };\n\n static getDerivedStateFromProps(\n props: Props<ItemT>,\n prevState: State<ItemT>,\n ): ?State<ItemT> {\n return {\n separatorProps: {\n ...prevState.separatorProps,\n leadingItem: props.item,\n },\n };\n }\n\n // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n // $FlowFixMe[missing-local-annot]\n _separators = {\n highlight: () => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true,\n });\n },\n unhighlight: () => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false,\n });\n },\n updateProps: (\n select: 'leading' | 'trailing',\n newProps: SeparatorProps<ItemT>,\n ) => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators(\n [select === 'leading' ? prevCellKey : cellKey],\n newProps,\n );\n },\n };\n\n updateSeparatorProps(newProps: SeparatorProps<ItemT>) {\n this.setState(state => ({\n separatorProps: {...state.separatorProps, ...newProps},\n }));\n }\n\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n\n _onLayout = (nativeEvent: LayoutEvent): void => {\n this.props.onCellLayout &&\n this.props.onCellLayout(\n nativeEvent,\n this.props.cellKey,\n this.props.index,\n );\n };\n\n _renderElement(\n renderItem: ?RenderItemType<ItemT>,\n ListItemComponent: any,\n item: ItemT,\n index: number,\n ): React.Node {\n if (renderItem && ListItemComponent) {\n console.warn(\n 'VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' +\n ' precedence over renderItem.',\n );\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators,\n });\n }\n\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators,\n });\n }\n\n invariant(\n false,\n 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.',\n );\n }\n\n render(): React.Node {\n const {\n CellRendererComponent,\n ItemSeparatorComponent,\n ListItemComponent,\n debug,\n fillRateHelper,\n getItemLayout,\n horizontal,\n item,\n index,\n inversionStyle,\n onCellFocusCapture,\n renderItem,\n } = this.props;\n const element = this._renderElement(\n renderItem,\n ListItemComponent,\n item,\n index,\n );\n\n const onLayout =\n (getItemLayout && !debug && !fillRateHelper.enabled()) ||\n !this.props.onCellLayout\n ? undefined\n : this._onLayout;\n // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n const itemSeparator = React.isValidElement(ItemSeparatorComponent)\n ? ItemSeparatorComponent\n : ItemSeparatorComponent && (\n <ItemSeparatorComponent {...this.state.separatorProps} />\n );\n const cellStyle = inversionStyle\n ? horizontal\n ? [styles.rowReverse, inversionStyle]\n : [styles.columnReverse, inversionStyle]\n : horizontal\n ? [styles.row, inversionStyle]\n : inversionStyle;\n const result = !CellRendererComponent ? (\n <View\n style={cellStyle}\n onLayout={onLayout}\n onFocusCapture={onCellFocusCapture}\n /* $FlowFixMe[incompatible-type-arg] (>=0.89.0 site=react_native_fb) *\n This comment suppresses an error found when Flow v0.89 was deployed. *\n To see the error, delete this comment and run Flow. */\n >\n {element}\n {itemSeparator}\n </View>\n ) : (\n <CellRendererComponent\n {...this.props}\n style={cellStyle}\n onLayout={onLayout}\n onFocusCapture={onCellFocusCapture}>\n {element}\n {itemSeparator}\n </CellRendererComponent>\n );\n\n return (\n <VirtualizedListCellContextProvider cellKey={this.props.cellKey}>\n {result}\n </VirtualizedListCellContextProvider>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row',\n },\n rowReverse: {\n flexDirection: 'row-reverse',\n },\n columnReverse: {\n flexDirection: 'column-reverse',\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 strict-local\n * @format\n */\n\nimport typeof VirtualizedList from './VirtualizedList';\n\nimport * as React from 'react';\nimport {useContext, useMemo} from 'react';\n\ntype Context = $ReadOnly<{\n cellKey: ?string,\n getScrollMetrics: () => {\n contentLength: number,\n dOffset: number,\n dt: number,\n offset: number,\n timestamp: number,\n velocity: number,\n visibleLength: number,\n zoomScale: number,\n },\n horizontal: ?boolean,\n getOutermostParentListRef: () => React.ElementRef<VirtualizedList>,\n registerAsNestedChild: ({\n cellKey: string,\n ref: React.ElementRef<VirtualizedList>,\n }) => void,\n unregisterAsNestedChild: ({\n ref: React.ElementRef<VirtualizedList>,\n }) => void,\n}>;\n\nexport const VirtualizedListContext: React.Context<?Context> =\n React.createContext(null);\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\nexport function VirtualizedListContextResetter({\n children,\n}: {\n children: React.Node,\n}): React.Node {\n return (\n <VirtualizedListContext.Provider value={null}>\n {children}\n </VirtualizedListContext.Provider>\n );\n}\n\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\nexport function VirtualizedListContextProvider({\n children,\n value,\n}: {\n children: React.Node,\n value: Context,\n}): React.Node {\n // Avoid setting a newly created context object if the values are identical.\n const context = useMemo(\n () => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n }),\n [\n value.getScrollMetrics,\n value.horizontal,\n value.getOutermostParentListRef,\n value.registerAsNestedChild,\n value.unregisterAsNestedChild,\n ],\n );\n return (\n <VirtualizedListContext.Provider value={context}>\n {children}\n </VirtualizedListContext.Provider>\n );\n}\n\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\nexport function VirtualizedListCellContextProvider({\n cellKey,\n children,\n}: {\n cellKey: string,\n children: React.Node,\n}): React.Node {\n // Avoid setting a newly created context object if the values are identical.\n const currContext = useContext(VirtualizedListContext);\n const context = useMemo(\n () => (currContext == null ? null : {...currContext, cellKey}),\n [currContext, cellKey],\n );\n return (\n <VirtualizedListContext.Provider value={context}>\n {children}\n </VirtualizedListContext.Provider>\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 * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\nexport function elementsThatOverlapOffsets(\n offsets: Array<number>,\n props: FrameMetricProps,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n },\n zoomScale: number = 1,\n): Array<number> {\n const itemCount = props.getItemCount(props.data);\n const result = [];\n for (let offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n const currentOffset = offsets[offsetIndex];\n let left = 0;\n let right = itemCount - 1;\n\n while (left <= right) {\n // eslint-disable-next-line no-bitwise\n const mid = left + ((right - left) >>> 1);\n const frame = getFrameMetrics(mid, props);\n const scaledOffsetStart = frame.offset * zoomScale;\n const scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n\n // We want the first frame that contains the offset, with inclusive bounds. Thus, for the\n // first frame the scaledOffsetStart is inclusive, while for other frames it is exclusive.\n if (\n (mid === 0 && currentOffset < scaledOffsetStart) ||\n (mid !== 0 && currentOffset <= scaledOffsetStart)\n ) {\n right = mid - 1;\n } else if (currentOffset > scaledOffsetEnd) {\n left = mid + 1;\n } else {\n result[offsetIndex] = mid;\n break;\n }\n }\n }\n\n return result;\n}\n\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\nexport function newRangeCount(\n prev: {\n first: number,\n last: number,\n ...\n },\n next: {\n first: number,\n last: number,\n ...\n },\n): number {\n return (\n next.last -\n next.first +\n 1 -\n Math.max(\n 0,\n 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first),\n )\n );\n}\n\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\nexport function computeWindowedRenderLimits(\n props: FrameMetricProps,\n maxToRenderPerBatch: number,\n windowSize: number,\n prev: {\n first: number,\n last: number,\n },\n getFrameMetricsApprox: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n },\n scrollMetrics: {\n dt: number,\n offset: number,\n velocity: number,\n visibleLength: number,\n zoomScale: number,\n ...\n },\n): {\n first: number,\n last: number,\n} {\n const itemCount = props.getItemCount(props.data);\n if (itemCount === 0) {\n return {first: 0, last: -1};\n }\n const {offset, velocity, visibleLength, zoomScale = 1} = scrollMetrics;\n\n // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n const visibleBegin = Math.max(0, offset);\n const visibleEnd = visibleBegin + visibleLength;\n const overscanLength = (windowSize - 1) * visibleLength;\n\n // Considering velocity seems to introduce more churn than it's worth.\n const leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n const fillPreference =\n velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n\n const overscanBegin = Math.max(\n 0,\n visibleBegin - (1 - leadFactor) * overscanLength,\n );\n const overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n\n const lastItemOffset =\n getFrameMetricsApprox(itemCount - 1, props).offset * zoomScale;\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1,\n };\n }\n\n // Find the indices that correspond to the items at the render boundaries we're targeting.\n let [overscanFirst, first, last, overscanLast] = elementsThatOverlapOffsets(\n [overscanBegin, visibleBegin, visibleEnd, overscanEnd],\n props,\n getFrameMetricsApprox,\n zoomScale,\n );\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last =\n last == null\n ? Math.min(overscanLast, first + maxToRenderPerBatch - 1)\n : last;\n const visible = {first, last};\n\n // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n let newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n const maxNewCells = newCellCount >= maxToRenderPerBatch;\n const firstWillAddMore = first <= prev.first || first > prev.last;\n const firstShouldIncrement =\n first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n const lastWillAddMore = last >= prev.last || last < prev.first;\n const lastShouldIncrement =\n last < overscanLast && (!maxNewCells || !lastWillAddMore);\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n if (\n firstShouldIncrement &&\n !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)\n ) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (\n lastShouldIncrement &&\n !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)\n ) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\n }\n }\n if (\n !(\n last >= first &&\n first >= 0 &&\n last < itemCount &&\n first >= overscanFirst &&\n last <= overscanLast &&\n first <= visible.first &&\n last >= visible.last\n )\n ) {\n throw new Error(\n 'Bad window calculation ' +\n JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible,\n }),\n );\n }\n return {first, last};\n}\n\nexport function keyExtractor(item: any, index: number): string {\n if (typeof item === 'object' && item?.key != null) {\n return item.key;\n }\n if (typeof item === 'object' && item?.id != null) {\n return item.id;\n }\n return String(index);\n}\n","'use strict';\n\nvar safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\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 strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport Image from '../../Image/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(\n (Image: $FlowFixMe),\n): AnimatedComponentType<\n React.ElementConfig<typeof Image>,\n React.ElementRef<typeof Image>,\n>);\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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 strict\n * @format\n */\n\nimport * as React from 'react';\n\ntype ContextType = ?string;\n\nconst Context: React.Context<ContextType> =\n React.createContext<ContextType>(null);\n\nif (__DEV__) {\n Context.displayName = 'ImageAnalyticsTagContext';\n}\n\nexport default Context;\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 * @format strict-local\n * @flow\n */\n\nimport type {ImageProps as ImagePropsType} from './ImageProps';\n\nimport ImageViewNativeComponent from './ImageViewNativeComponent';\nimport TextInlineImageNativeComponent from './TextInlineImageNativeComponent';\nimport * as React from 'react';\n\nexport default {\n unstable_createImageComponent: (null: ?(\n Image: React.AbstractComponent<\n ImagePropsType,\n | React.ElementRef<typeof TextInlineImageNativeComponent>\n | React.ElementRef<typeof ImageViewNativeComponent>,\n >,\n ) => React.AbstractComponent<\n ImagePropsType,\n | React.ElementRef<typeof TextInlineImageNativeComponent>\n | React.ElementRef<typeof ImageViewNativeComponent>,\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 strict-local\n * @format\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n ColorValue,\n DangerouslyImpreciseStyle,\n ImageStyleProp,\n} from '../StyleSheet/StyleSheet';\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\nimport type {ImageProps} from './ImageProps';\n\nimport * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';\nimport {ConditionallyIgnoredEventHandlers} from '../NativeComponent/ViewConfigIgnore';\nimport Platform from '../Utilities/Platform';\n\ntype Props = $ReadOnly<{\n ...ImageProps,\n ...ViewProps,\n\n style?: ImageStyleProp | DangerouslyImpreciseStyle,\n\n // iOS native props\n tintColor?: ColorValue,\n\n // Android native props\n shouldNotifyLoadEvents?: boolean,\n src?:\n | ?ResolvedAssetSource\n | ?$ReadOnlyArray<?$ReadOnly<{uri?: ?string, ...}>>,\n headers?: ?{[string]: string},\n defaultSrc?: ?string,\n loadingIndicatorSrc?: ?string,\n}>;\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTImageView',\n bubblingEventTypes: {},\n directEventTypes: {\n topLoadStart: {\n registrationName: 'onLoadStart',\n },\n topProgress: {\n registrationName: 'onProgress',\n },\n topError: {\n registrationName: 'onError',\n },\n topLoad: {\n registrationName: 'onLoad',\n },\n topLoadEnd: {\n registrationName: 'onLoadEnd',\n },\n },\n validAttributes: {\n blurRadius: true,\n internal_analyticTag: true,\n resizeMode: true,\n tintColor: {\n process: require('../StyleSheet/processColor'),\n },\n borderBottomLeftRadius: true,\n borderTopLeftRadius: true,\n resizeMethod: true,\n src: true,\n borderRadius: true,\n headers: true,\n shouldNotifyLoadEvents: true,\n defaultSrc: true,\n overlayColor: {\n process: require('../StyleSheet/processColor'),\n },\n borderColor: {\n process: require('../StyleSheet/processColor'),\n },\n accessible: true,\n progressiveRenderingEnabled: true,\n fadeDuration: true,\n borderBottomRightRadius: true,\n borderTopRightRadius: true,\n loadingIndicatorSrc: true,\n },\n }\n : {\n uiViewClassName: 'RCTImageView',\n bubblingEventTypes: {},\n directEventTypes: {\n topLoadStart: {\n registrationName: 'onLoadStart',\n },\n topProgress: {\n registrationName: 'onProgress',\n },\n topError: {\n registrationName: 'onError',\n },\n topPartialLoad: {\n registrationName: 'onPartialLoad',\n },\n topLoad: {\n registrationName: 'onLoad',\n },\n topLoadEnd: {\n registrationName: 'onLoadEnd',\n },\n },\n validAttributes: {\n blurRadius: true,\n capInsets: {\n diff: require('../Utilities/differ/insetsDiffer'),\n },\n defaultSource: {\n process: require('./resolveAssetSource'),\n },\n internal_analyticTag: true,\n resizeMode: true,\n source: true,\n tintColor: {\n process: require('../StyleSheet/processColor'),\n },\n ...ConditionallyIgnoredEventHandlers({\n onLoadStart: true,\n onLoad: true,\n onLoadEnd: true,\n onProgress: true,\n onError: true,\n onPartialLoad: true,\n }),\n },\n };\n\nconst ImageViewNativeComponent: HostComponent<Props> =\n NativeComponentRegistry.get<Props>(\n 'RCTImageView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ImageViewNativeComponent;\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 * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\nimport type {ImageResizeMode} from './ImageResizeMode';\n\nimport * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';\n\ntype NativeProps = $ReadOnly<{\n ...ViewProps,\n resizeMode?: ?ImageResizeMode,\n src?: ?$ReadOnlyArray<?$ReadOnly<{uri?: ?string, ...}>>,\n tintColor?: ?ColorValue,\n headers?: ?{[string]: string},\n}>;\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTTextInlineImage',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {\n resizeMode: true,\n src: true,\n tintColor: {\n process: require('../StyleSheet/processColor'),\n },\n headers: true,\n },\n};\n\nconst TextInlineImage: HostComponent<NativeProps> =\n NativeComponentRegistry.get<NativeProps>(\n 'RCTTextInlineImage',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default TextInlineImage;\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 strict-local\n * @format\n */\n\n'use strict';\n\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\nimport type {ImageProps} from './ImageProps';\n\nimport resolveAssetSource from './resolveAssetSource';\n\n/**\n * A function which returns the appropriate value for image source\n * by resolving the `source`, `src` and `srcSet` props.\n */\nexport function getImageSourcesFromImageProps(\n imageProps: ImageProps,\n): ?ResolvedAssetSource | $ReadOnlyArray<{uri: string, ...}> {\n let source = resolveAssetSource(imageProps.source);\n\n let sources;\n\n const {crossOrigin, referrerPolicy, src, srcSet, width, height} = imageProps;\n\n const headers: {[string]: string} = {};\n if (crossOrigin === 'use-credentials') {\n headers['Access-Control-Allow-Credentials'] = 'true';\n }\n if (referrerPolicy != null) {\n headers['Referrer-Policy'] = referrerPolicy;\n }\n if (srcSet != null) {\n const sourceList = [];\n const srcSetList = srcSet.split(', ');\n // `src` prop should be used with default scale if `srcSet` does not have 1x scale.\n let shouldUseSrcForDefaultScale = true;\n srcSetList.forEach(imageSrc => {\n const [uri, xScale = '1x'] = imageSrc.split(' ');\n if (!xScale.endsWith('x')) {\n console.warn(\n 'The provided format for scale is not supported yet. Please use scales like 1x, 2x, etc.',\n );\n } else {\n const scale = parseInt(xScale.split('x')[0], 10);\n if (!isNaN(scale)) {\n // 1x scale is provided in `srcSet` prop so ignore the `src` prop if provided.\n shouldUseSrcForDefaultScale =\n scale === 1 ? false : shouldUseSrcForDefaultScale;\n sourceList.push({headers: headers, scale, uri, width, height});\n }\n }\n });\n\n if (shouldUseSrcForDefaultScale && src != null) {\n sourceList.push({\n headers: headers,\n scale: 1,\n uri: src,\n width,\n height,\n });\n }\n if (sourceList.length === 0) {\n console.warn('The provided value for srcSet is not valid.');\n }\n\n sources = sourceList;\n } else if (src != null) {\n sources = [{uri: src, headers: headers, width, height}];\n } else {\n sources = source;\n }\n return sources;\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 * @format\n */\n\ntype ResizeMode = 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';\n\nexport function convertObjectFitToResizeMode(objectFit: string): ResizeMode {\n const objectFitMap = {\n contain: 'contain',\n cover: 'cover',\n fill: 'stretch',\n 'scale-down': 'contain',\n };\n return objectFitMap[objectFit];\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 strict-local\n * @format\n */\n\nimport type {____ViewStyle_Internal} from '../../StyleSheet/StyleSheetTypes';\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport RefreshControl from '../../Components/RefreshControl/RefreshControl';\nimport ScrollView from '../../Components/ScrollView/ScrollView';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport splitLayoutProps from '../../StyleSheet/splitLayoutProps';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport useAnimatedProps from '../useAnimatedProps';\nimport * as React from 'react';\nimport {useMemo} from 'react';\n\ntype Props = React.ElementConfig<typeof ScrollView>;\ntype Instance = React.ElementRef<typeof ScrollView>;\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst AnimatedScrollView: AnimatedComponentType<Props, Instance> =\n React.forwardRef((props, forwardedRef) => {\n // (Android only) When a ScrollView has a RefreshControl and\n // any `style` property set with an Animated.Value, the CSS\n // gets incorrectly applied twice. This is because ScrollView\n // swaps the parent/child relationship of itself and the\n // RefreshControl component (see ScrollView.js for more details).\n if (\n Platform.OS === 'android' &&\n props.refreshControl != null &&\n props.style != null\n ) {\n return (\n <AnimatedScrollViewWithInvertedRefreshControl\n scrollEventThrottle={0.0001}\n {...props}\n ref={forwardedRef}\n refreshControl={props.refreshControl}\n />\n );\n } else {\n return (\n <AnimatedScrollViewWithoutInvertedRefreshControl\n scrollEventThrottle={0.0001}\n {...props}\n ref={forwardedRef}\n />\n );\n }\n });\n\nconst AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(\n (\n props: {\n ...React.ElementConfig<typeof ScrollView>,\n // $FlowFixMe[unclear-type] Same Flow type as `refreshControl` in ScrollView\n refreshControl: React.Element<any>,\n },\n forwardedRef,\n ) => {\n // Split `props` into the animate-able props for the parent (RefreshControl)\n // and child (ScrollView).\n const {intermediatePropsForRefreshControl, intermediatePropsForScrollView} =\n useMemo(() => {\n const {outer, inner} = splitLayoutProps(flattenStyle(props.style));\n return {\n intermediatePropsForRefreshControl: {style: outer},\n intermediatePropsForScrollView: {...props, style: inner},\n };\n }, [props]);\n\n // Handle animated props on `refreshControl`.\n const [refreshControlAnimatedProps, refreshControlRef] = useAnimatedProps<\n {style: ?____ViewStyle_Internal},\n $FlowFixMe,\n >(intermediatePropsForRefreshControl);\n // NOTE: Assumes that refreshControl.ref` and `refreshControl.style` can be\n // safely clobbered.\n const refreshControl: React.Element<typeof RefreshControl> =\n React.cloneElement(props.refreshControl, {\n ...refreshControlAnimatedProps,\n ref: refreshControlRef,\n });\n\n // Handle animated props on `NativeDirectionalScrollView`.\n const [scrollViewAnimatedProps, scrollViewRef] = useAnimatedProps<\n Props,\n Instance,\n >(intermediatePropsForScrollView);\n const ref = useMergeRefs<Instance | null>(scrollViewRef, forwardedRef);\n\n return (\n // $FlowFixMe[incompatible-use] Investigate useAnimatedProps return value\n <ScrollView\n {...scrollViewAnimatedProps}\n ref={ref}\n refreshControl={refreshControl}\n // Because `refreshControl` is a clone of `props.refreshControl` with\n // `refreshControlAnimatedProps` added, we need to pass ScrollView.js\n // the combined styles since it also splits the outer/inner styles for\n // its parent/child, respectively. Without this, the refreshControl\n // styles would be ignored.\n style={StyleSheet.compose(\n scrollViewAnimatedProps.style,\n refreshControlAnimatedProps.style,\n )}\n />\n );\n },\n);\n\nconst AnimatedScrollViewWithoutInvertedRefreshControl =\n createAnimatedComponent(ScrollView);\n\nexport default AnimatedScrollView;\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 strict-local\n * @format\n */\n\n'use strict';\n\nimport useRefEffect from '../Utilities/useRefEffect';\nimport {AnimatedEvent} from './AnimatedEvent';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\n\ntype ReducedProps<TProps> = {\n ...TProps,\n collapsable: boolean,\n ...\n};\ntype CallbackRef<T> = T => mixed;\n\nexport default function useAnimatedProps<TProps: {...}, TInstance>(\n props: TProps,\n): [ReducedProps<TProps>, CallbackRef<TInstance | null>] {\n const [, scheduleUpdate] = useReducer<number, void>(count => count + 1, 0);\n const onUpdateRef = useRef<?() => void>(null);\n\n // TODO: Only invalidate `node` if animated props or `style` change. In the\n // previous implementation, we permitted `style` to override props with the\n // same name property name as styles, so we can probably continue doing that.\n // The ordering of other props *should* not matter.\n const node = useMemo(\n () => new AnimatedProps(props, () => onUpdateRef.current?.()),\n [props],\n );\n useAnimatedPropsLifecycle(node);\n\n // TODO: This \"effect\" does three things:\n //\n // 1) Call `setNativeView`.\n // 2) Update `onUpdateRef`.\n // 3) Update listeners for `AnimatedEvent` props.\n //\n // Ideally, each of these would be separat \"effects\" so that they are not\n // unnecessarily re-run when irrelevant dependencies change. For example, we\n // should be able to hoist all `AnimatedEvent` props and only do #3 if either\n // the `AnimatedEvent` props change or `instance` changes.\n //\n // But there is no way to transparently compose three separate callback refs,\n // so we just combine them all into one for now.\n const refEffect = useCallback(\n (instance: TInstance) => {\n // NOTE: This may be called more often than necessary (e.g. when `props`\n // changes), but `setNativeView` already optimizes for that.\n node.setNativeView(instance);\n\n // NOTE: This callback is only used by the JavaScript animation driver.\n onUpdateRef.current = () => {\n if (\n process.env.NODE_ENV === 'test' ||\n typeof instance !== 'object' ||\n typeof instance?.setNativeProps !== 'function' ||\n isFabricInstance(instance)\n ) {\n // Schedule an update for this component to update `reducedProps`,\n // but do not compute it immediately. If a parent also updated, we\n // need to merge those new props in before updating.\n scheduleUpdate();\n } else if (!node.__isNative) {\n // $FlowIgnore[not-a-function] - Assume it's still a function.\n // $FlowFixMe[incompatible-use]\n instance.setNativeProps(node.__getAnimatedValue());\n } else {\n throw new Error(\n 'Attempting to run JS driven animation on animated node ' +\n 'that has been moved to \"native\" earlier by starting an ' +\n 'animation with `useNativeDriver: true`',\n );\n }\n };\n\n const target = getEventTarget(instance);\n const events = [];\n\n for (const propName in props) {\n const propValue = props[propName];\n if (propValue instanceof AnimatedEvent && propValue.__isNative) {\n propValue.__attach(target, propName);\n events.push([propName, propValue]);\n }\n }\n\n return () => {\n onUpdateRef.current = null;\n\n for (const [propName, propValue] of events) {\n propValue.__detach(target, propName);\n }\n };\n },\n [props, node],\n );\n const callbackRef = useRefEffect<TInstance>(refEffect);\n\n return [reduceAnimatedProps<TProps>(node), callbackRef];\n}\n\nfunction reduceAnimatedProps<TProps>(\n node: AnimatedProps,\n): ReducedProps<TProps> {\n // Force `collapsable` to be false so that the native view is not flattened.\n // Flattened views cannot be accurately referenced by the native driver.\n return {\n ...node.__getValue(),\n collapsable: false,\n };\n}\n\n/**\n * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`\n * and `__detach`. However, this is more complicated because `AnimatedProps`\n * uses reference counting to determine when to recursively detach its children\n * nodes. So in order to optimize this, we avoid detaching until the next attach\n * unless we are unmounting.\n */\nfunction useAnimatedPropsLifecycle(node: AnimatedProps): void {\n const prevNodeRef = useRef<?AnimatedProps>(null);\n const isUnmountingRef = useRef<boolean>(false);\n\n useEffect(() => {\n // It is ok for multiple components to call `flushQueue` because it noops\n // if the queue is empty. When multiple animated components are mounted at\n // the same time. Only first component flushes the queue and the others will noop.\n NativeAnimatedHelper.API.flushQueue();\n });\n\n useLayoutEffect(() => {\n isUnmountingRef.current = false;\n return () => {\n isUnmountingRef.current = true;\n };\n }, []);\n\n useLayoutEffect(() => {\n node.__attach();\n if (prevNodeRef.current != null) {\n const prevNode = prevNodeRef.current;\n // TODO: Stop restoring default values (unless `reset` is called).\n prevNode.__restoreDefaultValues();\n prevNode.__detach();\n prevNodeRef.current = null;\n }\n return () => {\n if (isUnmountingRef.current) {\n // NOTE: Do not restore default values on unmount, see D18197735.\n node.__detach();\n } else {\n prevNodeRef.current = node;\n }\n };\n }, [node]);\n}\n\nfunction getEventTarget<TInstance>(instance: TInstance): TInstance {\n return typeof instance === 'object' &&\n typeof instance?.getScrollableNode === 'function'\n ? // $FlowFixMe[incompatible-use] - Legacy instance assumptions.\n instance.getScrollableNode()\n : instance;\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction isFabricInstance(instance: any): boolean {\n return (\n hasFabricHandle(instance) ||\n // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as instance would actually be the underlying host component and the above check\n // would be sufficient.\n hasFabricHandle(instance?.getNativeScrollRef?.()) ||\n hasFabricHandle(instance?.getScrollResponder?.()?.getNativeScrollRef?.())\n );\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction hasFabricHandle(instance: any): boolean {\n // eslint-disable-next-line dot-notation\n return instance?.['_internalInstanceHandle']?.stateNode?.canonical != 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 strict\n * @format\n */\n\nimport {useCallback, useRef} from 'react';\n\ntype CallbackRef<T> = T => mixed;\n\n/**\n * Constructs a callback ref that provides similar semantics as `useEffect`. The\n * supplied `effect` callback will be called with non-null component instances.\n * The `effect` callback can also optionally return a cleanup function.\n *\n * When a component is updated or unmounted, the cleanup function is called. The\n * `effect` callback will then be called again, if applicable.\n *\n * When a new `effect` callback is supplied, the previously returned cleanup\n * function will be called before the new `effect` callback is called with the\n * same instance.\n *\n * WARNING: The `effect` callback should be stable (e.g. using `useCallback`).\n */\nexport default function useRefEffect<TInstance>(\n effect: TInstance => (() => void) | void,\n): CallbackRef<TInstance | null> {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n return useCallback(\n (instance: null | TInstance) => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = undefined;\n }\n if (instance != null) {\n cleanupRef.current = effect(instance);\n }\n },\n [effect],\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 strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport SectionList from '../../Lists/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst SectionListWithEventThrottle = React.forwardRef((props, ref) => (\n <SectionList scrollEventThrottle={0.0001} {...props} ref={ref} />\n));\n\nexport default (createAnimatedComponent(\n SectionListWithEventThrottle,\n): AnimatedComponentType<\n React.ElementConfig<typeof SectionList>,\n React.ElementRef<typeof SectionList>,\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 * @format\n */\n\n'use strict';\n\nimport type {ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport type {\n Props as VirtualizedSectionListProps,\n ScrollToLocationParamsType,\n SectionBase as _SectionBase,\n} from './VirtualizedSectionList';\n\nimport Platform from '../Utilities/Platform';\nimport VirtualizedSectionList from './VirtualizedSectionList';\nimport * as React from 'react';\n\ntype Item = any;\n\nexport type SectionBase<SectionItemT> = _SectionBase<SectionItemT>;\n\ntype RequiredProps<SectionT: SectionBase<any>> = {|\n /**\n * The actual data to render, akin to the `data` prop in [`<FlatList>`](https://reactnative.dev/docs/flatlist).\n *\n * General shape:\n *\n * sections: $ReadOnlyArray<{\n * data: $ReadOnlyArray<SectionItem>,\n * renderItem?: ({item: SectionItem, ...}) => ?React.Element<*>,\n * ItemSeparatorComponent?: ?ReactClass<{highlighted: boolean, ...}>,\n * }>\n */\n sections: $ReadOnlyArray<SectionT>,\n|};\n\ntype OptionalProps<SectionT: SectionBase<any>> = {|\n /**\n * Default renderer for every item in every section. Can be over-ridden on a per-section basis.\n */\n renderItem?: (info: {\n item: Item,\n index: number,\n section: SectionT,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element<any>,\n /**\n * A marker property for telling the list to re-render (since it implements `PureComponent`). If\n * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the\n * `data` prop, stick it here and treat it immutably.\n */\n extraData?: any,\n /**\n * How many items to render in the initial batch. This should be enough to fill the screen but not\n * much more. Note these items will never be unmounted as part of the windowed rendering in order\n * to improve perceived performance of scroll-to-top actions.\n */\n initialNumToRender?: ?number,\n /**\n * Reverses the direction of scroll. Uses scale transforms of -1.\n */\n inverted?: ?boolean,\n /**\n * Used to extract a unique key for a given item at the specified index. Key is used for caching\n * and as the react key to track item re-ordering. The default extractor checks item.key, then\n * falls back to using the index, like react does. Note that this sets keys for each item, but\n * each overall section still needs its own key.\n */\n keyExtractor?: ?(item: Item, index: number) => string,\n /**\n * Called once when the scroll position gets within `onEndReachedThreshold` of the rendered\n * content.\n */\n onEndReached?: ?(info: {distanceFromEnd: number, ...}) => void,\n /**\n * Note: may have bugs (missing content) in some circumstances - use at your own risk.\n *\n * This may improve scroll performance for large lists.\n */\n removeClippedSubviews?: boolean,\n|};\n\nexport type Props<SectionT> = {|\n ...$Diff<\n VirtualizedSectionListProps<SectionT>,\n {\n getItem: $PropertyType<VirtualizedSectionListProps<SectionT>, 'getItem'>,\n getItemCount: $PropertyType<\n VirtualizedSectionListProps<SectionT>,\n 'getItemCount',\n >,\n renderItem: $PropertyType<\n VirtualizedSectionListProps<SectionT>,\n 'renderItem',\n >,\n keyExtractor: $PropertyType<\n VirtualizedSectionListProps<SectionT>,\n 'keyExtractor',\n >,\n ...\n },\n >,\n ...RequiredProps<SectionT>,\n ...OptionalProps<SectionT>,\n|};\n\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [`<FlatList>`](https://reactnative.dev/docs/flatlist).\n *\n * Simple Examples:\n *\n * <SectionList\n * renderItem={({item}) => <ListItem title={item} />}\n * renderSectionHeader={({section}) => <Header title={section.title} />}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * <SectionList\n * sections={[ // heterogeneous rendering between sections\n * {data: [...], renderItem: ...},\n * {data: [...], renderItem: ...},\n * {data: [...], renderItem: ...},\n * ]}\n * />\n *\n * This is a convenience wrapper around [`<VirtualizedList>`](docs/virtualizedlist),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nexport default class SectionList<\n SectionT: SectionBase<any>,\n> extends React.PureComponent<Props<SectionT>, void> {\n props: Props<SectionT>;\n\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToLocation(params: ScrollToLocationParamsType) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.recordInteraction();\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder(): ?ScrollResponderType {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n\n getScrollableNode(): any {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props: Object) {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n listRef.setNativeProps(props);\n }\n }\n\n render(): React.Node {\n const {\n stickySectionHeadersEnabled: _stickySectionHeadersEnabled,\n ...restProps\n } = this.props;\n const stickySectionHeadersEnabled =\n _stickySectionHeadersEnabled ?? Platform.OS === 'ios';\n return (\n <VirtualizedSectionList\n {...restProps}\n stickySectionHeadersEnabled={stickySectionHeadersEnabled}\n ref={this._captureRef}\n getItemCount={items => items.length}\n getItem={(items, index) => items[index]}\n />\n );\n }\n\n _wrapperListRef: ?React.ElementRef<typeof VirtualizedSectionList>;\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _captureRef = ref => {\n this._wrapperListRef = ref;\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 * @format\n */\n\nimport type {ViewToken} from './ViewabilityHelper';\n\nimport View from '../Components/View/View';\nimport VirtualizedList from './VirtualizedList';\nimport {keyExtractor as defaultKeyExtractor} from './VirtualizeUtils';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype Item = any;\n\nexport type SectionBase<SectionItemT> = {\n /**\n * The data for rendering items in this section.\n */\n data: $ReadOnlyArray<SectionItemT>,\n /**\n * Optional key to keep track of section re-ordering. If you don't plan on re-ordering sections,\n * the array index will be used by default.\n */\n key?: string,\n // Optional props will override list-wide props just for this section.\n renderItem?: ?(info: {\n item: SectionItemT,\n index: number,\n section: SectionBase<SectionItemT>,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element<any>,\n ItemSeparatorComponent?: ?React.ComponentType<any>,\n keyExtractor?: (item: SectionItemT, index?: ?number) => string,\n ...\n};\n\ntype RequiredProps<SectionT: SectionBase<any>> = {|\n sections: $ReadOnlyArray<SectionT>,\n|};\n\ntype OptionalProps<SectionT: SectionBase<any>> = {|\n /**\n * Default renderer for every item in every section.\n */\n renderItem?: (info: {\n item: Item,\n index: number,\n section: SectionT,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element<any>,\n /**\n * Rendered at the top of each section. These stick to the top of the `ScrollView` by default on\n * iOS. See `stickySectionHeadersEnabled`.\n */\n renderSectionHeader?: ?(info: {\n section: SectionT,\n ...\n }) => null | React.Element<any>,\n /**\n * Rendered at the bottom of each section.\n */\n renderSectionFooter?: ?(info: {\n section: SectionT,\n ...\n }) => null | React.Element<any>,\n /**\n * Rendered at the top and bottom of each section (note this is different from\n * `ItemSeparatorComponent` which is only rendered between items). These are intended to separate\n * sections from the headers above and below and typically have the same highlight response as\n * `ItemSeparatorComponent`. Also receives `highlighted`, `[leading/trailing][Item/Separator]`,\n * and any custom props from `separators.updateProps`.\n */\n SectionSeparatorComponent?: ?React.ComponentType<any>,\n /**\n * Makes section headers stick to the top of the screen until the next one pushes it off. Only\n * enabled by default on iOS because that is the platform standard there.\n */\n stickySectionHeadersEnabled?: boolean,\n onEndReached?: ?({distanceFromEnd: number, ...}) => void,\n|};\n\ntype VirtualizedListProps = React.ElementConfig<typeof VirtualizedList>;\n\nexport type Props<SectionT> = {|\n ...RequiredProps<SectionT>,\n ...OptionalProps<SectionT>,\n ...$Diff<\n VirtualizedListProps,\n {\n renderItem: $PropertyType<VirtualizedListProps, 'renderItem'>,\n data: $PropertyType<VirtualizedListProps, 'data'>,\n ...\n },\n >,\n|};\nexport type ScrollToLocationParamsType = {|\n animated?: ?boolean,\n itemIndex: number,\n sectionIndex: number,\n viewOffset?: number,\n viewPosition?: number,\n|};\n\ntype State = {childProps: VirtualizedListProps, ...};\n\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nclass VirtualizedSectionList<\n SectionT: SectionBase<any>,\n> extends React.PureComponent<Props<SectionT>, State> {\n scrollToLocation(params: ScrollToLocationParamsType) {\n let index = params.itemIndex;\n for (let i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n let viewOffset = params.viewOffset || 0;\n if (this._listRef == null) {\n return;\n }\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n const frame = this._listRef.__getFrameMetricsApprox(\n index - params.itemIndex,\n this._listRef.props,\n );\n viewOffset += frame.length;\n }\n const toIndexParams = {\n ...params,\n viewOffset,\n index,\n };\n // $FlowFixMe[incompatible-use]\n this._listRef.scrollToIndex(toIndexParams);\n }\n\n getListRef(): ?React.ElementRef<typeof VirtualizedList> {\n return this._listRef;\n }\n\n render(): React.Node {\n const {\n ItemSeparatorComponent, // don't pass through, rendered with renderItem\n SectionSeparatorComponent,\n renderItem: _renderItem,\n renderSectionFooter,\n renderSectionHeader,\n sections: _sections,\n stickySectionHeadersEnabled,\n ...passThroughProps\n } = this.props;\n\n const listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n\n const stickyHeaderIndices = this.props.stickySectionHeadersEnabled\n ? ([]: Array<number>)\n : undefined;\n\n let itemCount = 0;\n for (const section of this.props.sections) {\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n }\n\n // Add two for the section header and footer.\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n const renderItem = this._renderItem(itemCount);\n\n return (\n <VirtualizedList\n {...passThroughProps}\n keyExtractor={this._keyExtractor}\n stickyHeaderIndices={stickyHeaderIndices}\n renderItem={renderItem}\n data={this.props.sections}\n getItem={(sections, index) =>\n this._getItem(this.props, sections, index)\n }\n getItemCount={() => itemCount}\n onViewableItemsChanged={\n this.props.onViewableItemsChanged\n ? this._onViewableItemsChanged\n : undefined\n }\n ref={this._captureRef}\n />\n );\n }\n\n _getItem(\n props: Props<SectionT>,\n sections: ?$ReadOnlyArray<Item>,\n index: number,\n ): ?Item {\n if (!sections) {\n return null;\n }\n let itemIdx = index - 1;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionData = section.data;\n const itemCount = props.getItemCount(sectionData);\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n return null;\n }\n\n // $FlowFixMe[missing-local-annot]\n _keyExtractor = (item: Item, index: number) => {\n const info = this._subExtractor(index);\n return (info && info.key) || String(index);\n };\n\n _subExtractor(index: number): ?{\n section: SectionT,\n // Key of the section or combined key for section + item\n key: string,\n // Relative index within the section\n index: ?number,\n // True if this is the section header\n header?: ?boolean,\n leadingItem?: ?Item,\n leadingSection?: ?SectionT,\n trailingItem?: ?Item,\n trailingSection?: ?SectionT,\n ...\n } {\n let itemIndex = index;\n const {getItem, getItemCount, keyExtractor, sections} = this.props;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionData = section.data;\n const key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1],\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1],\n };\n } else {\n const extractor =\n section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n section,\n key:\n key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1],\n };\n }\n }\n }\n\n _convertViewable = (viewable: ViewToken): ?ViewToken => {\n invariant(viewable.index != null, 'Received a broken ViewToken');\n const info = this._subExtractor(viewable.index);\n if (!info) {\n return null;\n }\n const keyExtractorWithNullableIndex = info.section.keyExtractor;\n const keyExtractorWithNonNullableIndex =\n this.props.keyExtractor || defaultKeyExtractor;\n const key =\n keyExtractorWithNullableIndex != null\n ? keyExtractorWithNullableIndex(viewable.item, info.index)\n : keyExtractorWithNonNullableIndex(viewable.item, info.index ?? 0);\n\n return {\n ...viewable,\n index: info.index,\n key,\n section: info.section,\n };\n };\n\n _onViewableItemsChanged = ({\n viewableItems,\n changed,\n }: {\n viewableItems: Array<ViewToken>,\n changed: Array<ViewToken>,\n ...\n }) => {\n const onViewableItemsChanged = this.props.onViewableItemsChanged;\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems\n .map(this._convertViewable, this)\n .filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean),\n });\n }\n };\n\n _renderItem =\n (listItemCount: number): $FlowFixMe =>\n // eslint-disable-next-line react/no-unstable-nested-components\n ({item, index}: {item: Item, index: number, ...}) => {\n const info = this._subExtractor(index);\n if (!info) {\n return null;\n }\n const infoIndex = info.index;\n if (infoIndex == null) {\n const {section} = info;\n if (info.header === true) {\n const {renderSectionHeader} = this.props;\n return renderSectionHeader ? renderSectionHeader({section}) : null;\n } else {\n const {renderSectionFooter} = this.props;\n return renderSectionFooter ? renderSectionFooter({section}) : null;\n }\n } else {\n const renderItem = info.section.renderItem || this.props.renderItem;\n const SeparatorComponent = this._getSeparatorComponent(\n index,\n info,\n listItemCount,\n );\n invariant(renderItem, 'no renderItem!');\n return (\n <ItemWithSeparator\n SeparatorComponent={SeparatorComponent}\n LeadingSeparatorComponent={\n infoIndex === 0 ? this.props.SectionSeparatorComponent : undefined\n }\n cellKey={info.key}\n index={infoIndex}\n item={item}\n leadingItem={info.leadingItem}\n leadingSection={info.leadingSection}\n prevCellKey={(this._subExtractor(index - 1) || {}).key}\n // Callback to provide updateHighlight for this item\n setSelfHighlightCallback={this._setUpdateHighlightFor}\n setSelfUpdatePropsCallback={this._setUpdatePropsFor}\n // Provide child ability to set highlight/updateProps for previous item using prevCellKey\n updateHighlightFor={this._updateHighlightFor}\n updatePropsFor={this._updatePropsFor}\n renderItem={renderItem}\n section={info.section}\n trailingItem={info.trailingItem}\n trailingSection={info.trailingSection}\n inverted={!!this.props.inverted}\n />\n );\n }\n };\n\n _updatePropsFor = (cellKey: string, value: any) => {\n const updateProps = this._updatePropsMap[cellKey];\n if (updateProps != null) {\n updateProps(value);\n }\n };\n\n _updateHighlightFor = (cellKey: string, value: boolean) => {\n const updateHighlight = this._updateHighlightMap[cellKey];\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n\n _setUpdateHighlightFor = (\n cellKey: string,\n updateHighlightFn: ?(boolean) => void,\n ) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n delete this._updateHighlightFor[cellKey];\n }\n };\n\n _setUpdatePropsFor = (cellKey: string, updatePropsFn: ?(boolean) => void) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n\n _getSeparatorComponent(\n index: number,\n info?: ?Object,\n listItemCount: number,\n ): ?React.ComponentType<any> {\n info = info || this._subExtractor(index);\n if (!info) {\n return null;\n }\n const ItemSeparatorComponent =\n info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n const {SectionSeparatorComponent} = this.props;\n const isLastItemInList = index === listItemCount - 1;\n const isLastItemInSection =\n info.index === this.props.getItemCount(info.section.data) - 1;\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n return null;\n }\n\n _updateHighlightMap: {[string]: (boolean) => void} = {};\n _updatePropsMap: {[string]: void | (boolean => void)} = {};\n _listRef: ?React.ElementRef<typeof VirtualizedList>;\n _captureRef = (ref: null | React$ElementRef<Class<VirtualizedList>>) => {\n this._listRef = ref;\n };\n}\n\ntype ItemWithSeparatorCommonProps = $ReadOnly<{|\n leadingItem: ?Item,\n leadingSection: ?Object,\n section: Object,\n trailingItem: ?Item,\n trailingSection: ?Object,\n|}>;\n\ntype ItemWithSeparatorProps = $ReadOnly<{|\n ...ItemWithSeparatorCommonProps,\n LeadingSeparatorComponent: ?React.ComponentType<any>,\n SeparatorComponent: ?React.ComponentType<any>,\n cellKey: string,\n index: number,\n item: Item,\n setSelfHighlightCallback: (\n cellKey: string,\n updateFn: ?(boolean) => void,\n ) => void,\n setSelfUpdatePropsCallback: (\n cellKey: string,\n updateFn: ?(boolean) => void,\n ) => void,\n prevCellKey?: ?string,\n updateHighlightFor: (prevCellKey: string, value: boolean) => void,\n updatePropsFor: (prevCellKey: string, value: Object) => void,\n renderItem: Function,\n inverted: boolean,\n|}>;\n\nfunction ItemWithSeparator(props: ItemWithSeparatorProps): React.Node {\n const {\n LeadingSeparatorComponent,\n // this is the trailing separator and is associated with this item\n SeparatorComponent,\n cellKey,\n prevCellKey,\n setSelfHighlightCallback,\n updateHighlightFor,\n setSelfUpdatePropsCallback,\n updatePropsFor,\n item,\n index,\n section,\n inverted,\n } = props;\n\n const [leadingSeparatorHiglighted, setLeadingSeparatorHighlighted] =\n React.useState(false);\n\n const [separatorHighlighted, setSeparatorHighlighted] = React.useState(false);\n\n const [leadingSeparatorProps, setLeadingSeparatorProps] = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection,\n });\n const [separatorProps, setSeparatorProps] = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection,\n });\n\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [\n cellKey,\n setSelfHighlightCallback,\n setSeparatorProps,\n setSelfUpdatePropsCallback,\n ]);\n\n const separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (\n select: 'leading' | 'trailing',\n newProps: $Shape<ItemWithSeparatorCommonProps>,\n ) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps({...leadingSeparatorProps, ...newProps});\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, {...leadingSeparatorProps, ...newProps});\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps({...separatorProps, ...newProps});\n }\n },\n };\n const element = props.renderItem({\n item,\n index,\n section,\n separators,\n });\n const leadingSeparator = LeadingSeparatorComponent != null && (\n <LeadingSeparatorComponent\n highlighted={leadingSeparatorHiglighted}\n {...leadingSeparatorProps}\n />\n );\n const separator = SeparatorComponent != null && (\n <SeparatorComponent\n highlighted={separatorHighlighted}\n {...separatorProps}\n />\n );\n return leadingSeparator || separator ? (\n <View>\n {inverted === false ? leadingSeparator : separator}\n {element}\n {inverted === false ? separator : leadingSeparator}\n </View>\n ) : (\n element\n );\n}\n\n/* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n// $FlowFixMe[method-unbinding]\nmodule.exports = (VirtualizedSectionList: React.AbstractComponent<\n React.ElementConfig<typeof VirtualizedSectionList>,\n $ReadOnly<{\n getListRef: () => ?React.ElementRef<typeof VirtualizedList>,\n scrollToLocation: (params: ScrollToLocationParamsType) => void,\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 strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport Text from '../../Text/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(\n (Text: $FlowFixMe),\n): AnimatedComponentType<\n React.ElementConfig<typeof Text>,\n React.ElementRef<typeof Text>,\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 strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport View from '../../Components/View/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(View): AnimatedComponentType<\n React.ElementConfig<typeof View>,\n React.ElementRef<typeof View>,\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 * @format\n */\n\n'use strict';\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {ImageBackgroundProps} from './ImageProps';\n\nimport View from '../Components/View/View';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport Image from './Image';\nimport * as React from 'react';\n\n/**\n * Very simple drop-in replacement for <Image> which supports nesting views.\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, ImageBackground, Text } from 'react-native';\n *\n * class DisplayAnImageBackground extends Component {\n * render() {\n * return (\n * <ImageBackground\n * style={{width: 50, height: 50}}\n * source={{uri: 'https://reactnative.dev/img/opengraph.png'}}\n * >\n * <Text>React</Text>\n * </ImageBackground>\n * );\n * }\n * }\n *\n * // App registration and rendering\n * AppRegistry.registerComponent('DisplayAnImageBackground', () => DisplayAnImageBackground);\n * ```\n */\nclass ImageBackground extends React.Component<ImageBackgroundProps> {\n setNativeProps(props: Object) {\n // Work-around flow\n const viewRef = this._viewRef;\n if (viewRef) {\n viewRef.setNativeProps(props);\n }\n }\n\n _viewRef: ?React.ElementRef<typeof View> = null;\n\n _captureRef = (\n ref: null | React$ElementRef<\n React$AbstractComponent<\n ViewProps,\n React.ElementRef<HostComponent<ViewProps>>,\n >,\n >,\n ) => {\n this._viewRef = ref;\n };\n\n render(): React.Node {\n const {\n children,\n style,\n imageStyle,\n imageRef,\n importantForAccessibility,\n ...props\n } = this.props;\n\n const flattenedStyle = flattenStyle(style);\n return (\n <View\n accessibilityIgnoresInvertColors={true}\n importantForAccessibility={importantForAccessibility}\n style={style}\n ref={this._captureRef}>\n <Image\n {...props}\n importantForAccessibility={importantForAccessibility}\n style={[\n StyleSheet.absoluteFill,\n {\n // Temporary Workaround:\n // Current (imperfect yet) implementation of <Image> overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of <ImageBackground> and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual <Image> component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the <Image>.\n width: flattenedStyle?.width,\n height: flattenedStyle?.height,\n },\n imageStyle,\n ]}\n ref={imageRef}\n />\n {children}\n </View>\n );\n }\n}\n\nmodule.exports = ImageBackground;\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 * @format\n */\n\nimport StyleSheet, {\n type ColorValue,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport RCTInputAccessoryViewNativeComponent from './RCTInputAccessoryViewNativeComponent';\nimport * as React from 'react';\n\n/**\n * Note: iOS only\n *\n * A component which enables customization of the keyboard input accessory view.\n * The input accessory view is displayed above the keyboard whenever a TextInput\n * has focus. This component can be used to create custom toolbars.\n *\n * To use this component wrap your custom toolbar with the\n * InputAccessoryView component, and set a nativeID. Then, pass that nativeID\n * as the inputAccessoryViewID of whatever TextInput you desire. A simple\n * example:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, TextInput, InputAccessoryView, Button } from 'react-native';\n *\n * export default class UselessTextInput extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {text: 'Placeholder Text'};\n * }\n *\n * render() {\n * const inputAccessoryViewID = \"uniqueID\";\n * return (\n * <View>\n * <ScrollView keyboardDismissMode=\"interactive\">\n * <TextInput\n * style={{\n * padding: 10,\n * paddingTop: 50,\n * }}\n * inputAccessoryViewID=inputAccessoryViewID\n * onChangeText={text => this.setState({text})}\n * value={this.state.text}\n * />\n * </ScrollView>\n * <InputAccessoryView nativeID=inputAccessoryViewID>\n * <Button\n * onPress={() => this.setState({text: 'Placeholder Text'})}\n * title=\"Reset Text\"\n * />\n * </InputAccessoryView>\n * </View>\n * );\n * }\n * }\n *\n * // skip this line if using Create React Native App\n * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);\n * ```\n *\n * This component can also be used to create sticky text inputs (text inputs\n * which are anchored to the top of the keyboard). To do this, wrap a\n * TextInput with the InputAccessoryView component, and don't set a nativeID.\n * For an example, look at InputAccessoryViewExample.js in RNTester.\n */\n\ntype Props = $ReadOnly<{|\n +children: React.Node,\n /**\n * An ID which is used to associate this `InputAccessoryView` to\n * specified TextInput(s).\n */\n nativeID?: ?string,\n style?: ?ViewStyleProp,\n backgroundColor?: ?ColorValue,\n|}>;\n\nclass InputAccessoryView extends React.Component<Props> {\n render(): React.Node {\n if (Platform.OS === 'ios') {\n if (React.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return (\n <RCTInputAccessoryViewNativeComponent\n style={[this.props.style, styles.container]}\n nativeID={this.props.nativeID}\n backgroundColor={this.props.backgroundColor}>\n {this.props.children}\n </RCTInputAccessoryViewNativeComponent>\n );\n } else {\n console.warn('<InputAccessoryView> is only supported on iOS.');\n return null;\n }\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n },\n});\n\nmodule.exports = InputAccessoryView;\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 strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n backgroundColor?: ?ColorValue,\n|}>;\n\nexport default (codegenNativeComponent<NativeProps>('InputAccessory', {\n interfaceOnly: true,\n paperComponentName: 'RCTInputAccessoryView',\n excludedPlatforms: ['android'],\n}): HostComponent<NativeProps>);\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 * @format\n * @flow strict-local\n */\n\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {\n ViewLayout,\n ViewLayoutEvent,\n ViewProps,\n} from '../View/ViewPropTypes';\nimport type {KeyboardEvent, KeyboardMetrics} from './Keyboard';\n\nimport LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport {type EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport AccessibilityInfo from '../AccessibilityInfo/AccessibilityInfo';\nimport View from '../View/View';\nimport Keyboard from './Keyboard';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Specify how to react to the presence of the keyboard.\n */\n behavior?: ?('height' | 'position' | 'padding'),\n\n /**\n * Style of the content container when `behavior` is 'position'.\n */\n contentContainerStyle?: ?ViewStyleProp,\n\n /**\n * Controls whether this `KeyboardAvoidingView` instance should take effect.\n * This is useful when more than one is on the screen. Defaults to true.\n */\n enabled?: ?boolean,\n\n /**\n * Distance between the top of the user screen and the React Native view. This\n * may be non-zero in some cases. Defaults to 0.\n */\n keyboardVerticalOffset?: number,\n|}>;\n\ntype State = {|\n bottom: number,\n|};\n\n/**\n * View that moves out of the way when the keyboard appears by automatically\n * adjusting its height, position, or bottom padding.\n */\nclass KeyboardAvoidingView extends React.Component<Props, State> {\n _frame: ?ViewLayout = null;\n _keyboardEvent: ?KeyboardEvent = null;\n _subscriptions: Array<EventSubscription> = [];\n viewRef: {current: React.ElementRef<typeof View> | null, ...};\n _initialFrameHeight: number = 0;\n\n constructor(props: Props) {\n super(props);\n this.state = {bottom: 0};\n this.viewRef = React.createRef();\n }\n\n async _relativeKeyboardHeight(\n keyboardFrame: KeyboardMetrics,\n ): Promise<number> {\n const frame = this._frame;\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n // On iOS when Prefer Cross-Fade Transitions is enabled, the keyboard position\n // & height is reported differently (0 instead of Y position value matching height of frame)\n if (\n Platform.OS === 'ios' &&\n keyboardFrame.screenY === 0 &&\n (await AccessibilityInfo.prefersCrossFadeTransitions())\n ) {\n return 0;\n }\n\n const keyboardY =\n keyboardFrame.screenY - (this.props.keyboardVerticalOffset ?? 0);\n\n if (this.props.behavior === 'height') {\n return Math.max(\n this.state.bottom + frame.y + frame.height - keyboardY,\n 0,\n );\n }\n\n // Calculate the displacement needed for the view such that it\n // no longer overlaps with the keyboard\n return Math.max(frame.y + frame.height - keyboardY, 0);\n }\n\n _onKeyboardChange = (event: ?KeyboardEvent) => {\n this._keyboardEvent = event;\n this._updateBottomIfNecessary();\n };\n\n _onLayout = async (event: ViewLayoutEvent) => {\n const wasFrameNull = this._frame == null;\n this._frame = event.nativeEvent.layout;\n if (!this._initialFrameHeight) {\n // save the initial frame height, before the keyboard is visible\n this._initialFrameHeight = this._frame.height;\n }\n\n if (wasFrameNull) {\n await this._updateBottomIfNecessary();\n }\n\n if (this.props.onLayout) {\n this.props.onLayout(event);\n }\n };\n\n _updateBottomIfNecessary = async () => {\n if (this._keyboardEvent == null) {\n this.setState({bottom: 0});\n return;\n }\n\n const {duration, easing, endCoordinates} = this._keyboardEvent;\n const height = await this._relativeKeyboardHeight(endCoordinates);\n\n if (this.state.bottom === height) {\n return;\n }\n\n if (duration && easing) {\n LayoutAnimation.configureNext({\n // We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m\n duration: duration > 10 ? duration : 10,\n update: {\n duration: duration > 10 ? duration : 10,\n type: LayoutAnimation.Types[easing] || 'keyboard',\n },\n });\n }\n this.setState({bottom: height});\n };\n\n componentDidMount(): void {\n if (Platform.OS === 'ios') {\n this._subscriptions = [\n Keyboard.addListener('keyboardWillChangeFrame', this._onKeyboardChange),\n ];\n } else {\n this._subscriptions = [\n Keyboard.addListener('keyboardDidHide', this._onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', this._onKeyboardChange),\n ];\n }\n }\n\n componentWillUnmount(): void {\n this._subscriptions.forEach(subscription => {\n subscription.remove();\n });\n }\n\n render(): React.Node {\n const {\n behavior,\n children,\n contentContainerStyle,\n enabled = true,\n // eslint-disable-next-line no-unused-vars\n keyboardVerticalOffset = 0,\n style,\n onLayout,\n ...props\n } = this.props;\n const bottomHeight = enabled === true ? this.state.bottom : 0;\n switch (behavior) {\n case 'height':\n let heightStyle;\n if (this._frame != null && this.state.bottom > 0) {\n // Note that we only apply a height change when there is keyboard present,\n // i.e. this.state.bottom is greater than 0. If we remove that condition,\n // this.frame.height will never go back to its original value.\n // When height changes, we need to disable flex.\n heightStyle = {\n height: this._initialFrameHeight - bottomHeight,\n flex: 0,\n };\n }\n return (\n <View\n ref={this.viewRef}\n style={StyleSheet.compose(style, heightStyle)}\n onLayout={this._onLayout}\n {...props}>\n {children}\n </View>\n );\n\n case 'position':\n return (\n <View\n ref={this.viewRef}\n style={style}\n onLayout={this._onLayout}\n {...props}>\n <View\n style={StyleSheet.compose(contentContainerStyle, {\n bottom: bottomHeight,\n })}>\n {children}\n </View>\n </View>\n );\n\n case 'padding':\n return (\n <View\n ref={this.viewRef}\n style={StyleSheet.compose(style, {paddingBottom: bottomHeight})}\n onLayout={this._onLayout}\n {...props}>\n {children}\n </View>\n );\n\n default:\n return (\n <View\n ref={this.viewRef}\n onLayout={this._onLayout}\n style={style}\n {...props}>\n {children}\n </View>\n );\n }\n }\n}\n\nexport default KeyboardAvoidingView;\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 * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {RootTag} from '../ReactNative/RootTag';\nimport type {DirectEventHandler} from '../Types/CodegenTypes';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport {VirtualizedListContextResetter} from '../Lists/VirtualizedListContext.js';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport ModalInjection from './ModalInjection';\nimport NativeModalManager from './NativeModalManager';\nimport RCTModalHostView from './RCTModalHostViewNativeComponent';\n\nconst ScrollView = require('../Components/ScrollView/ScrollView');\nconst View = require('../Components/View/View');\nconst AppContainer = require('../ReactNative/AppContainer');\nconst I18nManager = require('../ReactNative/I18nManager');\nconst {RootTagContext} = require('../ReactNative/RootTag');\nconst StyleSheet = require('../StyleSheet/StyleSheet');\nconst Platform = require('../Utilities/Platform');\nconst React = require('react');\n\ntype ModalEventDefinitions = {\n modalDismissed: [{modalID: number}],\n};\n\nconst ModalEventEmitter =\n Platform.OS === 'ios' && NativeModalManager != null\n ? new NativeEventEmitter<ModalEventDefinitions>(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeModalManager,\n )\n : null;\n\n/**\n * The Modal component is a simple way to present content above an enclosing view.\n *\n * See https://reactnative.dev/docs/modal\n */\n\n// In order to route onDismiss callbacks, we need to uniquely identifier each\n// <Modal> on screen. There can be different ones, either nested or as siblings.\n// We cannot pass the onDismiss callback to native as the view will be\n// destroyed before the callback is fired.\nlet uniqueModalIdentifier = 0;\n\ntype OrientationChangeEvent = $ReadOnly<{|\n orientation: 'portrait' | 'landscape',\n|}>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The `animationType` prop controls how the modal animates.\n *\n * See https://reactnative.dev/docs/modal#animationtype\n */\n animationType?: ?('none' | 'slide' | 'fade'),\n\n /**\n * The `presentationStyle` prop controls how the modal appears.\n *\n * See https://reactnative.dev/docs/modal#presentationstyle\n */\n presentationStyle?: ?(\n | 'fullScreen'\n | 'pageSheet'\n | 'formSheet'\n | 'overFullScreen'\n ),\n\n /**\n * The `transparent` prop determines whether your modal will fill the\n * entire view.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n transparent?: ?boolean,\n\n /**\n * The `statusBarTranslucent` prop determines whether your modal should go under\n * the system statusbar.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n statusBarTranslucent?: ?boolean,\n\n /**\n * The `hardwareAccelerated` prop controls whether to force hardware\n * acceleration for the underlying window.\n *\n * This prop works only on Android.\n *\n * See https://reactnative.dev/docs/modal#hardwareaccelerated\n */\n hardwareAccelerated?: ?boolean,\n\n /**\n * The `visible` prop determines whether your modal is visible.\n *\n * See https://reactnative.dev/docs/modal#visible\n */\n visible?: ?boolean,\n\n /**\n * The `onRequestClose` callback is called when the user taps the hardware\n * back button on Android or the menu button on Apple TV.\n *\n * This is required on Apple TV and Android.\n *\n * See https://reactnative.dev/docs/modal#onrequestclose\n */\n onRequestClose?: ?DirectEventHandler<null>,\n\n /**\n * The `onShow` prop allows passing a function that will be called once the\n * modal has been shown.\n *\n * See https://reactnative.dev/docs/modal#onshow\n */\n onShow?: ?DirectEventHandler<null>,\n\n /**\n * The `onDismiss` prop allows passing a function that will be called once\n * the modal has been dismissed.\n *\n * See https://reactnative.dev/docs/modal#ondismiss\n */\n onDismiss?: ?() => mixed,\n\n /**\n * The `supportedOrientations` prop allows the modal to be rotated to any of the specified orientations.\n *\n * See https://reactnative.dev/docs/modal#supportedorientations\n */\n supportedOrientations?: ?$ReadOnlyArray<\n | 'portrait'\n | 'portrait-upside-down'\n | 'landscape'\n | 'landscape-left'\n | 'landscape-right',\n >,\n\n /**\n * The `onOrientationChange` callback is called when the orientation changes while the modal is being displayed.\n *\n * See https://reactnative.dev/docs/modal#onorientationchange\n */\n onOrientationChange?: ?DirectEventHandler<OrientationChangeEvent>,\n|}>;\n\nfunction confirmProps(props: Props) {\n if (__DEV__) {\n if (\n props.presentationStyle &&\n props.presentationStyle !== 'overFullScreen' &&\n props.transparent === true\n ) {\n console.warn(\n `Modal with '${props.presentationStyle}' presentation style and 'transparent' value is not supported.`,\n );\n }\n }\n}\n\nclass Modal extends React.Component<Props> {\n static defaultProps: {|hardwareAccelerated: boolean, visible: boolean|} = {\n visible: true,\n hardwareAccelerated: false,\n };\n\n static contextType: React.Context<RootTag> = RootTagContext;\n\n _identifier: number;\n _eventSubscription: ?EventSubscription;\n\n constructor(props: Props) {\n super(props);\n if (__DEV__) {\n confirmProps(props);\n }\n this._identifier = uniqueModalIdentifier++;\n }\n\n componentDidMount() {\n // 'modalDismissed' is for the old renderer in iOS only\n if (ModalEventEmitter) {\n this._eventSubscription = ModalEventEmitter.addListener(\n 'modalDismissed',\n event => {\n if (event.modalID === this._identifier && this.props.onDismiss) {\n this.props.onDismiss();\n }\n },\n );\n }\n }\n\n componentWillUnmount() {\n if (this._eventSubscription) {\n this._eventSubscription.remove();\n }\n }\n\n componentDidUpdate() {\n if (__DEV__) {\n confirmProps(this.props);\n }\n }\n\n render(): React.Node {\n if (this.props.visible !== true) {\n return null;\n }\n\n const containerStyles = {\n backgroundColor:\n this.props.transparent === true ? 'transparent' : 'white',\n };\n\n let animationType = this.props.animationType || 'none';\n\n let presentationStyle = this.props.presentationStyle;\n if (!presentationStyle) {\n presentationStyle = 'fullScreen';\n if (this.props.transparent === true) {\n presentationStyle = 'overFullScreen';\n }\n }\n\n const innerChildren = __DEV__ ? (\n <AppContainer rootTag={this.context}>{this.props.children}</AppContainer>\n ) : (\n this.props.children\n );\n\n return (\n <RCTModalHostView\n animationType={animationType}\n presentationStyle={presentationStyle}\n transparent={this.props.transparent}\n hardwareAccelerated={this.props.hardwareAccelerated}\n onRequestClose={this.props.onRequestClose}\n onShow={this.props.onShow}\n onDismiss={() => {\n if (this.props.onDismiss) {\n this.props.onDismiss();\n }\n }}\n visible={this.props.visible}\n statusBarTranslucent={this.props.statusBarTranslucent}\n identifier={this._identifier}\n style={styles.modal}\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n onStartShouldSetResponder={this._shouldSetResponder}\n supportedOrientations={this.props.supportedOrientations}\n onOrientationChange={this.props.onOrientationChange}\n testID={this.props.testID}>\n <VirtualizedListContextResetter>\n <ScrollView.Context.Provider value={null}>\n <View\n style={[styles.container, containerStyles]}\n collapsable={false}>\n {innerChildren}\n </View>\n </ScrollView.Context.Provider>\n </VirtualizedListContextResetter>\n </RCTModalHostView>\n );\n }\n\n // We don't want any responder events bubbling out of the modal.\n _shouldSetResponder(): boolean {\n return true;\n }\n}\n\nconst side = I18nManager.getConstants().isRTL ? 'right' : 'left';\nconst styles = StyleSheet.create({\n modal: {\n position: 'absolute',\n },\n container: {\n /* $FlowFixMe[invalid-computed-prop] (>=0.111.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.111 was deployed. To see\n * the error, delete this comment and run Flow. */\n [side]: 0,\n top: 0,\n flex: 1,\n },\n});\n\nconst ExportedModal: React.AbstractComponent<\n React.ElementConfig<typeof Modal>,\n> = ModalInjection.unstable_Modal ?? Modal;\n\nmodule.exports = ExportedModal;\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 strict-local\n * @format\n */\n\nimport typeof Modal from './Modal';\n\nexport default {\n unstable_Modal: (null: ?Modal),\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('ModalManager'): ?Spec);\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 * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n DirectEventHandler,\n Int32,\n WithDefault,\n} from '../Types/CodegenTypes';\n\nimport codegenNativeComponent from '../Utilities/codegenNativeComponent';\n\ntype OrientationChangeEvent = $ReadOnly<{|\n orientation: 'portrait' | 'landscape',\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The `animationType` prop controls how the modal animates.\n *\n * See https://reactnative.dev/docs/modal#animationtype\n */\n animationType?: WithDefault<'none' | 'slide' | 'fade', 'none'>,\n\n /**\n * The `presentationStyle` prop controls how the modal appears.\n *\n * See https://reactnative.dev/docs/modal#presentationstyle\n */\n presentationStyle?: WithDefault<\n 'fullScreen' | 'pageSheet' | 'formSheet' | 'overFullScreen',\n 'fullScreen',\n >,\n\n /**\n * The `transparent` prop determines whether your modal will fill the\n * entire view.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n transparent?: WithDefault<boolean, false>,\n\n /**\n * The `statusBarTranslucent` prop determines whether your modal should go under\n * the system statusbar.\n *\n * See https://reactnative.dev/docs/modal#statusBarTranslucent\n */\n statusBarTranslucent?: WithDefault<boolean, false>,\n\n /**\n * The `hardwareAccelerated` prop controls whether to force hardware\n * acceleration for the underlying window.\n *\n * See https://reactnative.dev/docs/modal#hardwareaccelerated\n */\n hardwareAccelerated?: WithDefault<boolean, false>,\n\n /**\n * The `onRequestClose` callback is called when the user taps the hardware\n * back button on Android or the menu button on Apple TV.\n *\n * This is required on Apple TV and Android.\n *\n * See https://reactnative.dev/docs/modal#onrequestclose\n */\n onRequestClose?: ?DirectEventHandler<null>,\n\n /**\n * The `onShow` prop allows passing a function that will be called once the\n * modal has been shown.\n *\n * See https://reactnative.dev/docs/modal#onshow\n */\n onShow?: ?DirectEventHandler<null>,\n\n /**\n * The `onDismiss` prop allows passing a function that will be called once\n * the modal has been dismissed.\n *\n * See https://reactnative.dev/docs/modal#ondismiss\n */\n onDismiss?: ?DirectEventHandler<null>,\n\n /**\n * The `visible` prop determines whether your modal is visible.\n *\n * See https://reactnative.dev/docs/modal#visible\n */\n visible?: WithDefault<boolean, false>,\n\n /**\n * Deprecated. Use the `animationType` prop instead.\n */\n animated?: WithDefault<boolean, false>,\n\n /**\n * The `supportedOrientations` prop allows the modal to be rotated to any of the specified orientations.\n *\n * See https://reactnative.dev/docs/modal#supportedorientations\n */\n supportedOrientations?: WithDefault<\n $ReadOnlyArray<\n | 'portrait'\n | 'portrait-upside-down'\n | 'landscape'\n | 'landscape-left'\n | 'landscape-right',\n >,\n 'portrait',\n >,\n\n /**\n * The `onOrientationChange` callback is called when the orientation changes while the modal is being displayed.\n *\n * See https://reactnative.dev/docs/modal#onorientationchange\n */\n onOrientationChange?: ?DirectEventHandler<OrientationChangeEvent>,\n\n /**\n * The `identifier` is the unique number for identifying Modal components.\n */\n identifier?: WithDefault<Int32, 0>,\n|}>;\n\nexport default (codegenNativeComponent<NativeProps>('ModalHostView', {\n interfaceOnly: true,\n paperComponentName: 'RCTModalHostView',\n}): HostComponent<NativeProps>);\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 strict-local\n * @format\n */\n\nimport NativeI18nManager from './NativeI18nManager';\n\nconst i18nConstants: {|\n doLeftAndRightSwapInRTL: boolean,\n isRTL: boolean,\n localeIdentifier?: ?string,\n|} = getI18nManagerConstants();\n\nfunction getI18nManagerConstants() {\n if (NativeI18nManager) {\n const {isRTL, doLeftAndRightSwapInRTL, localeIdentifier} =\n NativeI18nManager.getConstants();\n return {isRTL, doLeftAndRightSwapInRTL, localeIdentifier};\n }\n\n return {\n isRTL: false,\n doLeftAndRightSwapInRTL: true,\n };\n}\n\nmodule.exports = {\n getConstants: (): {|\n doLeftAndRightSwapInRTL: boolean,\n isRTL: boolean,\n localeIdentifier: ?string,\n |} => {\n return i18nConstants;\n },\n\n allowRTL: (shouldAllow: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.allowRTL(shouldAllow);\n },\n\n forceRTL: (shouldForce: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.forceRTL(shouldForce);\n },\n\n swapLeftAndRightInRTL: (flipStyles: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.swapLeftAndRightInRTL(flipStyles);\n },\n\n isRTL: i18nConstants.isRTL,\n doLeftAndRightSwapInRTL: i18nConstants.doLeftAndRightSwapInRTL,\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n isRTL: boolean,\n doLeftAndRightSwapInRTL: boolean,\n localeIdentifier: ?string,\n |};\n allowRTL: (allowRTL: boolean) => void;\n forceRTL: (forceRTL: boolean) => void;\n swapLeftAndRightInRTL: (flipStyles: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('I18nManager'): ?Spec);\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 strict-local\n * @format\n */\n\nimport type {\n LayoutEvent,\n MouseEvent,\n PressEvent,\n} from '../../Types/CoreEventTypes';\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityRole,\n AccessibilityState,\n AccessibilityValue,\n} from '../View/ViewAccessibility';\n\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport usePressability from '../../Pressability/usePressability';\nimport {type RectOrSize} from '../../StyleSheet/Rect';\nimport View from '../View/View';\nimport useAndroidRippleForView, {\n type RippleConfig,\n} from './useAndroidRippleForView';\nimport * as React from 'react';\nimport {useImperativeHandle, useMemo, useRef, useState} from 'react';\n\ntype ViewStyleProp = $ElementType<React.ElementConfig<typeof View>, 'style'>;\n\nexport type StateCallbackType = $ReadOnly<{|\n pressed: boolean,\n|}>;\n\ntype Props = $ReadOnly<{|\n /**\n * Accessibility.\n */\n accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,\n accessibilityElementsHidden?: ?boolean,\n accessibilityHint?: ?Stringish,\n accessibilityLanguage?: ?Stringish,\n accessibilityIgnoresInvertColors?: ?boolean,\n accessibilityLabel?: ?Stringish,\n accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),\n accessibilityRole?: ?AccessibilityRole,\n accessibilityState?: ?AccessibilityState,\n accessibilityValue?: ?AccessibilityValue,\n 'aria-valuemax'?: AccessibilityValue['max'],\n 'aria-valuemin'?: AccessibilityValue['min'],\n 'aria-valuenow'?: AccessibilityValue['now'],\n 'aria-valuetext'?: AccessibilityValue['text'],\n accessibilityViewIsModal?: ?boolean,\n 'aria-modal'?: ?boolean,\n accessible?: ?boolean,\n\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n /**\n * A value indicating whether the accessibility elements contained within\n * this accessibility element are hidden.\n */\n 'aria-hidden'?: ?boolean,\n 'aria-live'?: ?('polite' | 'assertive' | 'off'),\n focusable?: ?boolean,\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n\n /**\n * Whether a press gesture can be interrupted by a parent gesture such as a\n * scroll event. Defaults to true.\n */\n cancelable?: ?boolean,\n\n /**\n * Either children or a render prop that receives a boolean reflecting whether\n * the component is currently pressed.\n */\n children: React.Node | ((state: StateCallbackType) => React.Node),\n\n /**\n * Duration to wait after hover in before calling `onHoverIn`.\n */\n delayHoverIn?: ?number,\n\n /**\n * Duration to wait after hover out before calling `onHoverOut`.\n */\n delayHoverOut?: ?number,\n\n /**\n * Duration (in milliseconds) from `onPressIn` before `onLongPress` is called.\n */\n delayLongPress?: ?number,\n\n /**\n * Whether the press behavior is disabled.\n */\n disabled?: ?boolean,\n\n /**\n * Additional distance outside of this view in which a press is detected.\n */\n hitSlop?: ?RectOrSize,\n\n /**\n * Additional distance outside of this view in which a touch is considered a\n * press before `onPressOut` is triggered.\n */\n pressRetentionOffset?: ?RectOrSize,\n\n /**\n * Called when this view's layout changes.\n */\n onLayout?: ?(event: LayoutEvent) => mixed,\n\n /**\n * Called when the hover is activated to provide visual feedback.\n */\n onHoverIn?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when the hover is deactivated to undo visual feedback.\n */\n onHoverOut?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when a long-tap gesture is detected.\n */\n onLongPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a single tap gesture is detected.\n */\n onPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is engaged before `onPress`.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is released before `onPress`.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Either view styles or a function that receives a boolean reflecting whether\n * the component is currently pressed and returns view styles.\n */\n style?: ViewStyleProp | ((state: StateCallbackType) => ViewStyleProp),\n\n /**\n * Identifier used to find this view in tests.\n */\n testID?: ?string,\n\n /**\n * If true, doesn't play system sound on touch.\n */\n android_disableSound?: ?boolean,\n\n /**\n * Enables the Android ripple effect and configures its color.\n */\n android_ripple?: ?RippleConfig,\n\n /**\n * Used only for documentation or testing (e.g. snapshot testing).\n */\n testOnly_pressed?: ?boolean,\n\n /**\n * Duration to wait after press down before calling `onPressIn`.\n */\n unstable_pressDelay?: ?number,\n /**\n * Web to Native Accessibilty props\n * https://github.com/facebook/react-native/issues/34424\n */\n 'aria-label'?: ?string,\n|}>;\n\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction Pressable(props: Props, forwardedRef): React.Node {\n const {\n accessible,\n accessibilityState,\n 'aria-live': ariaLive,\n android_disableSound,\n android_ripple,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n cancelable,\n children,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n disabled,\n focusable,\n hitSlop,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n pressRetentionOffset,\n style,\n testOnly_pressed,\n unstable_pressDelay,\n ...restProps\n } = props;\n\n const viewRef = useRef<React.ElementRef<typeof View> | null>(null);\n useImperativeHandle(forwardedRef, () => viewRef.current);\n\n const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);\n\n const [pressed, setPressed] = usePressState(testOnly_pressed === true);\n\n let _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n _accessibilityState =\n disabled != null ? {..._accessibilityState, disabled} : _accessibilityState;\n\n const accessibilityValue = {\n max: props['aria-valuemax'] ?? props.accessibilityValue?.max,\n min: props['aria-valuemin'] ?? props.accessibilityValue?.min,\n now: props['aria-valuenow'] ?? props.accessibilityValue?.now,\n text: props['aria-valuetext'] ?? props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion;\n\n const accessibilityLabel = ariaLabel ?? props.accessibilityLabel;\n const restPropsWithDefaults: React.ElementConfig<typeof View> = {\n ...restProps,\n ...android_rippleConfig?.viewProps,\n accessible: accessible !== false,\n accessibilityViewIsModal:\n restProps['aria-modal'] ?? restProps.accessibilityViewIsModal,\n accessibilityLiveRegion,\n accessibilityLabel,\n accessibilityState: _accessibilityState,\n focusable: focusable !== false,\n accessibilityValue,\n hitSlop,\n };\n\n const config = useMemo(\n () => ({\n cancelable,\n disabled,\n hitSlop,\n pressRectOffset: pressRetentionOffset,\n android_disableSound,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n delayPressIn: unstable_pressDelay,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn(event: PressEvent): void {\n if (android_rippleConfig != null) {\n android_rippleConfig.onPressIn(event);\n }\n setPressed(true);\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressMove: android_rippleConfig?.onPressMove,\n onPressOut(event: PressEvent): void {\n if (android_rippleConfig != null) {\n android_rippleConfig.onPressOut(event);\n }\n setPressed(false);\n if (onPressOut != null) {\n onPressOut(event);\n }\n },\n }),\n [\n android_disableSound,\n android_rippleConfig,\n cancelable,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n disabled,\n hitSlop,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n pressRetentionOffset,\n setPressed,\n unstable_pressDelay,\n ],\n );\n const eventHandlers = usePressability(config);\n\n return (\n <View\n {...restPropsWithDefaults}\n {...eventHandlers}\n ref={viewRef}\n style={typeof style === 'function' ? style({pressed}) : style}\n collapsable={false}>\n {typeof children === 'function' ? children({pressed}) : children}\n {__DEV__ ? <PressabilityDebugView color=\"red\" hitSlop={hitSlop} /> : null}\n </View>\n );\n}\n\nfunction usePressState(forcePressed: boolean): [boolean, (boolean) => void] {\n const [pressed, setPressed] = useState(false);\n return [pressed || forcePressed, setPressed];\n}\n\nconst MemoedPressable = React.memo(React.forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\n\nexport default (MemoedPressable: React.AbstractComponent<\n Props,\n React.ElementRef<typeof View>,\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 strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../../Types/CoreEventTypes';\n\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport {Commands} from '../View/ViewNativeComponent';\nimport invariant from 'invariant';\nimport * as React from 'react';\nimport {useMemo} from 'react';\n\ntype NativeBackgroundProp = $ReadOnly<{|\n type: 'RippleAndroid',\n color: ?number,\n borderless: boolean,\n rippleRadius: ?number,\n|}>;\n\nexport type RippleConfig = {|\n color?: ColorValue,\n borderless?: boolean,\n radius?: number,\n foreground?: boolean,\n|};\n\n/**\n * Provides the event handlers and props for configuring the ripple effect on\n * supported versions of Android.\n */\nexport default function useAndroidRippleForView(\n rippleConfig: ?RippleConfig,\n viewRef: {|current: null | React.ElementRef<typeof View>|},\n): ?$ReadOnly<{|\n onPressIn: (event: PressEvent) => void,\n onPressMove: (event: PressEvent) => void,\n onPressOut: (event: PressEvent) => void,\n viewProps:\n | $ReadOnly<{|nativeBackgroundAndroid: NativeBackgroundProp|}>\n | $ReadOnly<{|nativeForegroundAndroid: NativeBackgroundProp|}>,\n|}> {\n const {color, borderless, radius, foreground} = rippleConfig ?? {};\n\n return useMemo(() => {\n if (\n Platform.OS === 'android' &&\n Platform.Version >= 21 &&\n (color != null || borderless != null || radius != null)\n ) {\n const processedColor = processColor(color);\n invariant(\n processedColor == null || typeof processedColor === 'number',\n 'Unexpected color given for Ripple color',\n );\n\n const nativeRippleValue = {\n type: 'RippleAndroid',\n color: processedColor,\n borderless: borderless === true,\n rippleRadius: radius,\n };\n\n return {\n viewProps:\n foreground === true\n ? {nativeForegroundAndroid: nativeRippleValue}\n : {nativeBackgroundAndroid: nativeRippleValue},\n onPressIn(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.hotspotUpdate(\n view,\n event.nativeEvent.locationX ?? 0,\n event.nativeEvent.locationY ?? 0,\n );\n Commands.setPressed(view, true);\n }\n },\n onPressMove(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.hotspotUpdate(\n view,\n event.nativeEvent.locationX ?? 0,\n event.nativeEvent.locationY ?? 0,\n );\n }\n },\n onPressOut(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.setPressed(view, false);\n }\n },\n };\n }\n return null;\n }, [borderless, color, foreground, radius, viewRef]);\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 strict-local\n * @format\n */\n\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {SafeAreaViewType} from './SafeAreaView.flow';\n\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport * as React from 'react';\n\nlet exported: React.AbstractComponent<ViewProps, React.ElementRef<typeof View>>;\n\n/**\n * Renders nested content and automatically applies paddings reflect the portion\n * of the view that is not covered by navigation bars, tab bars, toolbars, and\n * other ancestor views.\n *\n * Moreover, and most importantly, Safe Area's paddings reflect physical\n * limitation of the screen, such as rounded corners or camera notches (aka\n * sensor housing area on iPhone X).\n */\nif (Platform.OS === 'android') {\n exported = View;\n} else {\n exported = require('./RCTSafeAreaViewNativeComponent').default;\n}\n\nexport default (exported: SafeAreaViewType);\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // No props\n|}>;\n\nexport default (codegenNativeComponent<NativeProps>('SafeAreaView', {\n paperComponentName: 'RCTSafeAreaView',\n interfaceOnly: true,\n}): HostComponent<NativeProps>);\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 * @format\n * @flow strict-local\n */\n\nimport type {ImageSource} from '../../Image/ImageSource';\nimport type {SyntheticEvent} from '../../Types/CoreEventTypes';\nimport type {AccessibilityState} from '../View/ViewAccessibility';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport StyleSheet, {\n type ColorValue,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport SliderNativeComponent from './SliderNativeComponent';\nimport * as React from 'react';\n\ntype Event = SyntheticEvent<\n $ReadOnly<{|\n value: number,\n /**\n * Android Only.\n */\n fromUser?: boolean,\n |}>,\n>;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * Assigns a single image for the track. Only static images are supported.\n * The center pixel of the image will be stretched to fill the track.\n */\n trackImage?: ?ImageSource,\n\n /**\n * Assigns a minimum track image. Only static images are supported. The\n * rightmost pixel of the image will be stretched to fill the track.\n */\n minimumTrackImage?: ?ImageSource,\n\n /**\n * Assigns a maximum track image. Only static images are supported. The\n * leftmost pixel of the image will be stretched to fill the track.\n */\n maximumTrackImage?: ?ImageSource,\n\n /**\n * Sets an image for the thumb. Only static images are supported.\n */\n thumbImage?: ?ImageSource,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n\n /**\n * Used to style and layout the `Slider`. See `StyleSheet.js` and\n * `DeprecatedViewStylePropTypes.js` for more info.\n */\n style?: ?ViewStyleProp,\n\n /**\n * Initial value of the slider. The value should be between minimumValue\n * and maximumValue, which default to 0 and 1 respectively.\n * Default value is 0.\n *\n * *This is not a controlled component*, you don't need to update the\n * value during dragging.\n */\n value?: ?number,\n\n /**\n * Step value of the slider. The value should be\n * between 0 and (maximumValue - minimumValue).\n * Default value is 0.\n */\n step?: ?number,\n\n /**\n * Initial minimum value of the slider. Default value is 0.\n */\n minimumValue?: ?number,\n\n /**\n * Initial maximum value of the slider. Default value is 1.\n */\n maximumValue?: ?number,\n\n /**\n * The color used for the track to the left of the button.\n * Overrides the default blue gradient image on iOS.\n */\n minimumTrackTintColor?: ?ColorValue,\n\n /**\n * The color used for the track to the right of the button.\n * Overrides the default blue gradient image on iOS.\n */\n maximumTrackTintColor?: ?ColorValue,\n /**\n * The color used to tint the default thumb images on iOS, or the\n * color of the foreground switch grip on Android.\n */\n thumbTintColor?: ?ColorValue,\n\n /**\n * If true the user won't be able to move the slider.\n * Default value is false.\n */\n disabled?: ?boolean,\n\n /**\n * Callback continuously called while the user is dragging the slider.\n */\n onValueChange?: ?(value: number) => void,\n\n /**\n * Callback that is called when the user releases the slider,\n * regardless if the value has changed. The current value is passed\n * as an argument to the callback handler.\n */\n onSlidingComplete?: ?(value: number) => void,\n\n /**\n * Used to locate this view in UI automation tests.\n */\n testID?: ?string,\n\n /**\n Indicates to accessibility services that UI Component is in a specific State.\n */\n accessibilityState?: ?AccessibilityState,\n|}>;\n\n/**\n * A component used to select a single value from a range of values.\n *\n * ### Usage\n *\n * The example below shows how to use `Slider` to change\n * a value used by `Text`. The value is stored using\n * the state of the root component (`App`). The same component\n * subscribes to the `onValueChange` of `Slider` and changes\n * the value using `setState`.\n *\n *```\n * import React from 'react';\n * import { StyleSheet, Text, View, Slider } from 'react-native';\n *\n * export default class App extends React.Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * value: 50\n * }\n * }\n *\n * change(value) {\n * this.setState(() => {\n * return {\n * value: parseFloat(value)\n * };\n * });\n * }\n *\n * render() {\n * const {value} = this.state;\n * return (\n * <View style={styles.container}>\n * <Text style={styles.text}>{String(value)}</Text>\n * <Slider\n * step={1}\n * maximumValue={100}\n * onValueChange={this.change.bind(this)}\n * value={value} />\n * </View>\n * );\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * flexDirection: 'column',\n * justifyContent: 'center'\n * },\n * text: {\n * fontSize: 50,\n * textAlign: 'center'\n * }\n * });\n *```\n *\n */\nconst Slider = (\n props: Props,\n forwardedRef?: ?React.Ref<typeof SliderNativeComponent>,\n) => {\n const style = StyleSheet.compose(styles.slider, props.style);\n\n const {\n value = 0.5,\n minimumValue = 0,\n maximumValue = 1,\n step = 0,\n onValueChange,\n onSlidingComplete,\n ...localProps\n } = props;\n\n const onValueChangeEvent = onValueChange\n ? (event: Event) => {\n let userEvent = true;\n if (Platform.OS === 'android') {\n // On Android there's a special flag telling us the user is\n // dragging the slider.\n userEvent =\n event.nativeEvent.fromUser != null && event.nativeEvent.fromUser;\n }\n userEvent && onValueChange(event.nativeEvent.value);\n }\n : null;\n\n const onSlidingCompleteEvent = onSlidingComplete\n ? (event: Event) => {\n onSlidingComplete(event.nativeEvent.value);\n }\n : null;\n\n const disabled =\n props.disabled === true || props.accessibilityState?.disabled === true;\n const accessibilityState = disabled\n ? {...props.accessibilityState, disabled: true}\n : props.accessibilityState;\n\n return (\n <SliderNativeComponent\n {...localProps}\n accessibilityState={accessibilityState}\n // TODO: Reconcile these across the two platforms.\n enabled={!disabled}\n disabled={disabled}\n maximumValue={maximumValue}\n minimumValue={minimumValue}\n onResponderTerminationRequest={() => false}\n onSlidingComplete={onSlidingCompleteEvent}\n onStartShouldSetResponder={() => true}\n onValueChange={onValueChangeEvent}\n ref={forwardedRef}\n step={step}\n style={style}\n value={value}\n />\n );\n};\n\nconst SliderWithRef: React.AbstractComponent<\n Props,\n React.ElementRef<typeof SliderNativeComponent>,\n> = React.forwardRef(Slider);\n\nlet styles;\nif (Platform.OS === 'ios') {\n styles = StyleSheet.create({\n slider: {\n height: 40,\n },\n });\n} else {\n styles = StyleSheet.create({\n slider: {},\n });\n}\n\nmodule.exports = SliderWithRef;\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 * @format\n * @flow strict-local\n */\n\nimport type {ImageSource} from '../../Image/ImageSource';\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n DirectEventHandler,\n Double,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype Event = $ReadOnly<{|\n value: Double,\n fromUser?: boolean,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault<boolean, false>,\n enabled?: WithDefault<boolean, true>,\n maximumTrackImage?: ?ImageSource,\n maximumTrackTintColor?: ?ColorValue,\n maximumValue?: WithDefault<Double, 1>,\n minimumTrackImage?: ?ImageSource,\n minimumTrackTintColor?: ?ColorValue,\n minimumValue?: WithDefault<Double, 0>,\n step?: WithDefault<Double, 0>,\n testID?: WithDefault<string, ''>,\n thumbImage?: ?ImageSource,\n thumbTintColor?: ?ColorValue,\n trackImage?: ?ImageSource,\n value?: WithDefault<Double, 0>,\n\n // Events\n onValueChange?: ?BubblingEventHandler<Event>,\n onSlidingComplete?: ?DirectEventHandler<Event>,\n|}>;\n\nexport default (codegenNativeComponent<NativeProps>('Slider', {\n interfaceOnly: true,\n paperComponentName: 'RCTSlider',\n}): HostComponent<NativeProps>);\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 * @format\n * @flow\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\n\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport NativeStatusBarManagerAndroid from './NativeStatusBarManagerAndroid';\nimport NativeStatusBarManagerIOS from './NativeStatusBarManagerIOS';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n/**\n * Status bar style\n */\nexport type StatusBarStyle = $Keys<{\n /**\n * Default status bar style (dark for iOS, light for Android)\n */\n default: string,\n /**\n * Dark background, white texts and icons\n */\n 'light-content': string,\n /**\n * Light background, dark texts and icons\n */\n 'dark-content': string,\n ...\n}>;\n\n/**\n * Status bar animation\n */\nexport type StatusBarAnimation = $Keys<{\n /**\n * No animation\n */\n none: string,\n /**\n * Fade animation\n */\n fade: string,\n /**\n * Slide animation\n */\n slide: string,\n ...\n}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * The background color of the status bar.\n * @platform android\n */\n backgroundColor?: ?ColorValue,\n /**\n * If the status bar is translucent.\n * When translucent is set to true, the app will draw under the status bar.\n * This is useful when using a semi transparent status bar color.\n *\n * @platform android\n */\n translucent?: ?boolean,\n|}>;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * If the network activity indicator should be visible.\n *\n * @platform ios\n */\n networkActivityIndicatorVisible?: ?boolean,\n /**\n * The transition effect when showing and hiding the status bar using the `hidden`\n * prop. Defaults to 'fade'.\n *\n * @platform ios\n */\n showHideTransition?: ?('fade' | 'slide' | 'none'),\n|}>;\n\ntype Props = $ReadOnly<{|\n ...AndroidProps,\n ...IOSProps,\n /**\n * If the status bar is hidden.\n */\n hidden?: ?boolean,\n /**\n * If the transition between status bar property changes should be animated.\n * Supported for backgroundColor, barStyle and hidden.\n */\n animated?: ?boolean,\n /**\n * Sets the color of the status bar text.\n */\n barStyle?: ?('default' | 'light-content' | 'dark-content'),\n|}>;\n\n/**\n * Merges the prop stack with the default values.\n */\nfunction mergePropsStack(\n propsStack: Array<Object>,\n defaultValues: Object,\n): Object {\n return propsStack.reduce(\n (prev, cur) => {\n for (const prop in cur) {\n if (cur[prop] != null) {\n prev[prop] = cur[prop];\n }\n }\n return prev;\n },\n {...defaultValues},\n );\n}\n\n/**\n * Returns an object to insert in the props stack from the props\n * and the transition/animation info.\n */\nfunction createStackEntry(props: any): any {\n const animated = props.animated ?? false;\n const showHideTransition = props.showHideTransition ?? 'fade';\n return {\n backgroundColor:\n props.backgroundColor != null\n ? {\n value: props.backgroundColor,\n animated,\n }\n : null,\n barStyle:\n props.barStyle != null\n ? {\n value: props.barStyle,\n animated,\n }\n : null,\n translucent: props.translucent,\n hidden:\n props.hidden != null\n ? {\n value: props.hidden,\n animated,\n transition: showHideTransition,\n }\n : null,\n networkActivityIndicatorVisible: props.networkActivityIndicatorVisible,\n };\n}\n\n/**\n * Component to control the app status bar.\n *\n * ### Usage with Navigator\n *\n * It is possible to have multiple `StatusBar` components mounted at the same\n * time. The props will be merged in the order the `StatusBar` components were\n * mounted. One use case is to specify status bar styles per route using `Navigator`.\n *\n * ```\n * <View>\n * <StatusBar\n * backgroundColor=\"blue\"\n * barStyle=\"light-content\"\n * />\n * <Navigator\n * initialRoute={{statusBarHidden: true}}\n * renderScene={(route, navigator) =>\n * <View>\n * <StatusBar hidden={route.statusBarHidden} />\n * ...\n * </View>\n * }\n * />\n * </View>\n * ```\n *\n * ### Imperative API\n *\n * For cases where using a component is not ideal, there are static methods\n * to manipulate the `StatusBar` display stack. These methods have the same\n * behavior as mounting and unmounting a `StatusBar` component.\n *\n * For example, you can call `StatusBar.pushStackEntry` to update the status bar\n * before launching a third-party native UI component, and then call\n * `StatusBar.popStackEntry` when completed.\n *\n * ```\n * const openThirdPartyBugReporter = async () => {\n * // The bug reporter has a dark background, so we push a new status bar style.\n * const stackEntry = StatusBar.pushStackEntry({barStyle: 'light-content'});\n *\n * // `open` returns a promise that resolves when the UI is dismissed.\n * await BugReporter.open();\n *\n * // Don't forget to call `popStackEntry` when you're done.\n * StatusBar.popStackEntry(stackEntry);\n * };\n * ```\n *\n * There is a legacy imperative API that enables you to manually update the\n * status bar styles. However, the legacy API does not update the internal\n * `StatusBar` display stack, which means that any changes will be overridden\n * whenever a `StatusBar` component is mounted or unmounted.\n *\n * It is strongly advised that you use `pushStackEntry`, `popStackEntry`, or\n * `replaceStackEntry` instead of the static methods beginning with `set`.\n *\n * ### Constants\n *\n * `currentHeight` (Android only) The height of the status bar.\n */\nclass StatusBar extends React.Component<Props> {\n static _propsStack: Array<any> = [];\n\n static _defaultProps: any = createStackEntry({\n backgroundColor:\n Platform.OS === 'android'\n ? NativeStatusBarManagerAndroid.getConstants()\n .DEFAULT_BACKGROUND_COLOR ?? 'black'\n : 'black',\n barStyle: 'default',\n translucent: false,\n hidden: false,\n networkActivityIndicatorVisible: false,\n });\n\n // Timer for updating the native module values at the end of the frame.\n static _updateImmediate = null;\n\n // The current merged values from the props stack.\n static _currentValues = null;\n\n // TODO(janic): Provide a real API to deal with status bar height. See the\n // discussion in #6195.\n /**\n * The current height of the status bar on the device.\n *\n * @platform android\n */\n static currentHeight: ?number =\n Platform.OS === 'android'\n ? NativeStatusBarManagerAndroid.getConstants().HEIGHT\n : null;\n\n // Provide an imperative API as static functions of the component.\n // See the corresponding prop for more detail.\n\n /**\n * Show or hide the status bar\n * @param hidden Hide the status bar.\n * @param animation Optional animation when\n * changing the status bar hidden property.\n */\n static setHidden(hidden: boolean, animation?: StatusBarAnimation) {\n animation = animation || 'none';\n StatusBar._defaultProps.hidden.value = hidden;\n if (Platform.OS === 'ios') {\n NativeStatusBarManagerIOS.setHidden(hidden, animation);\n } else if (Platform.OS === 'android') {\n NativeStatusBarManagerAndroid.setHidden(hidden);\n }\n }\n\n /**\n * Set the status bar style\n * @param style Status bar style to set\n * @param animated Animate the style change.\n */\n static setBarStyle(style: StatusBarStyle, animated?: boolean) {\n animated = animated || false;\n StatusBar._defaultProps.barStyle.value = style;\n if (Platform.OS === 'ios') {\n NativeStatusBarManagerIOS.setStyle(style, animated);\n } else if (Platform.OS === 'android') {\n NativeStatusBarManagerAndroid.setStyle(style);\n }\n }\n\n /**\n * Control the visibility of the network activity indicator\n * @param visible Show the indicator.\n */\n static setNetworkActivityIndicatorVisible(visible: boolean) {\n if (Platform.OS !== 'ios') {\n console.warn(\n '`setNetworkActivityIndicatorVisible` is only available on iOS',\n );\n return;\n }\n StatusBar._defaultProps.networkActivityIndicatorVisible = visible;\n NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(visible);\n }\n\n /**\n * Set the background color for the status bar\n * @param color Background color.\n * @param animated Animate the style change.\n */\n static setBackgroundColor(color: string, animated?: boolean): void {\n if (Platform.OS !== 'android') {\n console.warn('`setBackgroundColor` is only available on Android');\n return;\n }\n animated = animated || false;\n StatusBar._defaultProps.backgroundColor.value = color;\n\n const processedColor = processColor(color);\n if (processedColor == null) {\n console.warn(\n `\\`StatusBar.setBackgroundColor\\`: Color ${color} parsed to null or undefined`,\n );\n return;\n }\n invariant(\n typeof processedColor === 'number',\n 'Unexpected color given for StatusBar.setBackgroundColor',\n );\n\n NativeStatusBarManagerAndroid.setColor(processedColor, animated);\n }\n\n /**\n * Control the translucency of the status bar\n * @param translucent Set as translucent.\n */\n static setTranslucent(translucent: boolean) {\n if (Platform.OS !== 'android') {\n console.warn('`setTranslucent` is only available on Android');\n return;\n }\n StatusBar._defaultProps.translucent = translucent;\n NativeStatusBarManagerAndroid.setTranslucent(translucent);\n }\n\n /**\n * Push a StatusBar entry onto the stack.\n * The return value should be passed to `popStackEntry` when complete.\n *\n * @param props Object containing the StatusBar props to use in the stack entry.\n */\n static pushStackEntry(props: any): any {\n const entry = createStackEntry(props);\n StatusBar._propsStack.push(entry);\n StatusBar._updatePropsStack();\n return entry;\n }\n\n /**\n * Pop a StatusBar entry from the stack.\n *\n * @param entry Entry returned from `pushStackEntry`.\n */\n static popStackEntry(entry: any) {\n const index = StatusBar._propsStack.indexOf(entry);\n if (index !== -1) {\n StatusBar._propsStack.splice(index, 1);\n }\n StatusBar._updatePropsStack();\n }\n\n /**\n * Replace an existing StatusBar stack entry with new props.\n *\n * @param entry Entry returned from `pushStackEntry` to replace.\n * @param props Object containing the StatusBar props to use in the replacement stack entry.\n */\n static replaceStackEntry(entry: any, props: any): any {\n const newEntry = createStackEntry(props);\n const index = StatusBar._propsStack.indexOf(entry);\n if (index !== -1) {\n StatusBar._propsStack[index] = newEntry;\n }\n StatusBar._updatePropsStack();\n return newEntry;\n }\n\n _stackEntry = null;\n\n componentDidMount() {\n // Every time a StatusBar component is mounted, we push it's prop to a stack\n // and always update the native status bar with the props from the top of then\n // stack. This allows having multiple StatusBar components and the one that is\n // added last or is deeper in the view hierarchy will have priority.\n this._stackEntry = StatusBar.pushStackEntry(this.props);\n }\n\n componentWillUnmount() {\n // When a StatusBar is unmounted, remove itself from the stack and update\n // the native bar with the next props.\n StatusBar.popStackEntry(this._stackEntry);\n }\n\n componentDidUpdate() {\n this._stackEntry = StatusBar.replaceStackEntry(\n this._stackEntry,\n this.props,\n );\n }\n\n /**\n * Updates the native status bar with the props from the stack.\n */\n static _updatePropsStack = () => {\n // Send the update to the native module only once at the end of the frame.\n clearImmediate(StatusBar._updateImmediate);\n StatusBar._updateImmediate = setImmediate(() => {\n const oldProps = StatusBar._currentValues;\n const mergedProps = mergePropsStack(\n StatusBar._propsStack,\n StatusBar._defaultProps,\n );\n\n // Update the props that have changed using the merged values from the props stack.\n if (Platform.OS === 'ios') {\n if (\n !oldProps ||\n oldProps.barStyle.value !== mergedProps.barStyle.value\n ) {\n NativeStatusBarManagerIOS.setStyle(\n mergedProps.barStyle.value,\n mergedProps.barStyle.animated || false,\n );\n }\n if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {\n NativeStatusBarManagerIOS.setHidden(\n mergedProps.hidden.value,\n mergedProps.hidden.animated\n ? mergedProps.hidden.transition\n : 'none',\n );\n }\n\n if (\n !oldProps ||\n oldProps.networkActivityIndicatorVisible !==\n mergedProps.networkActivityIndicatorVisible\n ) {\n NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(\n mergedProps.networkActivityIndicatorVisible,\n );\n }\n } else if (Platform.OS === 'android') {\n //todo(T60684787): Add back optimization to only update bar style and\n //background color if the new value is different from the old value.\n NativeStatusBarManagerAndroid.setStyle(mergedProps.barStyle.value);\n const processedColor = processColor(mergedProps.backgroundColor.value);\n if (processedColor == null) {\n console.warn(\n `\\`StatusBar._updatePropsStack\\`: Color ${mergedProps.backgroundColor.value} parsed to null or undefined`,\n );\n } else {\n invariant(\n typeof processedColor === 'number',\n 'Unexpected color given in StatusBar._updatePropsStack',\n );\n NativeStatusBarManagerAndroid.setColor(\n processedColor,\n mergedProps.backgroundColor.animated,\n );\n }\n if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {\n NativeStatusBarManagerAndroid.setHidden(mergedProps.hidden.value);\n }\n // Activities are not translucent by default, so always set if true.\n if (\n !oldProps ||\n oldProps.translucent !== mergedProps.translucent ||\n mergedProps.translucent\n ) {\n NativeStatusBarManagerAndroid.setTranslucent(mergedProps.translucent);\n }\n }\n // Update the current prop values.\n StatusBar._currentValues = mergedProps;\n });\n };\n\n render(): React.Node {\n return null;\n }\n}\n\nmodule.exports = StatusBar;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR: number,\n |};\n +setColor: (color: number, animated: boolean) => void;\n +setTranslucent: (translucent: boolean) => void;\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n */\n +setStyle: (statusBarStyle?: ?string) => void;\n +setHidden: (hidden: boolean) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing<Spec>('StatusBarManager');\nlet constants = null;\n\nconst NativeStatusBarManager = {\n getConstants(): {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n\n setColor(color: number, animated: boolean): void {\n NativeModule.setColor(color, animated);\n },\n\n setTranslucent(translucent: boolean): void {\n NativeModule.setTranslucent(translucent);\n },\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n */\n setStyle(statusBarStyle?: ?string): void {\n NativeModule.setStyle(statusBarStyle);\n },\n\n setHidden(hidden: boolean): void {\n NativeModule.setHidden(hidden);\n },\n};\n\nexport default NativeStatusBarManager;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |};\n\n // TODO(T47754272) Can we remove this method?\n +getHeight: (callback: (result: {|height: number|}) => void) => void;\n +setNetworkActivityIndicatorVisible: (visible: boolean) => void;\n +addListener: (eventType: string) => void;\n +removeListeners: (count: number) => void;\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n * - 'light-content'\n */\n +setStyle: (statusBarStyle?: ?string, animated: boolean) => void;\n /**\n * - withAnimation can be: 'none' | 'fade' | 'slide'\n */\n +setHidden: (hidden: boolean, withAnimation: string) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing<Spec>('StatusBarManager');\nlet constants = null;\n\nconst NativeStatusBarManager = {\n getConstants(): {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n\n // TODO(T47754272) Can we remove this method?\n getHeight(callback: (result: {|height: number|}) => void): void {\n NativeModule.getHeight(callback);\n },\n\n setNetworkActivityIndicatorVisible(visible: boolean): void {\n NativeModule.setNetworkActivityIndicatorVisible(visible);\n },\n\n addListener(eventType: string): void {\n NativeModule.addListener(eventType);\n },\n\n removeListeners(count: number): void {\n NativeModule.removeListeners(count);\n },\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n * - 'light-content'\n */\n setStyle(statusBarStyle?: ?string, animated: boolean): void {\n NativeModule.setStyle(statusBarStyle, animated);\n },\n\n /**\n * - withAnimation can be: 'none' | 'fade' | 'slide'\n */\n setHidden(hidden: boolean, withAnimation: string): void {\n NativeModule.setHidden(hidden, withAnimation);\n },\n};\n\nexport default NativeStatusBarManager;\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 strict-local\n * @format\n * @generate-docs\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {SyntheticEvent} from '../../Types/CoreEventTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport AndroidSwitchNativeComponent, {\n Commands as AndroidSwitchCommands,\n} from './AndroidSwitchNativeComponent';\nimport SwitchNativeComponent, {\n Commands as SwitchCommands,\n} from './SwitchNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n value: boolean,\n target: number,\n |}>,\n>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n If true the user won't be able to toggle the switch.\n\n @default false\n */\n disabled?: ?boolean,\n\n /**\n The value of the switch. If true the switch will be turned on.\n\n @default false\n */\n value?: ?boolean,\n\n /**\n Color of the foreground switch grip. If this is set on iOS, the switch grip will lose its drop shadow.\n */\n thumbColor?: ?ColorValue,\n\n /**\n Custom colors for the switch track.\n\n _iOS_: When the switch value is false, the track shrinks into the border. If you want to change the\n color of the background exposed by the shrunken track, use\n [`ios_backgroundColor`](https://reactnative.dev/docs/switch#ios_backgroundColor).\n */\n trackColor?: ?$ReadOnly<{|\n false?: ?ColorValue,\n true?: ?ColorValue,\n |}>,\n\n /**\n On iOS, custom color for the background. This background color can be\n seen either when the switch value is false or when the switch is\n disabled (and the switch is translucent).\n */\n ios_backgroundColor?: ?ColorValue,\n\n /**\n Invoked when the user tries to change the value of the switch. Receives\n the change event as an argument. If you want to only receive the new\n value, use `onValueChange` instead.\n */\n onChange?: ?(event: SwitchChangeEvent) => Promise<void> | void,\n\n /**\n Invoked when the user tries to change the value of the switch. Receives\n the new value as an argument. If you want to instead receive an event,\n use `onChange`.\n */\n onValueChange?: ?(value: boolean) => Promise<void> | void,\n|}>;\nconst returnsFalse = () => false;\nconst returnsTrue = () => true;\n\n/**\n Renders a boolean input.\n\n This is a controlled component that requires an `onValueChange`\n callback that updates the `value` prop in order for the component to\n reflect user actions. If the `value` prop is not updated, the\n component will continue to render the supplied `value` prop instead of\n the expected result of any user actions.\n\n ```SnackPlayer name=Switch\n import React, { useState } from \"react\";\n import { View, Switch, StyleSheet } from \"react-native\";\n\n const App = () => {\n const [isEnabled, setIsEnabled] = useState(false);\n const toggleSwitch = () => setIsEnabled(previousState => !previousState);\n\n return (\n <View style={styles.container}>\n <Switch\n trackColor={{ false: \"#767577\", true: \"#81b0ff\" }}\n thumbColor={isEnabled ? \"#f5dd4b\" : \"#f4f3f4\"}\n ios_backgroundColor=\"#3e3e3e\"\n onValueChange={toggleSwitch}\n value={isEnabled}\n />\n </View>\n );\n }\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n }\n });\n\n export default App;\n ```\n */\n\nconst SwitchWithForwardedRef: React.AbstractComponent<\n Props,\n React.ElementRef<\n typeof SwitchNativeComponent | typeof AndroidSwitchNativeComponent,\n >,\n> = React.forwardRef(function Switch(props, forwardedRef): React.Node {\n const {\n disabled,\n ios_backgroundColor,\n onChange,\n onValueChange,\n style,\n thumbColor,\n trackColor,\n value,\n ...restProps\n } = props;\n const trackColorForFalse = trackColor?.false;\n const trackColorForTrue = trackColor?.true;\n\n const nativeSwitchRef = React.useRef<React.ElementRef<\n typeof SwitchNativeComponent | typeof AndroidSwitchNativeComponent,\n > | null>(null);\n\n const ref = useMergeRefs(nativeSwitchRef, forwardedRef);\n\n const [native, setNative] = React.useState({value: null});\n\n const handleChange = (event: SwitchChangeEvent) => {\n onChange?.(event);\n onValueChange?.(event.nativeEvent.value);\n setNative({value: event.nativeEvent.value});\n };\n\n React.useLayoutEffect(() => {\n // This is necessary in case native updates the switch and JS decides\n // that the update should be ignored and we should stick with the value\n // that we have in JS.\n const jsValue = value === true;\n const shouldUpdateNativeSwitch =\n native.value != null && native.value !== jsValue;\n if (\n shouldUpdateNativeSwitch &&\n nativeSwitchRef.current?.setNativeProps != null\n ) {\n if (Platform.OS === 'android') {\n AndroidSwitchCommands.setNativeValue(nativeSwitchRef.current, jsValue);\n } else {\n SwitchCommands.setValue(nativeSwitchRef.current, jsValue);\n }\n }\n }, [value, native]);\n\n if (Platform.OS === 'android') {\n const {accessibilityState} = restProps;\n const _disabled =\n disabled != null ? disabled : accessibilityState?.disabled;\n\n const _accessibilityState =\n _disabled !== accessibilityState?.disabled\n ? {...accessibilityState, disabled: _disabled}\n : accessibilityState;\n\n const platformProps = {\n accessibilityState: _accessibilityState,\n enabled: _disabled !== true,\n on: value === true,\n style,\n thumbTintColor: thumbColor,\n trackColorForFalse: trackColorForFalse,\n trackColorForTrue: trackColorForTrue,\n trackTintColor: value === true ? trackColorForTrue : trackColorForFalse,\n };\n\n return (\n <AndroidSwitchNativeComponent\n {...restProps}\n {...platformProps}\n accessibilityRole={props.accessibilityRole ?? 'switch'}\n onChange={handleChange}\n onResponderTerminationRequest={returnsFalse}\n onStartShouldSetResponder={returnsTrue}\n ref={ref}\n />\n );\n } else {\n const platformProps = {\n disabled,\n onTintColor: trackColorForTrue,\n style: StyleSheet.compose(\n {height: 31, width: 51},\n StyleSheet.compose(\n style,\n ios_backgroundColor == null\n ? null\n : {\n backgroundColor: ios_backgroundColor,\n borderRadius: 16,\n },\n ),\n ),\n thumbTintColor: thumbColor,\n tintColor: trackColorForFalse,\n value: value === true,\n };\n\n return (\n <SwitchNativeComponent\n {...restProps}\n {...platformProps}\n accessibilityRole={props.accessibilityRole ?? 'switch'}\n onChange={handleChange}\n onResponderTerminationRequest={returnsFalse}\n onStartShouldSetResponder={returnsTrue}\n ref={ref}\n />\n );\n }\n});\n\nexport default SwitchWithForwardedRef;\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 strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = $ReadOnly<{|\n value: boolean,\n target: Int32,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault<boolean, false>,\n enabled?: WithDefault<boolean, true>,\n thumbColor?: ?ColorValue,\n trackColorForFalse?: ?ColorValue,\n trackColorForTrue?: ?ColorValue,\n value?: WithDefault<boolean, false>,\n on?: WithDefault<boolean, false>,\n thumbTintColor?: ?ColorValue,\n trackTintColor?: ?ColorValue,\n\n // Events\n onChange?: BubblingEventHandler<SwitchChangeEvent>,\n|}>;\n\ntype NativeType = HostComponent<NativeProps>;\n\ninterface NativeCommands {\n +setNativeValue: (\n viewRef: React.ElementRef<NativeType>,\n value: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['setNativeValue'],\n});\n\nexport default (codegenNativeComponent<NativeProps>('AndroidSwitch', {\n interfaceOnly: true,\n}): NativeType);\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 strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = $ReadOnly<{|\n value: boolean,\n target: Int32,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault<boolean, false>,\n value?: WithDefault<boolean, false>,\n tintColor?: ?ColorValue,\n onTintColor?: ?ColorValue,\n thumbTintColor?: ?ColorValue,\n\n // Deprecated props\n thumbColor?: ?ColorValue,\n trackColorForFalse?: ?ColorValue,\n trackColorForTrue?: ?ColorValue,\n\n // Events\n onChange?: ?BubblingEventHandler<SwitchChangeEvent>,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\ninterface NativeCommands {\n +setValue: (viewRef: React.ElementRef<ComponentType>, value: boolean) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['setValue'],\n});\n\nexport default (codegenNativeComponent<NativeProps>('Switch', {\n paperComponentName: 'RCTSwitch',\n excludedPlatforms: ['android'],\n}): ComponentType);\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 strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {\n PressEvent,\n ScrollEvent,\n SyntheticEvent,\n} from '../../Types/CoreEventTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {TextInputType} from './TextInput.flow';\n\nimport usePressability from '../../Pressability/usePressability';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport StyleSheet, {\n type ColorValue,\n type TextStyleProp,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport TextAncestor from '../../Text/TextAncestor';\nimport Platform from '../../Utilities/Platform';\nimport setAndForwardRef from '../../Utilities/setAndForwardRef';\nimport TextInputState from './TextInputState';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nconst {useLayoutEffect, useRef, useState} = React;\n\ntype ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);\n\nlet AndroidTextInput;\nlet AndroidTextInputCommands;\nlet RCTSinglelineTextInputView;\nlet RCTSinglelineTextInputNativeCommands;\nlet RCTMultilineTextInputView;\nlet RCTMultilineTextInputNativeCommands;\n\nif (Platform.OS === 'android') {\n AndroidTextInput = require('./AndroidTextInputNativeComponent').default;\n AndroidTextInputCommands =\n require('./AndroidTextInputNativeComponent').Commands;\n} else if (Platform.OS === 'ios') {\n RCTSinglelineTextInputView =\n require('./RCTSingelineTextInputNativeComponent').default;\n RCTSinglelineTextInputNativeCommands =\n require('./RCTSingelineTextInputNativeComponent').Commands;\n RCTMultilineTextInputView =\n require('./RCTMultilineTextInputNativeComponent').default;\n RCTMultilineTextInputNativeCommands =\n require('./RCTMultilineTextInputNativeComponent').Commands;\n}\n\nexport type ChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n target: number,\n text: string,\n |}>,\n>;\n\nexport type TextInputEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n previousText: string,\n range: $ReadOnly<{|\n start: number,\n end: number,\n |}>,\n target: number,\n text: string,\n |}>,\n>;\n\nexport type ContentSizeChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n target: number,\n contentSize: $ReadOnly<{|\n width: number,\n height: number,\n |}>,\n |}>,\n>;\n\ntype TargetEvent = SyntheticEvent<\n $ReadOnly<{|\n target: number,\n |}>,\n>;\n\nexport type BlurEvent = TargetEvent;\nexport type FocusEvent = TargetEvent;\n\ntype Selection = $ReadOnly<{|\n start: number,\n end: number,\n|}>;\n\nexport type SelectionChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n selection: Selection,\n target: number,\n |}>,\n>;\n\nexport type KeyPressEvent = SyntheticEvent<\n $ReadOnly<{|\n key: string,\n target?: ?number,\n eventCount?: ?number,\n |}>,\n>;\n\nexport type EditingEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n text: string,\n target: number,\n |}>,\n>;\n\ntype DataDetectorTypesType =\n | 'phoneNumber'\n | 'link'\n | 'address'\n | 'calendarEvent'\n | 'none'\n | 'all';\n\nexport type KeyboardType =\n // Cross Platform\n | 'default'\n | 'email-address'\n | 'numeric'\n | 'phone-pad'\n | 'number-pad'\n | 'decimal-pad'\n | 'url'\n // iOS-only\n | 'ascii-capable'\n | 'numbers-and-punctuation'\n | 'name-phone-pad'\n | 'twitter'\n | 'web-search'\n // iOS 10+ only\n | 'ascii-capable-number-pad'\n // Android-only\n | 'visible-password';\n\nexport type InputMode =\n | 'none'\n | 'text'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\nexport type ReturnKeyType =\n // Cross Platform\n | 'done'\n | 'go'\n | 'next'\n | 'search'\n | 'send'\n // Android-only\n | 'none'\n | 'previous'\n // iOS-only\n | 'default'\n | 'emergency-call'\n | 'google'\n | 'join'\n | 'route'\n | 'yahoo';\n\nexport type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';\n\nexport type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';\n\nexport type TextContentType =\n | 'none'\n | 'URL'\n | 'addressCity'\n | 'addressCityAndState'\n | 'addressState'\n | 'countryName'\n | 'creditCardNumber'\n | 'emailAddress'\n | 'familyName'\n | 'fullStreetAddress'\n | 'givenName'\n | 'jobTitle'\n | 'location'\n | 'middleName'\n | 'name'\n | 'namePrefix'\n | 'nameSuffix'\n | 'nickname'\n | 'organizationName'\n | 'postalCode'\n | 'streetAddressLine1'\n | 'streetAddressLine2'\n | 'sublocality'\n | 'telephoneNumber'\n | 'username'\n | 'password'\n | 'newPassword'\n | 'oneTimeCode';\n\nexport type enterKeyHintType =\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send';\n\ntype PasswordRules = string;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * Give the keyboard and the system information about the\n * expected semantic meaning for the content that users enter.\n * @platform ios\n */\n autoComplete?: ?(\n | 'address-line1'\n | 'address-line2'\n | 'cc-number'\n | 'current-password'\n | 'country'\n | 'email'\n | 'name'\n | 'additional-name'\n | 'family-name'\n | 'given-name'\n | 'nickname'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'new-password'\n | 'off'\n | 'one-time-code'\n | 'organization'\n | 'organization-title'\n | 'postal-code'\n | 'street-address'\n | 'tel'\n | 'url'\n | 'username'\n ),\n /**\n * When the clear button should appear on the right side of the text view.\n * This property is supported only for single-line TextInput component.\n * @platform ios\n */\n clearButtonMode?: ?('never' | 'while-editing' | 'unless-editing' | 'always'),\n\n /**\n * If `true`, clears the text field automatically when editing begins.\n * @platform ios\n */\n clearTextOnFocus?: ?boolean,\n\n /**\n * Determines the types of data converted to clickable URLs in the text input.\n * Only valid if `multiline={true}` and `editable={false}`.\n * By default no data types are detected.\n *\n * You can provide one type or an array of many types.\n *\n * Possible values for `dataDetectorTypes` are:\n *\n * - `'phoneNumber'`\n * - `'link'`\n * - `'address'`\n * - `'calendarEvent'`\n * - `'none'`\n * - `'all'`\n *\n * @platform ios\n */\n dataDetectorTypes?:\n | ?DataDetectorTypesType\n | $ReadOnlyArray<DataDetectorTypesType>,\n\n /**\n * If `true`, the keyboard disables the return key when there is no text and\n * automatically enables it when there is text. The default value is `false`.\n * @platform ios\n */\n enablesReturnKeyAutomatically?: ?boolean,\n\n /**\n * An optional identifier which links a custom InputAccessoryView to\n * this text input. The InputAccessoryView is rendered above the\n * keyboard when this text input is focused.\n * @platform ios\n */\n inputAccessoryViewID?: ?string,\n\n /**\n * Determines the color of the keyboard.\n * @platform ios\n */\n keyboardAppearance?: ?('default' | 'light' | 'dark'),\n\n /**\n * Provide rules for your password.\n * For example, say you want to require a password with at least eight characters consisting of a mix of uppercase and lowercase letters, at least one number, and at most two consecutive characters.\n * \"required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 8;\"\n * @platform ios\n */\n passwordRules?: ?PasswordRules,\n\n /*\n * If `true`, allows TextInput to pass touch events to the parent component.\n * This allows components to be swipeable from the TextInput on iOS,\n * as is the case on Android by default.\n * If `false`, TextInput always asks to handle the input (except when disabled).\n * @platform ios\n */\n rejectResponderTermination?: ?boolean,\n\n /**\n * If `false`, scrolling of the text view will be disabled.\n * The default value is `true`. Does only work with 'multiline={true}'.\n * @platform ios\n */\n scrollEnabled?: ?boolean,\n\n /**\n * If `false`, disables spell-check style (i.e. red underlines).\n * The default value is inherited from `autoCorrect`.\n * @platform ios\n */\n spellCheck?: ?boolean,\n\n /**\n * Give the keyboard and the system information about the\n * expected semantic meaning for the content that users enter.\n * @platform ios\n */\n textContentType?: ?TextContentType,\n\n /**\n * Set line break strategy on iOS.\n * @platform ios\n */\n lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.\n * To disable autocomplete, set `autoComplete` to `off`.\n *\n * *Android Only*\n *\n * Possible values for `autoComplete` are:\n *\n * - `birthdate-day`\n * - `birthdate-full`\n * - `birthdate-month`\n * - `birthdate-year`\n * - `cc-csc`\n * - `cc-exp`\n * - `cc-exp-day`\n * - `cc-exp-month`\n * - `cc-exp-year`\n * - `cc-number`\n * - `email`\n * - `gender`\n * - `name`\n * - `name-family`\n * - `name-given`\n * - `name-middle`\n * - `name-middle-initial`\n * - `name-prefix`\n * - `name-suffix`\n * - `password`\n * - `password-new`\n * - `postal-address`\n * - `postal-address-country`\n * - `postal-address-extended`\n * - `postal-address-extended-postal-code`\n * - `postal-address-locality`\n * - `postal-address-region`\n * - `postal-code`\n * - `street-address`\n * - `sms-otp`\n * - `tel`\n * - `tel-country-code`\n * - `tel-national`\n * - `tel-device`\n * - `username`\n * - `username-new`\n * - `off`\n *\n * @platform android\n */\n autoComplete?: ?(\n | 'birthdate-day'\n | 'birthdate-full'\n | 'birthdate-month'\n | 'birthdate-year'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-day'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-number'\n | 'email'\n | 'gender'\n | 'name'\n | 'name-family'\n | 'name-given'\n | 'name-middle'\n | 'name-middle-initial'\n | 'name-prefix'\n | 'name-suffix'\n | 'password'\n | 'password-new'\n | 'postal-address'\n | 'postal-address-country'\n | 'postal-address-extended'\n | 'postal-address-extended-postal-code'\n | 'postal-address-locality'\n | 'postal-address-region'\n | 'postal-code'\n | 'street-address'\n | 'sms-otp'\n | 'tel'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-device'\n | 'username'\n | 'username-new'\n | 'off'\n // additional HTML autocomplete values\n | 'address-line1'\n | 'address-line2'\n | 'bday'\n | 'bday-day'\n | 'bday-month'\n | 'bday-year'\n | 'country'\n | 'current-password'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'additional-name'\n | 'family-name'\n | 'given-name'\n | 'new-password'\n | 'one-time-code'\n | 'sex'\n ),\n\n /**\n * When provided it will set the color of the cursor (or \"caret\") in the component.\n * Unlike the behavior of `selectionColor` the cursor color will be set independently\n * from the color of the text selection box.\n * @platform android\n */\n cursorColor?: ?ColorValue,\n\n /**\n * When `false`, if there is a small amount of space available around a text input\n * (e.g. landscape orientation on a phone), the OS may choose to have the user edit\n * the text inside of a full screen text input mode. When `true`, this feature is\n * disabled and users will always edit the text directly inside of the text input.\n * Defaults to `false`.\n * @platform android\n */\n disableFullscreenUI?: ?boolean,\n\n importantForAutofill?: ?(\n | 'auto'\n | 'no'\n | 'noExcludeDescendants'\n | 'yes'\n | 'yesExcludeDescendants'\n ),\n\n /**\n * If defined, the provided image resource will be rendered on the left.\n * The image resource must be inside `/android/app/src/main/res/drawable` and referenced\n * like\n * ```\n * <TextInput\n * inlineImageLeft='search_icon'\n * />\n * ```\n * @platform android\n */\n inlineImageLeft?: ?string,\n\n /**\n * Padding between the inline image, if any, and the text input itself.\n * @platform android\n */\n inlineImagePadding?: ?number,\n\n /**\n * Sets the number of lines for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n numberOfLines?: ?number,\n\n /**\n * Sets the return key to the label. Use it instead of `returnKeyType`.\n * @platform android\n */\n returnKeyLabel?: ?string,\n\n /**\n * Sets the number of rows for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n rows?: ?number,\n\n /**\n * When `false`, it will prevent the soft keyboard from showing when the field is focused.\n * Defaults to `true`.\n */\n showSoftInputOnFocus?: ?boolean,\n\n /**\n * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`\n * The default value is `simple`.\n * @platform android\n */\n textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),\n\n /**\n * The color of the `TextInput` underline.\n * @platform android\n */\n underlineColorAndroid?: ?ColorValue,\n|}>;\n\nexport type Props = $ReadOnly<{|\n ...$Diff<ViewProps, $ReadOnly<{|style: ?ViewStyleProp|}>>,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * Can tell `TextInput` to automatically capitalize certain characters.\n *\n * - `characters`: all characters.\n * - `words`: first letter of each word.\n * - `sentences`: first letter of each sentence (*default*).\n * - `none`: don't auto capitalize anything.\n */\n autoCapitalize?: ?AutoCapitalize,\n\n /**\n * If `false`, disables auto-correct. The default value is `true`.\n */\n autoCorrect?: ?boolean,\n\n /**\n * If `true`, focuses the input on `componentDidMount`.\n * The default value is `false`.\n */\n autoFocus?: ?boolean,\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings. The\n * default is `true`.\n */\n allowFontScaling?: ?boolean,\n\n /**\n * If `true`, caret is hidden. The default value is `false`.\n *\n * On Android devices manufactured by Xiaomi with Android Q,\n * when keyboardType equals 'email-address'this will be set\n * in native to 'true' to prevent a system related crash. This\n * will cause cursor to be diabled as a side-effect.\n *\n */\n caretHidden?: ?boolean,\n\n /*\n * If `true`, contextMenuHidden is hidden. The default value is `false`.\n */\n contextMenuHidden?: ?boolean,\n\n /**\n * Provides an initial value that will change when the user starts typing.\n * Useful for simple use-cases where you do not want to deal with listening\n * to events and updating the value prop to keep the controlled state in sync.\n */\n defaultValue?: ?Stringish,\n\n /**\n * If `false`, text is not editable. The default value is `true`.\n */\n editable?: ?boolean,\n\n forwardedRef?: ?ReactRefSetter<\n React.ElementRef<HostComponent<mixed>> & ImperativeMethods,\n >,\n\n /**\n * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.\n *\n * The following values is supported:\n *\n * - `enter`\n * - `done`\n * - `go`\n * - `next`\n * - `previous`\n * - `search`\n * - `send`\n */\n enterKeyHint?: ?enterKeyHintType,\n\n /**\n * `inputMode` works like the `inputmode` attribute in HTML, it determines which\n * keyboard to open, e.g.`numeric` and has precedence over keyboardType\n *\n * Support the following values:\n *\n * - `none`\n * - `text`\n * - `decimal`\n * - `numeric`\n * - `tel`\n * - `search`\n * - `email`\n * - `url`\n */\n inputMode?: ?InputMode,\n\n /**\n * Determines which keyboard to open, e.g.`numeric`.\n *\n * The following values work across platforms:\n *\n * - `default`\n * - `numeric`\n * - `number-pad`\n * - `decimal-pad`\n * - `email-address`\n * - `phone-pad`\n * - `url`\n *\n * *iOS Only*\n *\n * The following values work on iOS only:\n *\n * - `ascii-capable`\n * - `numbers-and-punctuation`\n * - `name-phone-pad`\n * - `twitter`\n * - `web-search`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `visible-password`\n *\n */\n keyboardType?: ?KeyboardType,\n\n /**\n * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.\n * Possible values:\n * `null/undefined` (default): inherit from the parent node or the global default (0)\n * `0`: no max, ignore parent/global default\n * `>= 1`: sets the maxFontSizeMultiplier of this node to this value\n */\n maxFontSizeMultiplier?: ?number,\n\n /**\n * Limits the maximum number of characters that can be entered. Use this\n * instead of implementing the logic in JS to avoid flicker.\n */\n maxLength?: ?number,\n\n /**\n * If `true`, the text input can be multiple lines.\n * The default value is `false`.\n */\n multiline?: ?boolean,\n\n /**\n * Callback that is called when the text input is blurred.\n */\n onBlur?: ?(e: BlurEvent) => mixed,\n\n /**\n * Callback that is called when the text input's text changes.\n */\n onChange?: ?(e: ChangeEvent) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n * Callback that is called when the text input's text changes.\n *\n * @platform ios\n */\n unstable_onChangeSync?: ?(e: ChangeEvent) => mixed,\n\n /**\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n */\n onChangeText?: ?(text: string) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n *\n * @platform ios\n */\n unstable_onChangeTextSync?: ?(text: string) => mixed,\n\n /**\n * Callback that is called when the text input's content size changes.\n * This will be called with\n * `{ nativeEvent: { contentSize: { width, height } } }`.\n *\n * Only called for multiline text inputs.\n */\n onContentSizeChange?: ?(e: ContentSizeChangeEvent) => mixed,\n\n /**\n * Callback that is called when text input ends.\n */\n onEndEditing?: ?(e: EditingEvent) => mixed,\n\n /**\n * Callback that is called when the text input is focused.\n */\n onFocus?: ?(e: FocusEvent) => mixed,\n\n /**\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n */\n onKeyPress?: ?(e: KeyPressEvent) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n *\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n *\n * @platform ios\n */\n unstable_onKeyPressSync?: ?(e: KeyPressEvent) => mixed,\n\n /**\n * Called when a touch is engaged.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is released.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Callback that is called when the text input selection is changed.\n * This will be called with\n * `{ nativeEvent: { selection: { start, end } } }`.\n */\n onSelectionChange?: ?(e: SelectionChangeEvent) => mixed,\n\n /**\n * Callback that is called when the text input's submit button is pressed.\n * Invalid if `multiline={true}` is specified.\n */\n onSubmitEditing?: ?(e: EditingEvent) => mixed,\n\n /**\n * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.\n * May also contain other properties from ScrollEvent but on Android contentSize\n * is not provided for performance reasons.\n */\n onScroll?: ?(e: ScrollEvent) => mixed,\n\n /**\n * The string that will be rendered before text input has been entered.\n */\n placeholder?: ?Stringish,\n\n /**\n * The text color of the placeholder string.\n */\n placeholderTextColor?: ?ColorValue,\n\n /** `readOnly` works like the `readonly` attribute in HTML.\n * If `true`, text is not editable. The default value is `false`.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly\n * for more details.\n */\n readOnly?: ?boolean,\n\n /**\n * Determines how the return key should look. On Android you can also use\n * `returnKeyLabel`.\n *\n * *Cross platform*\n *\n * The following values work across platforms:\n *\n * - `done`\n * - `go`\n * - `next`\n * - `search`\n * - `send`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `none`\n * - `previous`\n *\n * *iOS Only*\n *\n * The following values work on iOS only:\n *\n * - `default`\n * - `emergency-call`\n * - `google`\n * - `join`\n * - `route`\n * - `yahoo`\n */\n returnKeyType?: ?ReturnKeyType,\n\n /**\n * If `true`, the text input obscures the text entered so that sensitive text\n * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.\n */\n secureTextEntry?: ?boolean,\n\n /**\n * The start and end of the text input's selection. Set start and end to\n * the same value to position the cursor.\n */\n selection?: ?$ReadOnly<{|\n start: number,\n end?: ?number,\n |}>,\n\n /**\n * The highlight and cursor color of the text input.\n */\n selectionColor?: ?ColorValue,\n\n /**\n * If `true`, all text will automatically be selected on focus.\n */\n selectTextOnFocus?: ?boolean,\n\n /**\n * If `true`, the text field will blur when submitted.\n * The default value is true for single-line fields and false for\n * multiline fields. Note that for multiline fields, setting `blurOnSubmit`\n * to `true` means that pressing return will blur the field and trigger the\n * `onSubmitEditing` event instead of inserting a newline into the field.\n *\n * @deprecated\n * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will\n * override any behavior defined by `blurOnSubmit`.\n * @see submitBehavior\n */\n blurOnSubmit?: ?boolean,\n\n /**\n * When the return key is pressed,\n *\n * For single line inputs:\n *\n * - `'newline`' defaults to `'blurAndSubmit'`\n * - `undefined` defaults to `'blurAndSubmit'`\n *\n * For multiline inputs:\n *\n * - `'newline'` adds a newline\n * - `undefined` defaults to `'newline'`\n *\n * For both single line and multiline inputs:\n *\n * - `'submit'` will only send a submit event and not blur the input\n * - `'blurAndSubmit`' will both blur the input and send a submit event\n */\n submitBehavior?: ?SubmitBehavior,\n\n /**\n * Note that not all Text styles are supported, an incomplete list of what is not supported includes:\n *\n * - `borderLeftWidth`\n * - `borderTopWidth`\n * - `borderRightWidth`\n * - `borderBottomWidth`\n * - `borderTopLeftRadius`\n * - `borderTopRightRadius`\n * - `borderBottomRightRadius`\n * - `borderBottomLeftRadius`\n *\n * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)\n * for more detail.\n *\n * [Styles](docs/style.html)\n */\n style?: ?TextStyleProp,\n\n /**\n * The value to show for the text input. `TextInput` is a controlled\n * component, which means the native value will be forced to match this\n * value prop if provided. For most uses, this works great, but in some\n * cases this may cause flickering - one common cause is preventing edits\n * by keeping value the same. In addition to simply setting the same value,\n * either set `editable={false}`, or set/update `maxLength` to prevent\n * unwanted edits without flicker.\n */\n value?: ?Stringish,\n|}>;\n\ntype ImperativeMethods = $ReadOnly<{|\n clear: () => void,\n isFocused: () => boolean,\n getNativeRef: () => ?React.ElementRef<HostComponent<mixed>>,\n setSelection: (start: number, end: number) => void,\n|}>;\n\nconst emptyFunctionThatReturnsTrue = () => true;\n\n/**\n * A foundational component for inputting text into the app via a\n * keyboard. Props provide configurability for several features, such as\n * auto-correction, auto-capitalization, placeholder text, and different keyboard\n * types, such as a numeric keypad.\n *\n * The simplest use case is to plop down a `TextInput` and subscribe to the\n * `onChangeText` events to read the user input. There are also other events,\n * such as `onSubmitEditing` and `onFocus` that can be subscribed to. A simple\n * example:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, TextInput } from 'react-native';\n *\n * export default class UselessTextInput extends Component {\n * constructor(props) {\n * super(props);\n * this.state = { text: 'Useless Placeholder' };\n * }\n *\n * render() {\n * return (\n * <TextInput\n * style={{height: 40, borderColor: 'gray', borderWidth: 1}}\n * onChangeText={(text) => this.setState({text})}\n * value={this.state.text}\n * />\n * );\n * }\n * }\n *\n * // skip this line if using Create React Native App\n * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);\n * ```\n *\n * Two methods exposed via the native element are .focus() and .blur() that\n * will focus or blur the TextInput programmatically.\n *\n * Note that some props are only available with `multiline={true/false}`.\n * Additionally, border styles that apply to only one side of the element\n * (e.g., `borderBottomColor`, `borderLeftWidth`, etc.) will not be applied if\n * `multiline=false`. To achieve the same effect, you can wrap your `TextInput`\n * in a `View`:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, TextInput } from 'react-native';\n *\n * class UselessTextInput extends Component {\n * render() {\n * return (\n * <TextInput\n * {...this.props} // Inherit any props passed to it; e.g., multiline, numberOfLines below\n * editable = {true}\n * maxLength = {40}\n * />\n * );\n * }\n * }\n *\n * export default class UselessTextInputMultiline extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * text: 'Useless Multiline Placeholder',\n * };\n * }\n *\n * // If you type something in the text box that is a color, the background will change to that\n * // color.\n * render() {\n * return (\n * <View style={{\n * backgroundColor: this.state.text,\n * borderBottomColor: '#000000',\n * borderBottomWidth: 1 }}\n * >\n * <UselessTextInput\n * multiline = {true}\n * numberOfLines = {4}\n * onChangeText={(text) => this.setState({text})}\n * value={this.state.text}\n * />\n * </View>\n * );\n * }\n * }\n *\n * // skip these lines if using Create React Native App\n * AppRegistry.registerComponent(\n * 'AwesomeProject',\n * () => UselessTextInputMultiline\n * );\n * ```\n *\n * `TextInput` has by default a border at the bottom of its view. This border\n * has its padding set by the background image provided by the system, and it\n * cannot be changed. Solutions to avoid this is to either not set height\n * explicitly, case in which the system will take care of displaying the border\n * in the correct position, or to not display the border by setting\n * `underlineColorAndroid` to transparent.\n *\n * Note that on Android performing text selection in input can change\n * app's activity `windowSoftInputMode` param to `adjustResize`.\n * This may cause issues with components that have position: 'absolute'\n * while keyboard is active. To avoid this behavior either specify `windowSoftInputMode`\n * in AndroidManifest.xml ( https://developer.android.com/guide/topics/manifest/activity-element.html )\n * or control this param programmatically with native code.\n *\n */\nfunction InternalTextInput(props: Props): React.Node {\n const inputRef = useRef<null | React.ElementRef<HostComponent<mixed>>>(null);\n\n // Android sends a \"onTextChanged\" event followed by a \"onSelectionChanged\" event, for\n // the same \"most recent event count\".\n // For controlled selection, that means that immediately after text is updated,\n // a controlled component will pass in the *previous* selection, even if the controlled\n // component didn't mean to modify the selection at all.\n // Therefore, we ignore selections and pass them through until the selection event has\n // been sent.\n // Note that this mitigation is NOT needed for Fabric.\n // discovered when upgrading react-hooks\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let selection: ?Selection =\n props.selection == null\n ? null\n : {\n start: props.selection.start,\n end: props.selection.end ?? props.selection.start,\n };\n\n const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);\n\n const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);\n const [lastNativeSelectionState, setLastNativeSelection] = useState<{|\n selection: ?Selection,\n mostRecentEventCount: number,\n |}>({selection, mostRecentEventCount});\n\n const lastNativeSelection = lastNativeSelectionState.selection;\n const lastNativeSelectionEventCount =\n lastNativeSelectionState.mostRecentEventCount;\n\n if (lastNativeSelectionEventCount < mostRecentEventCount) {\n selection = null;\n }\n\n let viewCommands;\n if (AndroidTextInputCommands) {\n viewCommands = AndroidTextInputCommands;\n } else {\n viewCommands =\n props.multiline === true\n ? RCTMultilineTextInputNativeCommands\n : RCTSinglelineTextInputNativeCommands;\n }\n\n const text =\n typeof props.value === 'string'\n ? props.value\n : typeof props.defaultValue === 'string'\n ? props.defaultValue\n : '';\n\n // This is necessary in case native updates the text and JS decides\n // that the update should be ignored and we should stick with the value\n // that we have in JS.\n useLayoutEffect(() => {\n const nativeUpdate: {text?: string, selection?: Selection} = {};\n\n if (lastNativeText !== props.value && typeof props.value === 'string') {\n nativeUpdate.text = props.value;\n setLastNativeText(props.value);\n }\n\n if (\n selection &&\n lastNativeSelection &&\n (lastNativeSelection.start !== selection.start ||\n lastNativeSelection.end !== selection.end)\n ) {\n nativeUpdate.selection = selection;\n setLastNativeSelection({selection, mostRecentEventCount});\n }\n\n if (Object.keys(nativeUpdate).length === 0) {\n return;\n }\n\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n text,\n selection?.start ?? -1,\n selection?.end ?? -1,\n );\n }\n }, [\n mostRecentEventCount,\n inputRef,\n props.value,\n props.defaultValue,\n lastNativeText,\n selection,\n lastNativeSelection,\n text,\n viewCommands,\n ]);\n\n useLayoutEffect(() => {\n const inputRefValue = inputRef.current;\n\n if (inputRefValue != null) {\n TextInputState.registerInput(inputRefValue);\n\n return () => {\n TextInputState.unregisterInput(inputRefValue);\n\n if (TextInputState.currentlyFocusedInput() === inputRefValue) {\n nullthrows(inputRefValue).blur();\n }\n };\n }\n }, [inputRef]);\n\n function clear(): void {\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n '',\n 0,\n 0,\n );\n }\n }\n\n function setSelection(start: number, end: number): void {\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n null,\n start,\n end,\n );\n }\n }\n\n // TODO: Fix this returning true on null === null, when no input is focused\n function isFocused(): boolean {\n return TextInputState.currentlyFocusedInput() === inputRef.current;\n }\n\n function getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {\n return inputRef.current;\n }\n\n const _setNativeRef = setAndForwardRef({\n getForwardedRef: () => props.forwardedRef,\n setLocalRef: ref => {\n inputRef.current = ref;\n\n /*\n Hi reader from the future. I'm sorry for this.\n\n This is a hack. Ideally we would forwardRef to the underlying\n host component. However, since TextInput has it's own methods that can be\n called as well, if we used the standard forwardRef then these\n methods wouldn't be accessible and thus be a breaking change.\n\n We have a couple of options of how to handle this:\n - Return a new ref with everything we methods from both. This is problematic\n because we need React to also know it is a host component which requires\n internals of the class implementation of the ref.\n - Break the API and have some other way to call one set of the methods or\n the other. This is our long term approach as we want to eventually\n get the methods on host components off the ref. So instead of calling\n ref.measure() you might call ReactNative.measure(ref). This would hopefully\n let the ref for TextInput then have the methods like `.clear`. Or we do it\n the other way and make it TextInput.clear(textInputRef) which would be fine\n too. Either way though is a breaking change that is longer term.\n - Mutate this ref. :( Gross, but accomplishes what we need in the meantime\n before we can get to the long term breaking change.\n */\n if (ref) {\n ref.clear = clear;\n ref.isFocused = isFocused;\n ref.getNativeRef = getNativeRef;\n ref.setSelection = setSelection;\n }\n },\n });\n\n const _onChange = (event: ChangeEvent) => {\n const currentText = event.nativeEvent.text;\n props.onChange && props.onChange(event);\n props.onChangeText && props.onChangeText(currentText);\n\n if (inputRef.current == null) {\n // calling `props.onChange` or `props.onChangeText`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeText(currentText);\n // This must happen last, after we call setLastNativeText.\n // Different ordering can cause bugs when editing AndroidTextInputs\n // with multiple Fragments.\n // We must update this so that controlled input updates work.\n setMostRecentEventCount(event.nativeEvent.eventCount);\n };\n\n const _onChangeSync = (event: ChangeEvent) => {\n const currentText = event.nativeEvent.text;\n props.unstable_onChangeSync && props.unstable_onChangeSync(event);\n props.unstable_onChangeTextSync &&\n props.unstable_onChangeTextSync(currentText);\n\n if (inputRef.current == null) {\n // calling `props.onChange` or `props.onChangeText`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeText(currentText);\n // This must happen last, after we call setLastNativeText.\n // Different ordering can cause bugs when editing AndroidTextInputs\n // with multiple Fragments.\n // We must update this so that controlled input updates work.\n setMostRecentEventCount(event.nativeEvent.eventCount);\n };\n\n const _onSelectionChange = (event: SelectionChangeEvent) => {\n props.onSelectionChange && props.onSelectionChange(event);\n\n if (inputRef.current == null) {\n // calling `props.onSelectionChange`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeSelection({\n selection: event.nativeEvent.selection,\n mostRecentEventCount,\n });\n };\n\n const _onFocus = (event: FocusEvent) => {\n TextInputState.focusInput(inputRef.current);\n if (props.onFocus) {\n props.onFocus(event);\n }\n };\n\n const _onBlur = (event: BlurEvent) => {\n TextInputState.blurInput(inputRef.current);\n if (props.onBlur) {\n props.onBlur(event);\n }\n };\n\n const _onScroll = (event: ScrollEvent) => {\n props.onScroll && props.onScroll(event);\n };\n\n let textInput = null;\n\n const multiline = props.multiline ?? false;\n\n let submitBehavior: SubmitBehavior;\n if (props.submitBehavior != null) {\n // `submitBehavior` is set explicitly\n if (!multiline && props.submitBehavior === 'newline') {\n // For single line text inputs, `'newline'` is not a valid option\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = props.submitBehavior;\n }\n } else if (multiline) {\n if (props.blurOnSubmit === true) {\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = 'newline';\n }\n } else {\n // Single line\n if (props.blurOnSubmit !== false) {\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = 'submit';\n }\n }\n\n const accessible = props.accessible !== false;\n const focusable = props.focusable !== false;\n\n const config = React.useMemo(\n () => ({\n onPress: (event: PressEvent) => {\n if (props.editable !== false) {\n if (inputRef.current != null) {\n inputRef.current.focus();\n }\n }\n },\n onPressIn: props.onPressIn,\n onPressOut: props.onPressOut,\n cancelable:\n Platform.OS === 'ios' ? !props.rejectResponderTermination : null,\n }),\n [\n props.editable,\n props.onPressIn,\n props.onPressOut,\n props.rejectResponderTermination,\n ],\n );\n\n // Hide caret during test runs due to a flashing caret\n // makes screenshot tests flakey\n let caretHidden = props.caretHidden;\n if (Platform.isTesting) {\n caretHidden = true;\n }\n\n // TextInput handles onBlur and onFocus events\n // so omitting onBlur and onFocus pressability handlers here.\n const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};\n\n const _accessibilityState = {\n busy: props['aria-busy'] ?? props.accessibilityState?.busy,\n checked: props['aria-checked'] ?? props.accessibilityState?.checked,\n disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,\n expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,\n selected: props['aria-selected'] ?? props.accessibilityState?.selected,\n };\n\n if (Platform.OS === 'ios') {\n const RCTTextInputView =\n props.multiline === true\n ? RCTMultilineTextInputView\n : RCTSinglelineTextInputView;\n\n const style =\n props.multiline === true\n ? StyleSheet.flatten([styles.multilineInput, props.style])\n : props.style;\n\n const useOnChangeSync =\n (props.unstable_onChangeSync || props.unstable_onChangeTextSync) &&\n !(props.onChange || props.onChangeText);\n\n textInput = (\n <RCTTextInputView\n ref={_setNativeRef}\n {...props}\n {...eventHandlers}\n accessible={accessible}\n accessibilityState={_accessibilityState}\n submitBehavior={submitBehavior}\n caretHidden={caretHidden}\n dataDetectorTypes={props.dataDetectorTypes}\n focusable={focusable}\n mostRecentEventCount={mostRecentEventCount}\n onBlur={_onBlur}\n onKeyPressSync={props.unstable_onKeyPressSync}\n onChange={_onChange}\n onChangeSync={useOnChangeSync === true ? _onChangeSync : null}\n onContentSizeChange={props.onContentSizeChange}\n onFocus={_onFocus}\n onScroll={_onScroll}\n onSelectionChange={_onSelectionChange}\n onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}\n selection={selection}\n style={style}\n text={text}\n />\n );\n } else if (Platform.OS === 'android') {\n const style = [props.style];\n const autoCapitalize = props.autoCapitalize || 'sentences';\n const _accessibilityLabelledBy =\n props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;\n const placeholder = props.placeholder ?? '';\n let children = props.children;\n const childCount = React.Children.count(children);\n invariant(\n !(props.value != null && childCount),\n 'Cannot specify both value and children.',\n );\n if (childCount > 1) {\n children = <Text>{children}</Text>;\n }\n\n textInput = (\n /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up\n * exactly with the props for TextInput. This will need to get fixed */\n /* $FlowFixMe[incompatible-type] the types for AndroidTextInput don't\n * match up exactly with the props for TextInput. This will need to get\n * fixed */\n /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput don't\n * match up exactly with the props for TextInput. This will need to get\n * fixed */\n <AndroidTextInput\n ref={_setNativeRef}\n {...props}\n {...eventHandlers}\n accessible={accessible}\n accessibilityState={_accessibilityState}\n accessibilityLabelledBy={_accessibilityLabelledBy}\n autoCapitalize={autoCapitalize}\n submitBehavior={submitBehavior}\n caretHidden={caretHidden}\n children={children}\n disableFullscreenUI={props.disableFullscreenUI}\n focusable={focusable}\n mostRecentEventCount={mostRecentEventCount}\n numberOfLines={props.rows ?? props.numberOfLines}\n onBlur={_onBlur}\n onChange={_onChange}\n onFocus={_onFocus}\n /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match\n * up exactly with the props for TextInput. This will need to get fixed\n */\n /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput\n * don't match up exactly with the props for TextInput. This will need\n * to get fixed */\n onScroll={_onScroll}\n onSelectionChange={_onSelectionChange}\n placeholder={placeholder}\n selection={selection}\n style={style}\n text={text}\n textBreakStrategy={props.textBreakStrategy}\n />\n );\n }\n return (\n <TextAncestor.Provider value={true}>{textInput}</TextAncestor.Provider>\n );\n}\n\nconst enterKeyHintToReturnTypeMap = {\n enter: 'default',\n done: 'done',\n go: 'go',\n next: 'next',\n previous: 'previous',\n search: 'search',\n send: 'send',\n};\n\nconst inputModeToKeyboardTypeMap = {\n none: 'default',\n text: 'default',\n decimal: 'decimal-pad',\n numeric: 'number-pad',\n tel: 'phone-pad',\n search: Platform.OS === 'ios' ? 'web-search' : 'default',\n email: 'email-address',\n url: 'url',\n};\n\n// Map HTML autocomplete values to Android autoComplete values\nconst autoCompleteWebToAutoCompleteAndroidMap = {\n 'address-line1': 'postal-address-region',\n 'address-line2': 'postal-address-locality',\n bday: 'birthdate-full',\n 'bday-day': 'birthdate-day',\n 'bday-month': 'birthdate-month',\n 'bday-year': 'birthdate-year',\n 'cc-csc': 'cc-csc',\n 'cc-exp': 'cc-exp',\n 'cc-exp-month': 'cc-exp-month',\n 'cc-exp-year': 'cc-exp-year',\n 'cc-number': 'cc-number',\n country: 'postal-address-country',\n 'current-password': 'password',\n email: 'email',\n 'honorific-prefix': 'name-prefix',\n 'honorific-suffix': 'name-suffix',\n name: 'name',\n 'additional-name': 'name-middle',\n 'family-name': 'name-family',\n 'given-name': 'name-given',\n 'new-password': 'password-new',\n off: 'off',\n 'one-time-code': 'sms-otp',\n 'postal-code': 'postal-code',\n sex: 'gender',\n 'street-address': 'street-address',\n tel: 'tel',\n 'tel-country-code': 'tel-country-code',\n 'tel-national': 'tel-national',\n username: 'username',\n};\n\n// Map HTML autocomplete values to iOS textContentType values\nconst autoCompleteWebToTextContentTypeMap = {\n 'address-line1': 'streetAddressLine1',\n 'address-line2': 'streetAddressLine2',\n 'cc-number': 'creditCardNumber',\n 'current-password': 'password',\n country: 'countryName',\n email: 'emailAddress',\n name: 'name',\n 'additional-name': 'middleName',\n 'family-name': 'familyName',\n 'given-name': 'givenName',\n nickname: 'nickname',\n 'honorific-prefix': 'namePrefix',\n 'honorific-suffix': 'nameSuffix',\n 'new-password': 'newPassword',\n off: 'none',\n 'one-time-code': 'oneTimeCode',\n organization: 'organizationName',\n 'organization-title': 'jobTitle',\n 'postal-code': 'postalCode',\n 'street-address': 'fullStreetAddress',\n tel: 'telephoneNumber',\n url: 'URL',\n username: 'username',\n};\n\nconst ExportedForwardRef: React.AbstractComponent<\n React.ElementConfig<typeof InternalTextInput>,\n React.ElementRef<HostComponent<mixed>> & ImperativeMethods,\n> = React.forwardRef(function TextInput(\n {\n allowFontScaling = true,\n rejectResponderTermination = true,\n underlineColorAndroid = 'transparent',\n autoComplete,\n textContentType,\n readOnly,\n editable,\n enterKeyHint,\n returnKeyType,\n inputMode,\n keyboardType,\n ...restProps\n },\n forwardedRef: ReactRefSetter<\n React.ElementRef<HostComponent<mixed>> & ImperativeMethods,\n >,\n) {\n const style = flattenStyle(restProps.style);\n\n if (style?.verticalAlign != null) {\n style.textAlignVertical =\n verticalAlignToTextAlignVerticalMap[style.verticalAlign];\n }\n\n return (\n <InternalTextInput\n allowFontScaling={allowFontScaling}\n rejectResponderTermination={rejectResponderTermination}\n underlineColorAndroid={underlineColorAndroid}\n editable={readOnly !== undefined ? !readOnly : editable}\n returnKeyType={\n enterKeyHint ? enterKeyHintToReturnTypeMap[enterKeyHint] : returnKeyType\n }\n keyboardType={\n inputMode ? inputModeToKeyboardTypeMap[inputMode] : keyboardType\n }\n autoComplete={\n Platform.OS === 'android'\n ? // $FlowFixMe\n autoCompleteWebToAutoCompleteAndroidMap[autoComplete] ??\n autoComplete\n : undefined\n }\n textContentType={\n Platform.OS === 'ios' &&\n autoComplete &&\n autoComplete in autoCompleteWebToTextContentTypeMap\n ? // $FlowFixMe\n autoCompleteWebToTextContentTypeMap[autoComplete]\n : textContentType\n }\n {...restProps}\n forwardedRef={forwardedRef}\n style={style}\n />\n );\n});\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nExportedForwardRef.propTypes =\n require('deprecated-react-native-prop-types').TextInputPropTypes;\n\n// $FlowFixMe[prop-missing]\nExportedForwardRef.State = {\n currentlyFocusedInput: TextInputState.currentlyFocusedInput,\n\n currentlyFocusedField: TextInputState.currentlyFocusedField,\n focusTextInput: TextInputState.focusTextInput,\n blurTextInput: TextInputState.blurTextInput,\n};\n\nexport type TextInputComponentStatics = $ReadOnly<{|\n State: $ReadOnly<{|\n currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,\n currentlyFocusedField: typeof TextInputState.currentlyFocusedField,\n focusTextInput: typeof TextInputState.focusTextInput,\n blurTextInput: typeof TextInputState.blurTextInput,\n |}>,\n|}>;\n\nconst styles = StyleSheet.create({\n multilineInput: {\n // This default top inset makes RCTMultilineTextInputView seem as close as possible\n // to single-line RCTSinglelineTextInputView defaults, using the system defaults\n // of font size 17 and a height of 31 points.\n paddingTop: 5,\n },\n});\n\nconst verticalAlignToTextAlignVerticalMap = {\n auto: 'auto',\n top: 'top',\n bottom: 'bottom',\n middle: 'center',\n};\n\n// $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.\nmodule.exports = ((ExportedForwardRef: any): TextInputType);\n","'use strict';\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n var error = new Error(message !== undefined ? message : 'Got unexpected ' + x);\n error.framesToPop = 1; // Skip nullthrows's own stack frame.\n throw error;\n}\n\nmodule.exports = nullthrows;\nmodule.exports.default = nullthrows;\n\nObject.defineProperty(module.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 strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport RCTTextInputViewConfig from './RCTTextInputViewConfig';\n\ntype NativeType = HostComponent<mixed>;\n\ntype NativeCommands = TextInputNativeCommands<NativeType>;\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTMultilineTextInputView',\n ...RCTTextInputViewConfig,\n validAttributes: {\n ...RCTTextInputViewConfig.validAttributes,\n dataDetectorTypes: true,\n },\n};\n\nconst MultilineTextInputNativeComponent: HostComponent<mixed> =\n NativeComponentRegistry.get<mixed>(\n 'RCTMultilineTextInputView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\n// flowlint-next-line unclear-type:off\nexport default ((MultilineTextInputNativeComponent: any): HostComponent<mixed>);\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 * @format\n */\n\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../../Types/CoreEventTypes';\nimport type {TouchableType} from './Touchable.flow';\n\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport UIManager from '../../ReactNative/UIManager';\nimport Platform from '../../Utilities/Platform';\nimport SoundManager from '../Sound/SoundManager';\nimport BoundingDimensions from './BoundingDimensions';\nimport Position from './Position';\nimport * as React from 'react';\n\nconst extractSingleTouch = (nativeEvent: {\n +changedTouches: $ReadOnlyArray<PressEvent['nativeEvent']>,\n +force?: number,\n +identifier: number,\n +locationX: number,\n +locationY: number,\n +pageX: number,\n +pageY: number,\n +target: ?number,\n +timestamp: number,\n +touches: $ReadOnlyArray<PressEvent['nativeEvent']>,\n}) => {\n const touches = nativeEvent.touches;\n const changedTouches = nativeEvent.changedTouches;\n const hasTouches = touches && touches.length > 0;\n const hasChangedTouches = changedTouches && changedTouches.length > 0;\n\n return !hasTouches && hasChangedTouches\n ? changedTouches[0]\n : hasTouches\n ? touches[0]\n : nativeEvent;\n};\n\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * <View\n * onStartShouldSetResponder={this.touchableHandleStartShouldSetResponder}\n * onResponderTerminationRequest={this.touchableHandleResponderTerminationRequest}\n * onResponderGrant={this.touchableHandleResponderGrant}\n * onResponderMove={this.touchableHandleResponderMove}\n * onResponderRelease={this.touchableHandleResponderRelease}\n * onResponderTerminate={this.touchableHandleResponderTerminate}>\n * <View>\n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * </View>\n * </View>\n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\nconst States = {\n NOT_RESPONDER: 'NOT_RESPONDER', // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN', // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT', // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN', // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT', // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN', // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT', // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR',\n};\n\ntype State =\n | typeof States.NOT_RESPONDER\n | typeof States.RESPONDER_INACTIVE_PRESS_IN\n | typeof States.RESPONDER_INACTIVE_PRESS_OUT\n | typeof States.RESPONDER_ACTIVE_PRESS_IN\n | typeof States.RESPONDER_ACTIVE_PRESS_OUT\n | typeof States.RESPONDER_ACTIVE_LONG_PRESS_IN\n | typeof States.RESPONDER_ACTIVE_LONG_PRESS_OUT\n | typeof States.ERROR;\n\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\n\nconst baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false,\n};\n\nconst IsActive = {\n ...baseStatesConditions,\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n};\n\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\nconst IsPressingIn = {\n ...baseStatesConditions,\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst IsLongPressingIn = {\n ...baseStatesConditions,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\n/**\n * Inputs to the state machine.\n */\nconst Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED',\n};\n\ntype Signal =\n | typeof Signals.DELAY\n | typeof Signals.RESPONDER_GRANT\n | typeof Signals.RESPONDER_RELEASE\n | typeof Signals.RESPONDER_TERMINATED\n | typeof Signals.ENTER_PRESS_RECT\n | typeof Signals.LEAVE_PRESS_RECT\n | typeof Signals.LONG_PRESS_DETECTED;\n\n/**\n * Mapping from States x Signals => States\n */\nconst Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER,\n },\n};\n\n// ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\nconst HIGHLIGHT_DELAY_MS = 130;\n\nconst PRESS_EXPAND_PX = 20;\n\nconst LONG_PRESS_THRESHOLD = 500;\n\nconst LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\n\nconst LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n// Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\nconst TouchableMixin = {\n componentDidMount: function () {\n if (!Platform.isTV) {\n return;\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n componentWillUnmount: function () {\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function (): $TEMPORARY$object<{|\n touchable: $TEMPORARY$object<{|responderID: null, touchState: void|}>,\n |}> {\n return {\n touchable: {touchState: undefined, responderID: null},\n };\n },\n\n // ==== Hooks to Gesture Responder system ====\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderTerminationRequest: function (): any {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleStartShouldSetResponder: function (): any {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function (): boolean {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderGrant: function (e: PressEvent) {\n const dispatchID = e.currentTarget;\n // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n e.persist();\n\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n let delayMS =\n this.touchableGetHighlightDelayMS !== undefined\n ? Math.max(this.touchableGetHighlightDelayMS(), 0)\n : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(\n this._handleDelay.bind(this, e),\n delayMS,\n );\n } else {\n this._handleDelay(e);\n }\n\n let longDelayMS =\n this.touchableGetLongPressDelayMS !== undefined\n ? Math.max(this.touchableGetLongPressDelayMS(), 10)\n : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(\n this._handleLongDelay.bind(this, e),\n longDelayMS + delayMS,\n );\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderRelease: function (e: PressEvent) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderTerminate: function (e: PressEvent) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderMove: function (e: PressEvent) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n const positionOnActivate = this.state.touchable.positionOnActivate;\n const dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n const pressRectOffset = this.touchableGetPressRectOffset\n ? this.touchableGetPressRectOffset()\n : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX,\n };\n\n let pressExpandLeft = pressRectOffset.left;\n let pressExpandTop = pressRectOffset.top;\n let pressExpandRight = pressRectOffset.right;\n let pressExpandBottom = pressRectOffset.bottom;\n\n const hitSlop = this.touchableGetHitSlop\n ? this.touchableGetHitSlop()\n : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n const touch = extractSingleTouch(e.nativeEvent);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n const movedDistance = this._getDistanceBetweenPoints(\n pageX,\n pageY,\n this.pressInLocation.pageX,\n this.pressInLocation.pageY,\n );\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n const isTouchWithinActive =\n pageX > positionOnActivate.left - pressExpandLeft &&\n pageY > positionOnActivate.top - pressExpandTop &&\n pageX <\n positionOnActivate.left +\n dimensionsOnActivate.width +\n pressExpandRight &&\n pageY <\n positionOnActivate.top +\n dimensionsOnActivate.height +\n pressExpandBottom;\n if (isTouchWithinActive) {\n const prevState = this.state.touchable.touchState;\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n const curState = this.state.touchable.touchState;\n if (\n curState === States.RESPONDER_INACTIVE_PRESS_IN &&\n prevState !== States.RESPONDER_INACTIVE_PRESS_IN\n ) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleFocus: function (e: Event) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleBlur: function (e: Event) {\n this.props.onBlur && this.props.onBlur(e);\n },\n\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _remeasureMetricsOnActivation: function () {\n const responderID = this.state.touchable.responderID;\n if (responderID == null) {\n return;\n }\n\n if (typeof responderID === 'number') {\n UIManager.measure(responderID, this._handleQueryLayout);\n } else {\n responderID.measure(this._handleQueryLayout);\n }\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleQueryLayout: function (\n l: number,\n t: number,\n w: number,\n h: number,\n globalX: number,\n globalY: number,\n ) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n this.state.touchable.positionOnActivate &&\n Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate &&\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(\n globalX,\n globalY,\n );\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(\n w,\n h,\n );\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleDelay: function (e: PressEvent) {\n this.touchableDelayTimeout = null;\n this._receiveSignal(Signals.DELAY, e);\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleLongDelay: function (e: PressEvent) {\n this.longPressDelayTimeout = null;\n const curState = this.state.touchable.touchState;\n if (\n curState === States.RESPONDER_ACTIVE_PRESS_IN ||\n curState === States.RESPONDER_ACTIVE_LONG_PRESS_IN\n ) {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _receiveSignal: function (signal: Signal, e: PressEvent) {\n const responderID = this.state.touchable.responderID;\n const curState = this.state.touchable.touchState;\n const nextState = Transitions[curState] && Transitions[curState][signal];\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n if (!nextState) {\n throw new Error(\n 'Unrecognized signal `' +\n signal +\n '` or state `' +\n curState +\n '` for Touchable responder `' +\n typeof this.state.touchable.responderID ===\n 'number'\n ? this.state.touchable.responderID\n : 'host component' + '`',\n );\n }\n if (nextState === States.ERROR) {\n throw new Error(\n 'Touchable cannot transition from `' +\n curState +\n '` to `' +\n signal +\n '` for responder `' +\n typeof this.state.touchable.responderID ===\n 'number'\n ? this.state.touchable.responderID\n : '<<host component>>' + '`',\n );\n }\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n this.state.touchable.touchState = nextState;\n }\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _cancelLongPressDelayTimeout: function () {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n\n _isHighlight: function (state: State): boolean {\n return (\n state === States.RESPONDER_ACTIVE_PRESS_IN ||\n state === States.RESPONDER_ACTIVE_LONG_PRESS_IN\n );\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _savePressInLocation: function (e: PressEvent) {\n const touch = extractSingleTouch(e.nativeEvent);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n const locationX = touch && touch.locationX;\n const locationY = touch && touch.locationY;\n this.pressInLocation = {pageX, pageY, locationX, locationY};\n },\n\n _getDistanceBetweenPoints: function (\n aX: number,\n aY: number,\n bX: number,\n bY: number,\n ): number {\n const deltaX = aX - bX;\n const deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _performSideEffectsForTransition: function (\n curState: State,\n nextState: State,\n signal: Signal,\n e: PressEvent,\n ) {\n const curIsHighlight = this._isHighlight(curState);\n const newIsHighlight = this._isHighlight(nextState);\n\n const isFinalSignal =\n signal === Signals.RESPONDER_TERMINATED ||\n signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition =\n curState === States.NOT_RESPONDER &&\n nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n\n const isActiveTransition = !IsActive[curState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n const hasLongPressHandler = !!this.props.onLongPress;\n const pressIsLongButStillCallOnPress =\n IsLongPressingIn[curState] && // We *are* long pressing.. // But either has no long handler\n (!hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n const shouldInvokePress =\n !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n if (Platform.OS === 'android' && !this.props.touchSoundDisabled) {\n SoundManager.playTouchSound();\n }\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _startHighlight: function (e: PressEvent) {\n this._savePressInLocation(e);\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _endHighlight: function (e: PressEvent) {\n if (this.touchableHandleActivePressOut) {\n if (\n this.touchableGetPressOutDelayMS &&\n this.touchableGetPressOutDelayMS()\n ) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n\n withoutDefaultFocusAndBlur: ({}: {...}),\n};\n\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\nconst {\n touchableHandleFocus,\n touchableHandleBlur,\n ...TouchableMixinWithoutDefaultFocusAndBlur\n} = TouchableMixin;\nTouchableMixin.withoutDefaultFocusAndBlur =\n TouchableMixinWithoutDefaultFocusAndBlur;\n\nconst Touchable: TouchableType = {\n Mixin: TouchableMixin,\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: ({\n color,\n hitSlop,\n }: {\n color: ColorValue,\n hitSlop: EdgeInsetsProp,\n ...\n }): null | React.Node => {\n if (__DEV__) {\n return <PressabilityDebugView color={color} hitSlop={hitSlop} />;\n }\n return null;\n },\n};\n\nmodule.exports = Touchable;\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 * @format\n */\n\n'use strict';\nimport PooledClass from './PooledClass';\n\nconst twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * PooledClass representing the bounding rectangle of a region.\n *\n * @param {number} width Width of bounding rectangle.\n * @param {number} height Height of bounding rectangle.\n * @constructor BoundingDimensions\n */\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\n/**\n * @param {HTMLElement} element Element to return `BoundingDimensions` for.\n * @return {BoundingDimensions} Bounding dimensions of `element`.\n */\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(\n element.offsetWidth,\n element.offsetHeight,\n );\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\n\nmodule.exports = BoundingDimensions;\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 * @format\n * @flow\n */\n\n'use strict';\nimport invariant from 'invariant';\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst oneArgumentPooler = function (copyFieldsFrom: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst twoArgumentPooler = function (a1: any, a2: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst threeArgumentPooler = function (a1: any, a2: any, a3: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst fourArgumentPooler = function (a1: any, a2: any, a3: any, a4: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst standardReleaser = function (instance) {\n const Klass = this; // eslint-disable-line consistent-this\n invariant(\n instance instanceof Klass,\n 'Trying to release an instance into a pool of a different type.',\n );\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nconst DEFAULT_POOL_SIZE = 10;\nconst DEFAULT_POOLER = oneArgumentPooler;\n\ntype Pooler = any;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nconst addPoolingTo = function <T>(\n CopyConstructor: Class<T>,\n pooler: Pooler,\n): Class<T> & {\n getPooled(\n ...args: $ReadOnlyArray<mixed>\n ): /* arguments of the constructor */ T,\n release(instance: mixed): void,\n ...\n} {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n const NewKlass = (CopyConstructor: any);\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nconst PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: (oneArgumentPooler: Pooler),\n twoArgumentPooler: (twoArgumentPooler: Pooler),\n threeArgumentPooler: (threeArgumentPooler: Pooler),\n fourArgumentPooler: (fourArgumentPooler: Pooler),\n};\n\nmodule.exports = PooledClass;\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 * @format\n */\n\n'use strict';\nimport PooledClass from './PooledClass';\n\nconst twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * Position does not expose methods for construction via an `HTMLDOMElement`,\n * because it isn't meaningful to construct such a thing without first defining\n * a frame of reference.\n *\n * @param {number} windowStartKey Key that window starts at.\n * @param {number} windowEndKey Key that window ends at.\n */\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\n\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\n\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\n\nmodule.exports = Position;\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 strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport StyleSheet, {type ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport * as React from 'react';\n\ntype AndroidProps = $ReadOnly<{|\n nextFocusDown?: ?number,\n nextFocusForward?: ?number,\n nextFocusLeft?: ?number,\n nextFocusRight?: ?number,\n nextFocusUp?: ?number,\n|}>;\n\ntype IOSProps = $ReadOnly<{|\n hasTVPreferredFocus?: ?boolean,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig<TouchableWithoutFeedback>,\n ...AndroidProps,\n ...IOSProps,\n\n activeOpacity?: ?number,\n underlayColor?: ?ColorValue,\n style?: ?ViewStyleProp,\n onShowUnderlay?: ?() => void,\n onHideUnderlay?: ?() => void,\n testOnly_pressed?: ?boolean,\n\n hostRef: React.Ref<typeof View>,\n|}>;\n\ntype ExtraStyles = $ReadOnly<{|\n child: ViewStyleProp,\n underlay: ViewStyleProp,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n extraStyles: ?ExtraStyles,\n|}>;\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n *\n * Example:\n *\n * ```\n * renderButton: function() {\n * return (\n * <TouchableHighlight onPress={this._onPressButton}>\n * <Image\n * style={styles.button}\n * source={require('./myButton.png')}\n * />\n * </TouchableHighlight>\n * );\n * },\n * ```\n *\n *\n * ### Example\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react'\n * import {\n * AppRegistry,\n * StyleSheet,\n * TouchableHighlight,\n * Text,\n * View,\n * } from 'react-native'\n *\n * class App extends Component {\n * constructor(props) {\n * super(props)\n * this.state = { count: 0 }\n * }\n *\n * onPress = () => {\n * this.setState({\n * count: this.state.count+1\n * })\n * }\n *\n * render() {\n * return (\n * <View style={styles.container}>\n * <TouchableHighlight\n * style={styles.button}\n * onPress={this.onPress}\n * >\n * <Text> Touch Here </Text>\n * </TouchableHighlight>\n * <View style={[styles.countContainer]}>\n * <Text style={[styles.countText]}>\n * { this.state.count !== 0 ? this.state.count: null}\n * </Text>\n * </View>\n * </View>\n * )\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * paddingHorizontal: 10\n * },\n * button: {\n * alignItems: 'center',\n * backgroundColor: '#DDDDDD',\n * padding: 10\n * },\n * countContainer: {\n * alignItems: 'center',\n * padding: 10\n * },\n * countText: {\n * color: '#FF00FF'\n * }\n * })\n *\n * AppRegistry.registerComponent('App', () => App)\n * ```\n *\n */\nclass TouchableHighlight extends React.Component<Props, State> {\n _hideTimeout: ?TimeoutID;\n _isMounted: boolean = false;\n\n state: State = {\n pressability: new Pressability(this._createPressabilityConfig()),\n extraStyles:\n this.props.testOnly_pressed === true ? this._createExtraStyles() : null,\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled != null\n ? this.props.disabled\n : this.props.accessibilityState?.disabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n android_disableSound: this.props.touchSoundDisabled,\n onBlur: event => {\n if (Platform.isTV) {\n this._hideUnderlay();\n }\n if (this.props.onBlur != null) {\n this.props.onBlur(event);\n }\n },\n onFocus: event => {\n if (Platform.isTV) {\n this._showUnderlay();\n }\n if (this.props.onFocus != null) {\n this.props.onFocus(event);\n }\n },\n onLongPress: this.props.onLongPress,\n onPress: event => {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n }\n if (!Platform.isTV) {\n this._showUnderlay();\n this._hideTimeout = setTimeout(() => {\n this._hideUnderlay();\n }, this.props.delayPressOut ?? 0);\n }\n if (this.props.onPress != null) {\n this.props.onPress(event);\n }\n },\n onPressIn: event => {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n this._showUnderlay();\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressOut: event => {\n if (this._hideTimeout == null) {\n this._hideUnderlay();\n }\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n _createExtraStyles(): ExtraStyles {\n return {\n child: {opacity: this.props.activeOpacity ?? 0.85},\n underlay: {\n backgroundColor:\n this.props.underlayColor === undefined\n ? 'black'\n : this.props.underlayColor,\n },\n };\n }\n\n _showUnderlay(): void {\n if (!this._isMounted || !this._hasPressHandler()) {\n return;\n }\n this.setState({extraStyles: this._createExtraStyles()});\n if (this.props.onShowUnderlay != null) {\n this.props.onShowUnderlay();\n }\n }\n\n _hideUnderlay(): void {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n if (this.props.testOnly_pressed === true) {\n return;\n }\n if (this._hasPressHandler()) {\n this.setState({extraStyles: null});\n if (this.props.onHideUnderlay != null) {\n this.props.onHideUnderlay();\n }\n }\n }\n\n _hasPressHandler(): boolean {\n return (\n this.props.onPress != null ||\n this.props.onPressIn != null ||\n this.props.onPressOut != null ||\n this.props.onLongPress != null\n );\n }\n\n render(): React.Node {\n const child = React.Children.only(this.props.children);\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n const accessibilityState =\n this.props.disabled != null\n ? {\n ...this.props.accessibilityState,\n disabled: this.props.disabled,\n }\n : this.props.accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return (\n <View\n accessible={this.props.accessible !== false}\n accessibilityLabel={accessibilityLabel}\n accessibilityHint={this.props.accessibilityHint}\n accessibilityLanguage={this.props.accessibilityLanguage}\n accessibilityRole={this.props.accessibilityRole}\n accessibilityState={accessibilityState}\n accessibilityValue={accessibilityValue}\n accessibilityActions={this.props.accessibilityActions}\n onAccessibilityAction={this.props.onAccessibilityAction}\n importantForAccessibility={\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility\n }\n accessibilityViewIsModal={\n this.props['aria-modal'] ?? this.props.accessibilityViewIsModal\n }\n accessibilityLiveRegion={accessibilityLiveRegion}\n accessibilityElementsHidden={\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden\n }\n style={StyleSheet.compose(\n this.props.style,\n this.state.extraStyles?.underlay,\n )}\n onLayout={this.props.onLayout}\n hitSlop={this.props.hitSlop}\n hasTVPreferredFocus={this.props.hasTVPreferredFocus}\n nextFocusDown={this.props.nextFocusDown}\n nextFocusForward={this.props.nextFocusForward}\n nextFocusLeft={this.props.nextFocusLeft}\n nextFocusRight={this.props.nextFocusRight}\n nextFocusUp={this.props.nextFocusUp}\n focusable={\n this.props.focusable !== false && this.props.onPress !== undefined\n }\n nativeID={this.props.nativeID}\n testID={this.props.testID}\n ref={this.props.hostRef}\n {...eventHandlersWithoutBlurAndFocus}>\n {React.cloneElement(child, {\n style: StyleSheet.compose(\n child.props.style,\n this.state.extraStyles?.child,\n ),\n })}\n {__DEV__ ? (\n <PressabilityDebugView color=\"green\" hitSlop={this.props.hitSlop} />\n ) : null}\n </View>\n );\n }\n\n componentDidMount(): void {\n this._isMounted = true;\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n }\n\n componentWillUnmount(): void {\n this._isMounted = false;\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n }\n this.state.pressability.reset();\n }\n}\n\nconst Touchable = (React.forwardRef((props, hostRef) => (\n <TouchableHighlight {...props} hostRef={hostRef} />\n)): React.AbstractComponent<\n $ReadOnly<$Diff<Props, {|hostRef: React.Ref<typeof View>|}>>,\n React.ElementRef<typeof View>,\n>);\n\nTouchable.displayName = 'TouchableHighlight';\n\nmodule.exports = Touchable;\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 strict-local\n * @format\n */\n\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityRole,\n AccessibilityState,\n AccessibilityValue,\n} from '../../Components/View/ViewAccessibility';\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {\n BlurEvent,\n FocusEvent,\n LayoutEvent,\n PressEvent,\n} from '../../Types/CoreEventTypes';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,\n accessibilityElementsHidden?: ?boolean,\n accessibilityHint?: ?Stringish,\n accessibilityLanguage?: ?Stringish,\n accessibilityIgnoresInvertColors?: ?boolean,\n accessibilityLabel?: ?Stringish,\n accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),\n accessibilityRole?: ?AccessibilityRole,\n accessibilityState?: ?AccessibilityState,\n accessibilityValue?: ?AccessibilityValue,\n 'aria-valuemax'?: AccessibilityValue['max'],\n 'aria-valuemin'?: AccessibilityValue['min'],\n 'aria-valuenow'?: AccessibilityValue['now'],\n 'aria-valuetext'?: AccessibilityValue['text'],\n accessibilityViewIsModal?: ?boolean,\n 'aria-modal'?: ?boolean,\n accessible?: ?boolean,\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n 'aria-hidden'?: ?boolean,\n 'aria-live'?: ?('polite' | 'assertive' | 'off'),\n 'aria-label'?: ?Stringish,\n children?: ?React.Node,\n delayLongPress?: ?number,\n delayPressIn?: ?number,\n delayPressOut?: ?number,\n disabled?: ?boolean,\n focusable?: ?boolean,\n hitSlop?: ?EdgeInsetsProp,\n id?: string,\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n nativeID?: ?string,\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n onBlur?: ?(event: BlurEvent) => mixed,\n onFocus?: ?(event: FocusEvent) => mixed,\n onLayout?: ?(event: LayoutEvent) => mixed,\n onLongPress?: ?(event: PressEvent) => mixed,\n onPress?: ?(event: PressEvent) => mixed,\n onPressIn?: ?(event: PressEvent) => mixed,\n onPressOut?: ?(event: PressEvent) => mixed,\n pressRetentionOffset?: ?EdgeInsetsProp,\n rejectResponderTermination?: ?boolean,\n testID?: ?string,\n touchSoundDisabled?: ?boolean,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n|}>;\n\nconst PASSTHROUGH_PROPS = [\n 'accessibilityActions',\n 'accessibilityElementsHidden',\n 'accessibilityHint',\n 'accessibilityLanguage',\n 'accessibilityIgnoresInvertColors',\n 'accessibilityLabel',\n 'accessibilityLiveRegion',\n 'accessibilityRole',\n 'accessibilityValue',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n 'accessibilityViewIsModal',\n 'aria-modal',\n 'hitSlop',\n 'importantForAccessibility',\n 'nativeID',\n 'onAccessibilityAction',\n 'onBlur',\n 'onFocus',\n 'onLayout',\n 'testID',\n];\n\nclass TouchableWithoutFeedback extends React.Component<Props, State> {\n state: State = {\n pressability: new Pressability(createPressabilityConfig(this.props)),\n };\n\n render(): React.Node {\n const element = React.Children.only(this.props.children);\n const children = [element.props.children];\n const ariaLive = this.props['aria-live'];\n\n if (__DEV__) {\n if (element.type === View) {\n children.push(\n <PressabilityDebugView color=\"red\" hitSlop={this.props.hitSlop} />,\n );\n }\n }\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n const elementProps: {[string]: mixed, ...} = {\n ...eventHandlersWithoutBlurAndFocus,\n accessible: this.props.accessible !== false,\n accessibilityState:\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState,\n focusable:\n this.props.focusable !== false && this.props.onPress !== undefined,\n\n accessibilityElementsHidden:\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,\n importantForAccessibility:\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility,\n accessibilityLiveRegion:\n ariaLive === 'off'\n ? 'none'\n : ariaLive ?? this.props.accessibilityLiveRegion,\n nativeID: this.props.id ?? this.props.nativeID,\n };\n for (const prop of PASSTHROUGH_PROPS) {\n if (this.props[prop] !== undefined) {\n elementProps[prop] = this.props[prop];\n }\n }\n\n return React.cloneElement(element, elementProps, ...children);\n }\n\n componentDidUpdate(): void {\n this.state.pressability.configure(createPressabilityConfig(this.props));\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nfunction createPressabilityConfig({\n 'aria-disabled': ariaDisabled,\n ...props\n}: Props): PressabilityConfig {\n const accessibilityStateDisabled =\n ariaDisabled ?? props.accessibilityState?.disabled;\n return {\n cancelable: !props.rejectResponderTermination,\n disabled:\n props.disabled !== null ? props.disabled : accessibilityStateDisabled,\n hitSlop: props.hitSlop,\n delayLongPress: props.delayLongPress,\n delayPressIn: props.delayPressIn,\n delayPressOut: props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: props.pressRetentionOffset,\n android_disableSound: props.touchSoundDisabled,\n onBlur: props.onBlur,\n onFocus: props.onFocus,\n onLongPress: props.onLongPress,\n onPress: props.onPress,\n onPressIn: props.onPressIn,\n onPressOut: props.onPressOut,\n };\n}\n\nTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\n\nmodule.exports = TouchableWithoutFeedback;\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 * @format\n */\n\nimport type {ProcessedColorValue} from '../StyleSheet/processColor';\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\n\nimport RCTActionSheetManager from './NativeActionSheetManager';\n\nconst processColor = require('../StyleSheet/processColor');\nconst invariant = require('invariant');\n\n/**\n * Display action sheets and share sheets on iOS.\n *\n * See https://reactnative.dev/docs/actionsheetios\n */\nconst ActionSheetIOS = {\n /**\n * Display an iOS action sheet.\n *\n * The `options` object must contain one or more of:\n *\n * - `options` (array of strings) - a list of button titles (required)\n * - `cancelButtonIndex` (int) - index of cancel button in `options`\n * - `destructiveButtonIndex` (int or array of ints) - index or indices of destructive buttons in `options`\n * - `title` (string) - a title to show above the action sheet\n * - `message` (string) - a message to show below the title\n * - `disabledButtonIndices` (array of numbers) - a list of button indices which should be disabled\n *\n * The 'callback' function takes one parameter, the zero-based index\n * of the selected item.\n *\n * See https://reactnative.dev/docs/actionsheetios#showactionsheetwithoptions\n */\n showActionSheetWithOptions(\n options: {|\n +title?: ?string,\n +message?: ?string,\n +options: Array<string>,\n +destructiveButtonIndex?: ?number | ?Array<number>,\n +cancelButtonIndex?: ?number,\n +anchor?: ?number,\n +tintColor?: ColorValue | ProcessedColorValue,\n +cancelButtonTintColor?: ColorValue | ProcessedColorValue,\n +userInterfaceStyle?: string,\n +disabledButtonIndices?: Array<number>,\n |},\n callback: (buttonIndex: number) => void,\n ) {\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n invariant(typeof callback === 'function', 'Must provide a valid callback');\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n\n const {\n tintColor,\n cancelButtonTintColor,\n destructiveButtonIndex,\n ...remainingOptions\n } = options;\n let destructiveButtonIndices = null;\n\n if (Array.isArray(destructiveButtonIndex)) {\n destructiveButtonIndices = destructiveButtonIndex;\n } else if (typeof destructiveButtonIndex === 'number') {\n destructiveButtonIndices = [destructiveButtonIndex];\n }\n\n const processedTintColor = processColor(tintColor);\n const processedCancelButtonTintColor = processColor(cancelButtonTintColor);\n invariant(\n processedTintColor == null || typeof processedTintColor === 'number',\n 'Unexpected color given for ActionSheetIOS.showActionSheetWithOptions tintColor',\n );\n invariant(\n processedCancelButtonTintColor == null ||\n typeof processedCancelButtonTintColor === 'number',\n 'Unexpected color given for ActionSheetIOS.showActionSheetWithOptions cancelButtonTintColor',\n );\n RCTActionSheetManager.showActionSheetWithOptions(\n {\n ...remainingOptions,\n tintColor: processedTintColor,\n cancelButtonTintColor: processedCancelButtonTintColor,\n destructiveButtonIndices,\n },\n callback,\n );\n },\n\n /**\n * Display the iOS share sheet. The `options` object should contain\n * one or both of `message` and `url` and can additionally have\n * a `subject` or `excludedActivityTypes`:\n *\n * - `url` (string) - a URL to share\n * - `message` (string) - a message to share\n * - `subject` (string) - a subject for the message\n * - `excludedActivityTypes` (array) - the activities to exclude from\n * the ActionSheet\n * - `tintColor` (color) - tint color of the buttons\n *\n * The 'failureCallback' function takes one parameter, an error object.\n * The only property defined on this object is an optional `stack` property\n * of type `string`.\n *\n * The 'successCallback' function takes two parameters:\n *\n * - a boolean value signifying success or failure\n * - a string that, in the case of success, indicates the method of sharing\n *\n * See https://reactnative.dev/docs/actionsheetios#showshareactionsheetwithoptions\n */\n showShareActionSheetWithOptions(\n options: Object,\n failureCallback: Function,\n successCallback: Function,\n ) {\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n invariant(\n typeof failureCallback === 'function',\n 'Must provide a valid failureCallback',\n );\n invariant(\n typeof successCallback === 'function',\n 'Must provide a valid successCallback',\n );\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n RCTActionSheetManager.showShareActionSheetWithOptions(\n {...options, tintColor: processColor(options.tintColor)},\n failureCallback,\n successCallback,\n );\n },\n\n dismissActionSheet: () => {\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n if (typeof RCTActionSheetManager.dismissActionSheet === 'function') {\n RCTActionSheetManager.dismissActionSheet();\n }\n },\n};\n\nmodule.exports = ActionSheetIOS;\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +showActionSheetWithOptions: (\n options: {|\n +title?: ?string,\n +message?: ?string,\n +options: ?Array<string>,\n +destructiveButtonIndices?: ?Array<number>,\n +cancelButtonIndex?: ?number,\n +anchor?: ?number,\n +tintColor?: ?number,\n +cancelButtonTintColor?: ?number,\n +userInterfaceStyle?: ?string,\n +disabledButtonIndices?: Array<number>,\n |},\n callback: (buttonIndex: number) => void,\n ) => void;\n +showShareActionSheetWithOptions: (\n options: {|\n +message?: ?string,\n +url?: ?string,\n +subject?: ?string,\n +anchor?: ?number,\n +tintColor?: ?number,\n +cancelButtonTintColor?: ?number,\n +excludedActivityTypes?: ?Array<string>,\n +userInterfaceStyle?: ?string,\n |},\n failureCallback: (error: {|\n +domain: string,\n +code: string,\n +userInfo?: ?Object,\n +message: string,\n |}) => void,\n successCallback: (completed: boolean, activityType: ?string) => void,\n ) => void;\n +dismissActionSheet?: () => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('ActionSheetManager'): ?Spec);\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 * @format\n * @flow strict-local\n */\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport EventEmitter, {\n type EventSubscription,\n} from '../vendor/emitter/EventEmitter';\nimport {isAsyncDebugging} from './DebugEnvironment';\nimport NativeAppearance, {\n type AppearancePreferences,\n type ColorSchemeName,\n} from './NativeAppearance';\nimport invariant from 'invariant';\n\ntype AppearanceListener = (preferences: AppearancePreferences) => void;\nconst eventEmitter = new EventEmitter<{\n change: [AppearancePreferences],\n}>();\n\ntype NativeAppearanceEventDefinitions = {\n appearanceChanged: [AppearancePreferences],\n};\n\nif (NativeAppearance) {\n const nativeEventEmitter =\n new NativeEventEmitter<NativeAppearanceEventDefinitions>(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAppearance,\n );\n nativeEventEmitter.addListener(\n 'appearanceChanged',\n (newAppearance: AppearancePreferences) => {\n const {colorScheme} = newAppearance;\n invariant(\n colorScheme === 'dark' ||\n colorScheme === 'light' ||\n colorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark' or 'light'?\",\n );\n eventEmitter.emit('change', {colorScheme});\n },\n );\n}\n\nmodule.exports = {\n /**\n * Note: Although color scheme is available immediately, it may change at any\n * time. Any rendering logic or styles that depend on this should try to call\n * this function on every render, rather than caching the value (for example,\n * using inline styles rather than setting a value in a `StyleSheet`).\n *\n * Example: `const colorScheme = Appearance.getColorScheme();`\n *\n * @returns {?ColorSchemeName} Value for the color scheme preference.\n */\n getColorScheme(): ?ColorSchemeName {\n if (__DEV__) {\n if (isAsyncDebugging) {\n // Hard code light theme when using the async debugger as\n // sync calls aren't supported\n return 'light';\n }\n }\n\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n const nativeColorScheme: ?string =\n NativeAppearance == null\n ? null\n : NativeAppearance.getColorScheme() || null;\n invariant(\n nativeColorScheme === 'dark' ||\n nativeColorScheme === 'light' ||\n nativeColorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark' or 'light'?\",\n );\n return nativeColorScheme;\n },\n\n /**\n * Add an event handler that is fired when appearance preferences change.\n */\n addChangeListener(listener: AppearanceListener): EventSubscription {\n return eventEmitter.addListener('change', listener);\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 * @format\n * @flow strict\n */\n\nexport let isAsyncDebugging: boolean = false;\n\nif (__DEV__) {\n // These native interfaces don't exist in asynchronous debugging environments.\n isAsyncDebugging =\n !global.nativeExtensions &&\n !global.nativeCallSyncHook &&\n !global.RN$Bridgeless;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type ColorSchemeName = 'light' | 'dark';\n\nexport type AppearancePreferences = {|\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n // types.\n /* 'light' | 'dark' */\n colorScheme?: ?string,\n|};\n\nexport interface Spec extends TurboModule {\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n // types.\n /* 'light' | 'dark' */\n +getColorScheme: () => ?string;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('Appearance'): ?Spec);\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 strict-local\n * @format\n */\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport logError from '../Utilities/logError';\nimport Platform from '../Utilities/Platform';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport NativeAppState from './NativeAppState';\n\nexport type AppStateValues = 'inactive' | 'background' | 'active';\n\ntype AppStateEventDefinitions = {\n change: [AppStateValues],\n memoryWarning: [],\n blur: [],\n focus: [],\n};\n\ntype NativeAppStateEventDefinitions = {\n appStateDidChange: [{app_state: AppStateValues}],\n appStateFocusChange: [boolean],\n memoryWarning: [],\n};\n\n/**\n * `AppState` can tell you if the app is in the foreground or background,\n * and notify you when the state changes.\n *\n * See https://reactnative.dev/docs/appstate\n */\nclass AppState {\n currentState: ?string = null;\n isAvailable: boolean;\n\n _emitter: ?NativeEventEmitter<NativeAppStateEventDefinitions>;\n\n constructor() {\n if (NativeAppState == null) {\n this.isAvailable = false;\n } else {\n this.isAvailable = true;\n\n const emitter: NativeEventEmitter<NativeAppStateEventDefinitions> =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAppState,\n );\n this._emitter = emitter;\n\n this.currentState = NativeAppState.getConstants().initialAppState;\n\n let eventUpdated = false;\n\n // TODO: this is a terrible solution - in order to ensure `currentState`\n // prop is up to date, we have to register an observer that updates it\n // whenever the state changes, even if nobody cares. We should just\n // deprecate the `currentState` property and get rid of this.\n emitter.addListener('appStateDidChange', appStateData => {\n eventUpdated = true;\n this.currentState = appStateData.app_state;\n });\n\n // TODO: see above - this request just populates the value of `currentState`\n // when the module is first initialized. Would be better to get rid of the\n // prop and expose `getCurrentAppState` method directly.\n // $FlowExpectedError[incompatible-call]\n NativeAppState.getCurrentAppState(appStateData => {\n // It's possible that the state will have changed here & listeners need to be notified\n if (!eventUpdated && this.currentState !== appStateData.app_state) {\n this.currentState = appStateData.app_state;\n // $FlowFixMe[incompatible-call]\n emitter.emit('appStateDidChange', appStateData);\n }\n }, logError);\n }\n }\n\n /**\n * Add a handler to AppState changes by listening to the `change` event type\n * and providing the handler.\n *\n * See https://reactnative.dev/docs/appstate#addeventlistener\n */\n addEventListener<K: $Keys<AppStateEventDefinitions>>(\n type: K,\n handler: (...$ElementType<AppStateEventDefinitions, K>) => void,\n ): EventSubscription {\n const emitter = this._emitter;\n if (emitter == null) {\n throw new Error('Cannot use AppState when `isAvailable` is false.');\n }\n switch (type) {\n case 'change':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const changeHandler: AppStateValues => void = handler;\n return emitter.addListener('appStateDidChange', appStateData => {\n changeHandler(appStateData.app_state);\n });\n case 'memoryWarning':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const memoryWarningHandler: () => void = handler;\n return emitter.addListener('memoryWarning', memoryWarningHandler);\n case 'blur':\n case 'focus':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const focusOrBlurHandler: () => void = handler;\n return emitter.addListener('appStateFocusChange', hasFocus => {\n if (type === 'blur' && !hasFocus) {\n focusOrBlurHandler();\n }\n if (type === 'focus' && hasFocus) {\n focusOrBlurHandler();\n }\n });\n }\n throw new Error('Trying to subscribe to unknown event: ' + type);\n }\n}\n\nmodule.exports = (new AppState(): AppState);\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 * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Small utility that can be used as an error handler. You cannot just pass\n * `console.error` as a failure callback - it's not properly bound. If passes an\n * `Error` object, it will print the message and stack.\n */\nconst logError = function (...args: $ReadOnlyArray<mixed>) {\n if (args.length === 1 && args[0] instanceof Error) {\n const err = args[0];\n console.error('Error: \"' + err.message + '\". Stack:\\n' + err.stack);\n } else {\n console.error.apply(console, args);\n }\n};\n\nmodule.exports = logError;\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n initialAppState: string,\n |};\n +getCurrentAppState: (\n success: (appState: {|app_state: string|}) => void,\n error: (error: Object) => void,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('AppState'): Spec);\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 * @format\n * @flow strict\n */\n\nimport NativeClipboard from './NativeClipboard';\n\n/**\n * `Clipboard` gives you an interface for setting and getting content from Clipboard on both iOS and Android\n */\nmodule.exports = {\n /**\n * Get content of string type, this method returns a `Promise`, so you can use following code to get clipboard content\n * ```javascript\n * async _getContent() {\n * var content = await Clipboard.getString();\n * }\n * ```\n */\n getString(): Promise<string> {\n return NativeClipboard.getString();\n },\n /**\n * Set content of string type. You can use following code to set clipboard content\n * ```javascript\n * _setContent() {\n * Clipboard.setString('hello world');\n * }\n * ```\n * @param the content to be stored in the clipboard.\n */\n setString(content: string) {\n NativeClipboard.setString(content);\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +getString: () => Promise<string>;\n +setString: (content: string) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('Clipboard'): Spec);\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 * @format\n * @flow strict-local\n */\n\nimport NativeDeviceInfo from './NativeDeviceInfo';\n\nmodule.exports = NativeDeviceInfo;\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 strict-local\n * @format\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport NativeDevSettings from '../NativeModules/specs/NativeDevSettings';\nimport Platform from '../Utilities/Platform';\n\nlet DevSettings: {\n addMenuItem(title: string, handler: () => mixed): void,\n reload(reason?: string): void,\n onFastRefresh(): void,\n} = {\n addMenuItem(title: string, handler: () => mixed): void {},\n reload(reason?: string): void {},\n onFastRefresh(): void {},\n};\n\ntype DevSettingsEventDefinitions = {\n didPressMenuItem: [{title: string}],\n};\n\nif (__DEV__) {\n const emitter = new NativeEventEmitter<DevSettingsEventDefinitions>(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeDevSettings,\n );\n const subscriptions = new Map<string, EventSubscription>();\n\n DevSettings = {\n addMenuItem(title: string, handler: () => mixed): void {\n // Make sure items are not added multiple times. This can\n // happen when hot reloading the module that registers the\n // menu items. The title is used as the id which means we\n // don't support multiple items with the same name.\n let subscription = subscriptions.get(title);\n if (subscription != null) {\n subscription.remove();\n } else {\n NativeDevSettings.addMenuItem(title);\n }\n\n subscription = emitter.addListener('didPressMenuItem', event => {\n if (event.title === title) {\n handler();\n }\n });\n subscriptions.set(title, subscription);\n },\n reload(reason?: string): void {\n if (NativeDevSettings.reloadWithReason != null) {\n NativeDevSettings.reloadWithReason(reason ?? 'Uncategorized from JS');\n } else {\n NativeDevSettings.reload();\n }\n },\n onFastRefresh(): void {\n NativeDevSettings.onFastRefresh?.();\n },\n };\n}\n\nmodule.exports = DevSettings;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +reload: () => void;\n +reloadWithReason?: (reason: string) => void;\n +onFastRefresh?: () => void;\n +setHotLoadingEnabled: (isHotLoadingEnabled: boolean) => void;\n +setIsDebuggingRemotely: (isDebuggingRemotelyEnabled: boolean) => void;\n +setProfilingEnabled: (isProfilingEnabled: boolean) => void;\n +toggleElementInspector: () => void;\n +addMenuItem: (title: string) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // iOS only.\n +setIsShakeToShowDevMenuEnabled: (enabled: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('DevSettings'): Spec);\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 * @format\n * @flow strict-local\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport InteractionManager from '../Interaction/InteractionManager';\nimport Platform from '../Utilities/Platform';\nimport NativeIntentAndroid from './NativeIntentAndroid';\nimport NativeLinkingManager from './NativeLinkingManager';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\n\ntype LinkingEventDefinitions = {\n url: [{url: string}],\n};\n\n/**\n * `Linking` gives you a general interface to interact with both incoming\n * and outgoing app links.\n *\n * See https://reactnative.dev/docs/linking\n */\nclass Linking extends NativeEventEmitter<LinkingEventDefinitions> {\n constructor() {\n super(Platform.OS === 'ios' ? nullthrows(NativeLinkingManager) : undefined);\n }\n\n /**\n * Add a handler to Linking changes by listening to the `url` event type\n * and providing the handler\n *\n * See https://reactnative.dev/docs/linking#addeventlistener\n */\n addEventListener<K: $Keys<LinkingEventDefinitions>>(\n eventType: K,\n listener: (...$ElementType<LinkingEventDefinitions, K>) => mixed,\n context: $FlowFixMe,\n ): EventSubscription {\n return this.addListener(eventType, listener);\n }\n\n /**\n * Try to open the given `url` with any of the installed apps.\n *\n * See https://reactnative.dev/docs/linking#openurl\n */\n openURL(url: string): Promise<void> {\n this._validateURL(url);\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).openURL(url);\n } else {\n return nullthrows(NativeLinkingManager).openURL(url);\n }\n }\n\n /**\n * Determine whether or not an installed app can handle a given URL.\n *\n * See https://reactnative.dev/docs/linking#canopenurl\n */\n canOpenURL(url: string): Promise<boolean> {\n this._validateURL(url);\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).canOpenURL(url);\n } else {\n return nullthrows(NativeLinkingManager).canOpenURL(url);\n }\n }\n\n /**\n * Open app settings.\n *\n * See https://reactnative.dev/docs/linking#opensettings\n */\n openSettings(): Promise<void> {\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).openSettings();\n } else {\n return nullthrows(NativeLinkingManager).openSettings();\n }\n }\n\n /**\n * If the app launch was triggered by an app link,\n * it will give the link url, otherwise it will give `null`\n *\n * See https://reactnative.dev/docs/linking#getinitialurl\n */\n getInitialURL(): Promise<?string> {\n return Platform.OS === 'android'\n ? InteractionManager.runAfterInteractions().then(() =>\n nullthrows(NativeIntentAndroid).getInitialURL(),\n )\n : nullthrows(NativeLinkingManager).getInitialURL();\n }\n\n /*\n * Launch an Android intent with extras (optional)\n *\n * @platform android\n *\n * See https://reactnative.dev/docs/linking#sendintent\n */\n sendIntent(\n action: string,\n extras?: Array<{\n key: string,\n value: string | number | boolean,\n ...\n }>,\n ): Promise<void> {\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).sendIntent(action, extras);\n } else {\n return new Promise((resolve, reject) => reject(new Error('Unsupported')));\n }\n }\n\n _validateURL(url: string): void {\n invariant(\n typeof url === 'string',\n 'Invalid URL: should be a string. Was: ' + url,\n );\n invariant(url, 'Invalid URL: cannot be empty');\n }\n}\n\nmodule.exports = (new Linking(): Linking);\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getInitialURL: () => Promise<string>;\n +canOpenURL: (url: string) => Promise<boolean>;\n +openURL: (url: string) => Promise<void>;\n +openSettings: () => Promise<void>;\n +sendIntent: (\n action: string,\n extras: ?Array<{\n key: string,\n value: string | number | boolean, // TODO(T67672788): Union types are not type safe\n ...\n }>,\n ) => Promise<void>;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('IntentAndroid'): ?Spec);\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n // Common interface\n +getInitialURL: () => Promise<string>;\n +canOpenURL: (url: string) => Promise<boolean>;\n +openURL: (url: string) => Promise<void>;\n +openSettings: () => Promise<void>;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('LinkingManager'): ?Spec);\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 strict\n * @format\n */\n\nimport type {IgnorePattern, LogData} from './Data/LogBoxData';\nimport type {ExtendedExceptionData} from './Data/parseLogBoxLog';\n\nimport Platform from '../Utilities/Platform';\nimport RCTLog from '../Utilities/RCTLog';\n\nexport type {LogData, ExtendedExceptionData, IgnorePattern};\n\nlet LogBox;\n\ninterface ILogBox {\n install(): void;\n uninstall(): void;\n isInstalled(): boolean;\n ignoreLogs($ReadOnlyArray<IgnorePattern>): void;\n ignoreAllLogs(?boolean): void;\n clearAllLogs(): void;\n addLog(log: LogData): void;\n addException(error: ExtendedExceptionData): void;\n}\n\n/**\n * LogBox displays logs in the app.\n */\nif (__DEV__) {\n const LogBoxData = require('./Data/LogBoxData');\n const {parseLogBoxLog, parseInterpolation} = require('./Data/parseLogBoxLog');\n\n let originalConsoleError;\n let originalConsoleWarn;\n let consoleErrorImpl;\n let consoleWarnImpl: (...args: Array<mixed>) => void;\n\n let isLogBoxInstalled: boolean = false;\n\n LogBox = {\n install(): void {\n if (isLogBoxInstalled) {\n return;\n }\n\n isLogBoxInstalled = true;\n\n // Trigger lazy initialization of module.\n require('../NativeModules/specs/NativeLogBox');\n\n // IMPORTANT: we only overwrite `console.error` and `console.warn` once.\n // When we uninstall we keep the same reference and only change its\n // internal implementation\n const isFirstInstall = originalConsoleError == null;\n if (isFirstInstall) {\n originalConsoleError = console.error.bind(console);\n originalConsoleWarn = console.warn.bind(console);\n\n // $FlowExpectedError[cannot-write]\n console.error = (...args) => {\n consoleErrorImpl(...args);\n };\n // $FlowExpectedError[cannot-write]\n console.warn = (...args) => {\n consoleWarnImpl(...args);\n };\n }\n\n consoleErrorImpl = registerError;\n consoleWarnImpl = registerWarning;\n\n if (Platform.isTesting) {\n LogBoxData.setDisabled(true);\n }\n\n RCTLog.setWarningHandler((...args) => {\n registerWarning(...args);\n });\n },\n\n uninstall(): void {\n if (!isLogBoxInstalled) {\n return;\n }\n\n isLogBoxInstalled = false;\n\n // IMPORTANT: we don't re-assign to `console` in case the method has been\n // decorated again after installing LogBox. E.g.:\n // Before uninstalling: original > LogBox > OtherErrorHandler\n // After uninstalling: original > LogBox (noop) > OtherErrorHandler\n consoleErrorImpl = originalConsoleError;\n consoleWarnImpl = originalConsoleWarn;\n },\n\n isInstalled(): boolean {\n return isLogBoxInstalled;\n },\n\n ignoreLogs(patterns: $ReadOnlyArray<IgnorePattern>): void {\n LogBoxData.addIgnorePatterns(patterns);\n },\n\n ignoreAllLogs(value?: ?boolean): void {\n LogBoxData.setDisabled(value == null ? true : value);\n },\n\n clearAllLogs(): void {\n LogBoxData.clear();\n },\n\n addLog(log: LogData): void {\n if (isLogBoxInstalled) {\n LogBoxData.addLog(log);\n }\n },\n\n addException(error: ExtendedExceptionData): void {\n if (isLogBoxInstalled) {\n LogBoxData.addException(error);\n }\n },\n };\n\n const isRCTLogAdviceWarning = (...args: Array<mixed>) => {\n // RCTLogAdvice is a native logging function designed to show users\n // a message in the console, but not show it to them in Logbox.\n return typeof args[0] === 'string' && args[0].startsWith('(ADVICE)');\n };\n\n const isWarningModuleWarning = (...args: Array<mixed>) => {\n return typeof args[0] === 'string' && args[0].startsWith('Warning: ');\n };\n\n const registerWarning = (...args: Array<mixed>): void => {\n // Let warnings within LogBox itself fall through.\n if (LogBoxData.isLogBoxErrorMessage(String(args[0]))) {\n originalConsoleError(...args);\n return;\n } else {\n // Be sure to pass LogBox warnings through.\n originalConsoleWarn(...args);\n }\n\n try {\n if (!isRCTLogAdviceWarning(...args)) {\n const {category, message, componentStack} = parseLogBoxLog(args);\n\n if (!LogBoxData.isMessageIgnored(message.content)) {\n LogBoxData.addLog({\n level: 'warn',\n category,\n message,\n componentStack,\n });\n }\n }\n } catch (err) {\n LogBoxData.reportLogBoxError(err);\n }\n };\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n const registerError = (...args): void => {\n // Let errors within LogBox itself fall through.\n if (LogBoxData.isLogBoxErrorMessage(args[0])) {\n originalConsoleError(...args);\n return;\n }\n\n try {\n if (!isWarningModuleWarning(...args)) {\n // Only show LogBox for the 'warning' module, otherwise pass through.\n // By passing through, this will get picked up by the React console override,\n // potentially adding the component stack. React then passes it back to the\n // React Native ExceptionsManager, which reports it to LogBox as an error.\n //\n // The 'warning' module needs to be handled here because React internally calls\n // `console.error('Warning: ')` with the component stack already included.\n originalConsoleError(...args);\n return;\n }\n\n const format = args[0].replace('Warning: ', '');\n const filterResult = LogBoxData.checkWarningFilter(format);\n if (filterResult.suppressCompletely) {\n return;\n }\n\n let level = 'error';\n if (filterResult.suppressDialog_LEGACY === true) {\n level = 'warn';\n } else if (filterResult.forceDialogImmediately === true) {\n level = 'fatal'; // Do not downgrade. These are real bugs with same severity as throws.\n }\n\n // Unfortunately, we need to add the Warning: prefix back for downstream dependencies.\n args[0] = `Warning: ${filterResult.finalFormat}`;\n const {category, message, componentStack} = parseLogBoxLog(args);\n\n // Interpolate the message so they are formatted for adb and other CLIs.\n // This is different than the message.content above because it includes component stacks.\n const interpolated = parseInterpolation(args);\n originalConsoleError(interpolated.message.content);\n\n if (!LogBoxData.isMessageIgnored(message.content)) {\n LogBoxData.addLog({\n level,\n category,\n message,\n componentStack,\n });\n }\n } catch (err) {\n LogBoxData.reportLogBoxError(err);\n }\n };\n} else {\n LogBox = {\n install(): void {\n // Do nothing.\n },\n\n uninstall(): void {\n // Do nothing.\n },\n\n isInstalled(): boolean {\n return false;\n },\n\n ignoreLogs(patterns: $ReadOnlyArray<IgnorePattern>): void {\n // Do nothing.\n },\n\n ignoreAllLogs(value?: ?boolean): void {\n // Do nothing.\n },\n\n clearAllLogs(): void {\n // Do nothing.\n },\n\n addLog(log: LogData): void {\n // Do nothing.\n },\n\n addException(error: ExtendedExceptionData): void {\n // Do nothing.\n },\n };\n}\n\nmodule.exports = (LogBox: ILogBox);\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 * @format\n */\n\n'use strict';\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\nimport type {PanResponderType} from './PanResponder.flow.js';\n\nconst InteractionManager = require('./InteractionManager');\nconst TouchHistoryMath = require('./TouchHistoryMath');\n\nconst currentCentroidXOfTouchesChangedAfter =\n TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nconst currentCentroidYOfTouchesChangedAfter =\n TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nconst previousCentroidXOfTouchesChangedAfter =\n TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nconst previousCentroidYOfTouchesChangedAfter =\n TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nconst currentCentroidX = TouchHistoryMath.currentCentroidX;\nconst currentCentroidY = TouchHistoryMath.currentCentroidY;\n\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * <View {...this._panResponder.panHandlers} />\n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)\n */\n\nexport type GestureState = {|\n /**\n * ID of the gestureState - persisted as long as there at least one touch on screen\n */\n stateID: number,\n\n /**\n * The latest screen coordinates of the recently-moved touch\n */\n moveX: number,\n\n /**\n * The latest screen coordinates of the recently-moved touch\n */\n moveY: number,\n\n /**\n * The screen coordinates of the responder grant\n */\n x0: number,\n\n /**\n * The screen coordinates of the responder grant\n */\n y0: number,\n\n /**\n * Accumulated distance of the gesture since the touch started\n */\n dx: number,\n\n /**\n * Accumulated distance of the gesture since the touch started\n */\n dy: number,\n\n /**\n * Current velocity of the gesture\n */\n vx: number,\n\n /**\n * Current velocity of the gesture\n */\n vy: number,\n\n /**\n * Number of touches currently on screen\n */\n numberActiveTouches: number,\n\n /**\n * All `gestureState` accounts for timeStamps up until this value\n *\n * @private\n */\n _accountsForMovesUpTo: number,\n|};\n\ntype ActiveCallback = (\n event: PressEvent,\n gestureState: GestureState,\n) => boolean;\n\ntype PassiveCallback = (event: PressEvent, gestureState: GestureState) => mixed;\n\ntype PanHandlers = {|\n onMoveShouldSetResponder: (event: PressEvent) => boolean,\n onMoveShouldSetResponderCapture: (event: PressEvent) => boolean,\n onResponderEnd: (event: PressEvent) => void,\n onResponderGrant: (event: PressEvent) => boolean,\n onResponderMove: (event: PressEvent) => void,\n onResponderReject: (event: PressEvent) => void,\n onResponderRelease: (event: PressEvent) => void,\n onResponderStart: (event: PressEvent) => void,\n onResponderTerminate: (event: PressEvent) => void,\n onResponderTerminationRequest: (event: PressEvent) => boolean,\n onStartShouldSetResponder: (event: PressEvent) => boolean,\n onStartShouldSetResponderCapture: (event: PressEvent) => boolean,\n|};\n\ntype PanResponderConfig = $ReadOnly<{|\n onMoveShouldSetPanResponder?: ?ActiveCallback,\n onMoveShouldSetPanResponderCapture?: ?ActiveCallback,\n onStartShouldSetPanResponder?: ?ActiveCallback,\n onStartShouldSetPanResponderCapture?: ?ActiveCallback,\n /**\n * The body of `onResponderGrant` returns a bool, but the vast majority of\n * callsites return void and this TODO notice is found in it:\n * TODO: t7467124 investigate if this can be removed\n */\n onPanResponderGrant?: ?(PassiveCallback | ActiveCallback),\n onPanResponderReject?: ?PassiveCallback,\n onPanResponderStart?: ?PassiveCallback,\n onPanResponderEnd?: ?PassiveCallback,\n onPanResponderRelease?: ?PassiveCallback,\n onPanResponderMove?: ?PassiveCallback,\n onPanResponderTerminate?: ?PassiveCallback,\n onPanResponderTerminationRequest?: ?ActiveCallback,\n onShouldBlockNativeResponder?: ?ActiveCallback,\n|}>;\n\nconst PanResponder: PanResponderType = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n\n _initializeGestureState(gestureState: GestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0;\n // All `gestureState` accounts for timeStamps up until:\n gestureState._accountsForMovesUpTo = 0;\n },\n\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove(\n gestureState: GestureState,\n touchHistory: $PropertyType<PressEvent, 'touchHistory'>,\n ) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(\n touchHistory,\n gestureState._accountsForMovesUpTo,\n );\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(\n touchHistory,\n gestureState._accountsForMovesUpTo,\n );\n const movedAfter = gestureState._accountsForMovesUpTo;\n const prevX = previousCentroidXOfTouchesChangedAfter(\n touchHistory,\n movedAfter,\n );\n const x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n const prevY = previousCentroidYOfTouchesChangedAfter(\n touchHistory,\n movedAfter,\n );\n const y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n const nextDX = gestureState.dx + (x - prevX);\n const nextDY = gestureState.dy + (y - prevY);\n\n // TODO: This must be filtered intelligently.\n const dt =\n touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create(config: PanResponderConfig): $TEMPORARY$object<{|\n getInteractionHandle: () => ?number,\n panHandlers: PanHandlers,\n |}> {\n const interactionState = {\n handle: (null: ?number),\n };\n const gestureState: GestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0,\n };\n const panHandlers = {\n onStartShouldSetResponder(event: PressEvent): boolean {\n return config.onStartShouldSetPanResponder == null\n ? false\n : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder(event: PressEvent): boolean {\n return config.onMoveShouldSetPanResponder == null\n ? false\n : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n onStartShouldSetResponderCapture(event: PressEvent): boolean {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n gestureState.numberActiveTouches =\n event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null\n ? config.onStartShouldSetPanResponderCapture(event, gestureState)\n : false;\n },\n\n onMoveShouldSetResponderCapture(event: PressEvent): boolean {\n const touchHistory = event.touchHistory;\n // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n if (\n gestureState._accountsForMovesUpTo ===\n touchHistory.mostRecentTimeStamp\n ) {\n return false;\n }\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n return config.onMoveShouldSetPanResponderCapture\n ? config.onMoveShouldSetPanResponderCapture(event, gestureState)\n : false;\n },\n\n onResponderGrant(event: PressEvent): boolean {\n if (!interactionState.handle) {\n interactionState.handle =\n InteractionManager.createInteractionHandle();\n }\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n }\n // TODO: t7467124 investigate if this can be removed\n return config.onShouldBlockNativeResponder == null\n ? true\n : config.onShouldBlockNativeResponder(event, gestureState);\n },\n\n onResponderReject(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderReject,\n event,\n gestureState,\n );\n },\n\n onResponderRelease(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderRelease,\n event,\n gestureState,\n );\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderStart(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n\n onResponderMove(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n if (\n gestureState._accountsForMovesUpTo ===\n touchHistory.mostRecentTimeStamp\n ) {\n return;\n }\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n\n onResponderEnd(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(\n interactionState,\n config.onPanResponderEnd,\n event,\n gestureState,\n );\n },\n\n onResponderTerminate(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderTerminate,\n event,\n gestureState,\n );\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderTerminationRequest(event: PressEvent): boolean {\n return config.onPanResponderTerminationRequest == null\n ? true\n : config.onPanResponderTerminationRequest(event, gestureState);\n },\n };\n return {\n panHandlers,\n getInteractionHandle(): ?number {\n return interactionState.handle;\n },\n };\n },\n};\n\nfunction clearInteractionHandle(\n interactionState: {handle: ?number, ...},\n callback: ?(ActiveCallback | PassiveCallback),\n event: PressEvent,\n gestureState: GestureState,\n) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nexport type PanResponderInstance = $Call<\n $PropertyType<typeof PanResponder, 'create'>,\n PanResponderConfig,\n>;\n\nmodule.exports = PanResponder;\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 * @format\n */\n\nconst TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function (\n touchHistory,\n touchesChangedAfter,\n isXAxis,\n ofCurrent,\n ) {\n const touchBank = touchHistory.touchBank;\n let total = 0;\n let count = 0;\n\n const oneTouchData =\n touchHistory.numberActiveTouches === 1\n ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch]\n : null;\n\n if (oneTouchData !== null) {\n if (\n oneTouchData.touchActive &&\n oneTouchData.currentTimeStamp > touchesChangedAfter\n ) {\n total +=\n ofCurrent && isXAxis\n ? oneTouchData.currentPageX\n : ofCurrent && !isXAxis\n ? oneTouchData.currentPageY\n : !ofCurrent && isXAxis\n ? oneTouchData.previousPageX\n : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (let i = 0; i < touchBank.length; i++) {\n const touchTrack = touchBank[i];\n if (\n touchTrack !== null &&\n touchTrack !== undefined &&\n touchTrack.touchActive &&\n touchTrack.currentTimeStamp >= touchesChangedAfter\n ) {\n let toAdd; // Yuck, program temporarily in invalid state.\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n total += toAdd;\n count++;\n }\n }\n }\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n\n currentCentroidXOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n true, // isXAxis\n true, // ofCurrent\n );\n },\n\n currentCentroidYOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n false, // isXAxis\n true, // ofCurrent\n );\n },\n\n previousCentroidXOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n true, // isXAxis\n false, // ofCurrent\n );\n },\n\n previousCentroidYOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n false, // isXAxis\n false, // ofCurrent\n );\n },\n\n currentCentroidX: function (touchHistory) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n 0, // touchesChangedAfter\n true, // isXAxis\n true, // ofCurrent\n );\n },\n\n currentCentroidY: function (touchHistory) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n 0, // touchesChangedAfter\n false, // isXAxis\n true, // ofCurrent\n );\n },\n\n noCentroid: -1,\n};\n\nmodule.exports = TouchHistoryMath;\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 * @format\n * @flow strict\n */\n\nimport type {\n PermissionStatus,\n PermissionType,\n} from './NativePermissionsAndroid';\n\nimport NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';\nimport NativePermissionsAndroid from './NativePermissionsAndroid';\nimport invariant from 'invariant';\n\nconst Platform = require('../Utilities/Platform');\n\nexport type Rationale = {\n title: string,\n message: string,\n buttonPositive?: string,\n buttonNegative?: string,\n buttonNeutral?: string,\n ...\n};\n\nconst PERMISSION_REQUEST_RESULT = Object.freeze({\n GRANTED: 'granted',\n DENIED: 'denied',\n NEVER_ASK_AGAIN: 'never_ask_again',\n});\n\nconst PERMISSIONS = Object.freeze({\n READ_CALENDAR: 'android.permission.READ_CALENDAR',\n WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',\n CAMERA: 'android.permission.CAMERA',\n READ_CONTACTS: 'android.permission.READ_CONTACTS',\n WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',\n GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS',\n ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',\n ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',\n ACCESS_BACKGROUND_LOCATION: 'android.permission.ACCESS_BACKGROUND_LOCATION',\n RECORD_AUDIO: 'android.permission.RECORD_AUDIO',\n READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',\n CALL_PHONE: 'android.permission.CALL_PHONE',\n READ_CALL_LOG: 'android.permission.READ_CALL_LOG',\n WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',\n ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',\n READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL',\n WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',\n USE_SIP: 'android.permission.USE_SIP',\n PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',\n BODY_SENSORS: 'android.permission.BODY_SENSORS',\n BODY_SENSORS_BACKGROUND: 'android.permission.BODY_SENSORS_BACKGROUND',\n SEND_SMS: 'android.permission.SEND_SMS',\n RECEIVE_SMS: 'android.permission.RECEIVE_SMS',\n READ_SMS: 'android.permission.READ_SMS',\n RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',\n RECEIVE_MMS: 'android.permission.RECEIVE_MMS',\n READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',\n READ_MEDIA_IMAGES: 'android.permission.READ_MEDIA_IMAGES',\n READ_MEDIA_VIDEO: 'android.permission.READ_MEDIA_VIDEO',\n READ_MEDIA_AUDIO: 'android.permission.READ_MEDIA_AUDIO',\n WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',\n BLUETOOTH_CONNECT: 'android.permission.BLUETOOTH_CONNECT',\n BLUETOOTH_SCAN: 'android.permission.BLUETOOTH_SCAN',\n BLUETOOTH_ADVERTISE: 'android.permission.BLUETOOTH_ADVERTISE',\n ACCESS_MEDIA_LOCATION: 'android.permission.ACCESS_MEDIA_LOCATION',\n ACCEPT_HANDOVER: 'android.permission.ACCEPT_HANDOVER',\n ACTIVITY_RECOGNITION: 'android.permission.ACTIVITY_RECOGNITION',\n ANSWER_PHONE_CALLS: 'android.permission.ANSWER_PHONE_CALLS',\n READ_PHONE_NUMBERS: 'android.permission.READ_PHONE_NUMBERS',\n UWB_RANGING: 'android.permission.UWB_RANGING',\n POST_NOTIFICATION: 'android.permission.POST_NOTIFICATIONS', // Remove in 0.72\n POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS',\n NEARBY_WIFI_DEVICES: 'android.permission.NEARBY_WIFI_DEVICES',\n});\n\n/**\n * `PermissionsAndroid` provides access to Android M's new permissions model.\n *\n * See https://reactnative.dev/docs/permissionsandroid\n */\n\nclass PermissionsAndroid {\n PERMISSIONS: {|\n ACCEPT_HANDOVER: string,\n ACCESS_BACKGROUND_LOCATION: string,\n ACCESS_COARSE_LOCATION: string,\n ACCESS_FINE_LOCATION: string,\n ACCESS_MEDIA_LOCATION: string,\n ACTIVITY_RECOGNITION: string,\n ADD_VOICEMAIL: string,\n READ_VOICEMAIL: string,\n WRITE_VOICEMAIL: string,\n ANSWER_PHONE_CALLS: string,\n BLUETOOTH_ADVERTISE: string,\n BLUETOOTH_CONNECT: string,\n BLUETOOTH_SCAN: string,\n BODY_SENSORS: string,\n BODY_SENSORS_BACKGROUND: string,\n CALL_PHONE: string,\n CAMERA: string,\n GET_ACCOUNTS: string,\n NEARBY_WIFI_DEVICES: string,\n POST_NOTIFICATION: string, // Remove in 0.72\n POST_NOTIFICATIONS: string,\n PROCESS_OUTGOING_CALLS: string,\n READ_CALENDAR: string,\n READ_CALL_LOG: string,\n READ_CONTACTS: string,\n READ_EXTERNAL_STORAGE: string,\n READ_MEDIA_IMAGES: string,\n READ_MEDIA_VIDEO: string,\n READ_MEDIA_AUDIO: string,\n READ_PHONE_NUMBERS: string,\n READ_PHONE_STATE: string,\n READ_SMS: string,\n RECEIVE_MMS: string,\n RECEIVE_SMS: string,\n RECEIVE_WAP_PUSH: string,\n RECORD_AUDIO: string,\n SEND_SMS: string,\n USE_SIP: string,\n UWB_RANGING: string,\n WRITE_CALENDAR: string,\n WRITE_CALL_LOG: string,\n WRITE_CONTACTS: string,\n WRITE_EXTERNAL_STORAGE: string,\n |} = PERMISSIONS;\n RESULTS: {|\n DENIED: $TEMPORARY$string<'denied'>,\n GRANTED: $TEMPORARY$string<'granted'>,\n NEVER_ASK_AGAIN: $TEMPORARY$string<'never_ask_again'>,\n |} = PERMISSION_REQUEST_RESULT;\n\n /**\n * DEPRECATED - use check\n *\n * Returns a promise resolving to a boolean value as to whether the specified\n * permissions has been granted\n *\n * @deprecated\n */\n checkPermission(permission: PermissionType): Promise<boolean> {\n console.warn(\n '\"PermissionsAndroid.checkPermission\" is deprecated. Use \"PermissionsAndroid.check\" instead',\n );\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.checkPermission(permission);\n }\n\n /**\n * Returns a promise resolving to a boolean value as to whether the specified\n * permissions has been granted\n *\n * See https://reactnative.dev/docs/permissionsandroid#check\n */\n check(permission: PermissionType): Promise<boolean> {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.checkPermission(permission);\n }\n\n /**\n * DEPRECATED - use request\n *\n * Prompts the user to enable a permission and returns a promise resolving to a\n * boolean value indicating whether the user allowed or denied the request\n *\n * If the optional rationale argument is included (which is an object with a\n * `title` and `message`), this function checks with the OS whether it is\n * necessary to show a dialog explaining why the permission is needed\n * (https://developer.android.com/training/permissions/requesting#explain)\n * and then shows the system permission dialog\n *\n * @deprecated\n */\n async requestPermission(\n permission: PermissionType,\n rationale?: Rationale,\n ): Promise<boolean> {\n console.warn(\n '\"PermissionsAndroid.requestPermission\" is deprecated. Use \"PermissionsAndroid.request\" instead',\n );\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n const response = await this.request(permission, rationale);\n return response === this.RESULTS.GRANTED;\n }\n\n /**\n * Prompts the user to enable a permission and returns a promise resolving to a\n * string value indicating whether the user allowed or denied the request\n *\n * See https://reactnative.dev/docs/permissionsandroid#request\n */\n async request(\n permission: PermissionType,\n rationale?: Rationale,\n ): Promise<PermissionStatus> {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(this.RESULTS.DENIED);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n if (rationale) {\n const shouldShowRationale =\n await NativePermissionsAndroid.shouldShowRequestPermissionRationale(\n permission,\n );\n\n if (shouldShowRationale && !!NativeDialogManagerAndroid) {\n return new Promise((resolve, reject) => {\n const options = {\n ...rationale,\n };\n NativeDialogManagerAndroid.showAlert(\n /* $FlowFixMe[incompatible-exact] (>=0.111.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.111 was\n * deployed. To see the error, delete this comment and run Flow.\n */\n options,\n () => reject(new Error('Error showing rationale')),\n () =>\n resolve(NativePermissionsAndroid.requestPermission(permission)),\n );\n });\n }\n }\n return NativePermissionsAndroid.requestPermission(permission);\n }\n\n /**\n * Prompts the user to enable multiple permissions in the same dialog and\n * returns an object with the permissions as keys and strings as values\n * indicating whether the user allowed or denied the request\n *\n * See https://reactnative.dev/docs/permissionsandroid#requestmultiple\n */\n requestMultiple(\n permissions: Array<PermissionType>,\n ): Promise<{[permission: PermissionType]: PermissionStatus, ...}> {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve({});\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.requestMultiplePermissions(permissions);\n }\n}\n\nconst PermissionsAndroidInstance: PermissionsAndroid = new PermissionsAndroid();\n\nmodule.exports = PermissionsAndroidInstance;\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 * @format\n * @flow strict\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\n// TODO: Use proper enum types.\nexport type PermissionStatus = string;\nexport type PermissionType = string;\n/*\nexport type PermissionStatus = 'granted' | 'denied' | 'never_ask_again';\nexport type PermissionType =\n | 'android.permission.READ_CALENDAR'\n | 'android.permission.WRITE_CALENDAR'\n | 'android.permission.CAMERA'\n | 'android.permission.READ_CONTACTS'\n | 'android.permission.WRITE_CONTACTS'\n | 'android.permission.GET_ACCOUNTS'\n | 'android.permission.ACCESS_BACKGROUND_LOCATION'\n | 'android.permission.ACCESS_FINE_LOCATION'\n | 'android.permission.ACCESS_COARSE_LOCATION'\n | 'android.permission.RECORD_AUDIO'\n | 'android.permission.READ_PHONE_STATE'\n | 'android.permission.CALL_PHONE'\n | 'android.permission.READ_CALL_LOG'\n | 'android.permission.WRITE_CALL_LOG'\n | 'com.android.voicemail.permission.ADD_VOICEMAIL'\n | 'com.android.voicemail.permission.READ_VOICEMAIL'\n | 'com.android.voicemail.permission.WRITE_VOICEMAIL'\n | 'android.permission.USE_SIP'\n | 'android.permission.PROCESS_OUTGOING_CALLS'\n | 'android.permission.BODY_SENSORS'\n | 'android.permission.BODY_SENSORS_BACKGROUND'\n | 'android.permission.SEND_SMS'\n | 'android.permission.RECEIVE_SMS'\n | 'android.permission.READ_SMS'\n | 'android.permission.RECEIVE_WAP_PUSH'\n | 'android.permission.RECEIVE_MMS'\n | 'android.permission.READ_EXTERNAL_STORAGE'\n | 'android.permission.READ_MEDIA_IMAGES',\n | 'android.permission.READ_MEDIA_VIDEO',\n | 'android.permission.READ_MEDIA_AUDIO',\n | 'android.permission.WRITE_EXTERNAL_STORAGE'\n | 'android.permission.BLUETOOTH_CONNECT'\n | 'android.permission.BLUETOOTH_SCAN'\n | 'android.permission.BLUETOOTH_ADVERTISE'\n | 'android.permission.ACCESS_MEDIA_LOCATION'\n | 'android.permission.ACCEPT_HANDOVER'\n | 'android.permission.ACTIVITY_RECOGNITION'\n | 'android.permission.ANSWER_PHONE_CALLS'\n | 'android.permission.READ_PHONE_NUMBERS'\n | 'android.permission.UWB_RANGING'\n | 'android.permission.POST_NOTIFICATIONS'\n | 'android.permission.NEARBY_WIFI_DEVICES';\n*/\n\nexport interface Spec extends TurboModule {\n +checkPermission: (permission: PermissionType) => Promise<boolean>;\n +requestPermission: (permission: PermissionType) => Promise<PermissionStatus>;\n +shouldShowRequestPermissionRationale: (\n permission: string,\n ) => Promise<boolean>;\n +requestMultiplePermissions: (\n permissions: Array<PermissionType>,\n ) => Promise<{[permission: PermissionType]: PermissionStatus, ...}>;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('PermissionsAndroid'): ?Spec);\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 * @format\n * @flow\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport NativePushNotificationManagerIOS from './NativePushNotificationManagerIOS';\nimport invariant from 'invariant';\n\ntype NativePushNotificationIOSEventDefinitions = {\n remoteNotificationReceived: [\n {\n notificationId: string,\n remote: boolean,\n ...\n },\n ],\n remoteNotificationsRegistered: [\n {\n deviceToken?: ?string,\n ...\n },\n ],\n remoteNotificationRegistrationError: [\n {\n message: string,\n code: number,\n details: {...},\n },\n ],\n localNotificationReceived: [{...}],\n};\n\nconst PushNotificationEmitter =\n new NativeEventEmitter<NativePushNotificationIOSEventDefinitions>(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativePushNotificationManagerIOS,\n );\n\nconst _notifHandlers = new Map<string, void | EventSubscription>();\n\nconst DEVICE_NOTIF_EVENT = 'remoteNotificationReceived';\nconst NOTIF_REGISTER_EVENT = 'remoteNotificationsRegistered';\nconst NOTIF_REGISTRATION_ERROR_EVENT = 'remoteNotificationRegistrationError';\nconst DEVICE_LOCAL_NOTIF_EVENT = 'localNotificationReceived';\n\nexport type ContentAvailable = 1 | null | void;\n\nexport type FetchResult = {\n NewData: string,\n NoData: string,\n ResultFailed: string,\n ...\n};\n\n/**\n * An event emitted by PushNotificationIOS.\n */\nexport type PushNotificationEventName = $Keys<{\n /**\n * Fired when a remote notification is received. The handler will be invoked\n * with an instance of `PushNotificationIOS`.\n */\n notification: string,\n /**\n * Fired when a local notification is received. The handler will be invoked\n * with an instance of `PushNotificationIOS`.\n */\n localNotification: string,\n /**\n * Fired when the user registers for remote notifications. The handler will be\n * invoked with a hex string representing the deviceToken.\n */\n register: string,\n /**\n * Fired when the user fails to register for remote notifications. Typically\n * occurs when APNS is having issues, or the device is a simulator. The\n * handler will be invoked with {message: string, code: number, details: any}.\n */\n registrationError: string,\n ...\n}>;\n\n/**\n *\n * Handle push notifications for your app, including permission handling and\n * icon badge number.\n *\n * See https://reactnative.dev/docs/pushnotificationios\n */\nclass PushNotificationIOS {\n _data: Object;\n _alert: string | Object;\n _sound: string;\n _category: string;\n _contentAvailable: ContentAvailable;\n _badgeCount: number;\n _notificationId: string;\n _isRemote: boolean;\n _remoteNotificationCompleteCallbackCalled: boolean;\n _threadID: string;\n\n static FetchResult: FetchResult = {\n NewData: 'UIBackgroundFetchResultNewData',\n NoData: 'UIBackgroundFetchResultNoData',\n ResultFailed: 'UIBackgroundFetchResultFailed',\n };\n\n /**\n * Schedules the localNotification for immediate presentation.\n *\n * See https://reactnative.dev/docs/pushnotificationios#presentlocalnotification\n */\n static presentLocalNotification(details: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.presentLocalNotification(details);\n }\n\n /**\n * Schedules the localNotification for future presentation.\n *\n * See https://reactnative.dev/docs/pushnotificationios#schedulelocalnotification\n */\n static scheduleLocalNotification(details: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.scheduleLocalNotification(details);\n }\n\n /**\n * Cancels all scheduled localNotifications.\n *\n * See https://reactnative.dev/docs/pushnotificationios#cancelalllocalnotifications\n */\n static cancelAllLocalNotifications(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.cancelAllLocalNotifications();\n }\n\n /**\n * Remove all delivered notifications from Notification Center.\n *\n * See https://reactnative.dev/docs/pushnotificationios#removealldeliverednotifications\n */\n static removeAllDeliveredNotifications(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.removeAllDeliveredNotifications();\n }\n\n /**\n * Provides you with a list of the app’s notifications that are still displayed in Notification Center.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getdeliverednotifications\n */\n static getDeliveredNotifications(\n callback: (notifications: Array<Object>) => void,\n ): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getDeliveredNotifications(callback);\n }\n\n /**\n * Removes the specified notifications from Notification Center\n *\n * See https://reactnative.dev/docs/pushnotificationios#removedeliverednotifications\n */\n static removeDeliveredNotifications(identifiers: Array<string>): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.removeDeliveredNotifications(identifiers);\n }\n\n /**\n * Sets the badge number for the app icon on the home screen.\n *\n * See https://reactnative.dev/docs/pushnotificationios#setapplicationiconbadgenumber\n */\n static setApplicationIconBadgeNumber(number: number): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.setApplicationIconBadgeNumber(number);\n }\n\n /**\n * Gets the current badge number for the app icon on the home screen.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getapplicationiconbadgenumber\n */\n static getApplicationIconBadgeNumber(callback: Function): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getApplicationIconBadgeNumber(callback);\n }\n\n /**\n * Cancel local notifications.\n *\n * See https://reactnative.dev/docs/pushnotificationios#cancellocalnotification\n */\n static cancelLocalNotifications(userInfo: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.cancelLocalNotifications(userInfo);\n }\n\n /**\n * Gets the local notifications that are currently scheduled.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getscheduledlocalnotifications\n */\n static getScheduledLocalNotifications(callback: Function): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getScheduledLocalNotifications(callback);\n }\n\n /**\n * Attaches a listener to remote or local notification events while the app\n * is running in the foreground or the background.\n *\n * See https://reactnative.dev/docs/pushnotificationios#addeventlistener\n */\n static addEventListener(\n type: PushNotificationEventName,\n handler: Function,\n ): void {\n invariant(\n type === 'notification' ||\n type === 'register' ||\n type === 'registrationError' ||\n type === 'localNotification',\n 'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events',\n );\n let listener;\n if (type === 'notification') {\n listener = PushNotificationEmitter.addListener(\n DEVICE_NOTIF_EVENT,\n notifData => {\n handler(new PushNotificationIOS(notifData));\n },\n );\n } else if (type === 'localNotification') {\n listener = PushNotificationEmitter.addListener(\n DEVICE_LOCAL_NOTIF_EVENT,\n notifData => {\n handler(new PushNotificationIOS(notifData));\n },\n );\n } else if (type === 'register') {\n listener = PushNotificationEmitter.addListener(\n NOTIF_REGISTER_EVENT,\n registrationInfo => {\n handler(registrationInfo.deviceToken);\n },\n );\n } else if (type === 'registrationError') {\n listener = PushNotificationEmitter.addListener(\n NOTIF_REGISTRATION_ERROR_EVENT,\n errorInfo => {\n handler(errorInfo);\n },\n );\n }\n _notifHandlers.set(type, listener);\n }\n\n /**\n * Removes the event listener. Do this in `componentWillUnmount` to prevent\n * memory leaks.\n *\n * See https://reactnative.dev/docs/pushnotificationios#removeeventlistener\n */\n static removeEventListener(\n type: PushNotificationEventName,\n handler: Function,\n ): void {\n invariant(\n type === 'notification' ||\n type === 'register' ||\n type === 'registrationError' ||\n type === 'localNotification',\n 'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events',\n );\n const listener = _notifHandlers.get(type);\n if (!listener) {\n return;\n }\n listener.remove();\n _notifHandlers.delete(type);\n }\n\n /**\n * Requests notification permissions from iOS, prompting the user's\n * dialog box. By default, it will request all notification permissions, but\n * a subset of these can be requested by passing a map of requested\n * permissions.\n *\n * See https://reactnative.dev/docs/pushnotificationios#requestpermissions\n */\n static requestPermissions(permissions?: {\n alert?: boolean,\n badge?: boolean,\n sound?: boolean,\n ...\n }): Promise<{\n alert: boolean,\n badge: boolean,\n sound: boolean,\n ...\n }> {\n let requestedPermissions = {\n alert: true,\n badge: true,\n sound: true,\n };\n if (permissions) {\n requestedPermissions = {\n alert: !!permissions.alert,\n badge: !!permissions.badge,\n sound: !!permissions.sound,\n };\n }\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n return NativePushNotificationManagerIOS.requestPermissions(\n requestedPermissions,\n );\n }\n\n /**\n * Unregister for all remote notifications received via Apple Push Notification service.\n *\n * See https://reactnative.dev/docs/pushnotificationios#abandonpermissions\n */\n static abandonPermissions(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.abandonPermissions();\n }\n\n /**\n * See what push permissions are currently enabled. `callback` will be\n * invoked with a `permissions` object.\n *\n * See https://reactnative.dev/docs/pushnotificationios#checkpermissions\n */\n static checkPermissions(callback: Function): void {\n invariant(typeof callback === 'function', 'Must provide a valid callback');\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.checkPermissions(callback);\n }\n\n /**\n * This method returns a promise that resolves to either the notification\n * object if the app was launched by a push notification, or `null` otherwise.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getinitialnotification\n */\n static getInitialNotification(): Promise<?PushNotificationIOS> {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n return NativePushNotificationManagerIOS.getInitialNotification().then(\n notification => {\n return notification && new PushNotificationIOS(notification);\n },\n );\n }\n\n /**\n * This method returns a promise that resolves to notification authorization status.\n */\n static getAuthorizationStatus(\n callback: (authorizationStatus: number) => void,\n ): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n\n NativePushNotificationManagerIOS.getAuthorizationStatus(callback);\n }\n\n /**\n * You will never need to instantiate `PushNotificationIOS` yourself.\n * Listening to the `notification` event and invoking\n * `getInitialNotification` is sufficient\n *\n */\n constructor(nativeNotif: Object) {\n this._data = {};\n this._remoteNotificationCompleteCallbackCalled = false;\n this._isRemote = nativeNotif.remote;\n if (this._isRemote) {\n this._notificationId = nativeNotif.notificationId;\n }\n\n if (nativeNotif.remote) {\n // Extract data from Apple's `aps` dict as defined:\n // https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService\n Object.keys(nativeNotif).forEach(notifKey => {\n const notifVal = nativeNotif[notifKey];\n if (notifKey === 'aps') {\n this._alert = notifVal.alert;\n this._sound = notifVal.sound;\n this._badgeCount = notifVal.badge;\n this._category = notifVal.category;\n this._contentAvailable = notifVal['content-available'];\n this._threadID = notifVal['thread-id'];\n } else {\n this._data[notifKey] = notifVal;\n }\n });\n } else {\n // Local notifications aren't being sent down with `aps` dict.\n this._badgeCount = nativeNotif.applicationIconBadgeNumber;\n this._sound = nativeNotif.soundName;\n this._alert = nativeNotif.alertBody;\n this._data = nativeNotif.userInfo;\n this._category = nativeNotif.category;\n }\n }\n\n /**\n * This method is available for remote notifications that have been received via:\n * `application:didReceiveRemoteNotification:fetchCompletionHandler:`\n *\n * See https://reactnative.dev/docs/pushnotificationios#finish\n */\n finish(fetchResult: string): void {\n if (\n !this._isRemote ||\n !this._notificationId ||\n this._remoteNotificationCompleteCallbackCalled\n ) {\n return;\n }\n this._remoteNotificationCompleteCallbackCalled = true;\n\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.onFinishRemoteNotification(\n this._notificationId,\n fetchResult,\n );\n }\n\n /**\n * An alias for `getAlert` to get the notification's main message string\n */\n getMessage(): ?string | ?Object {\n // alias because \"alert\" is an ambiguous name\n return this._alert;\n }\n\n /**\n * Gets the sound string from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getsound\n */\n getSound(): ?string {\n return this._sound;\n }\n\n /**\n * Gets the category string from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getcategory\n */\n getCategory(): ?string {\n return this._category;\n }\n\n /**\n * Gets the notification's main message from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getalert\n */\n getAlert(): ?string | ?Object {\n return this._alert;\n }\n\n /**\n * Gets the content-available number from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getcontentavailable\n */\n getContentAvailable(): ContentAvailable {\n return this._contentAvailable;\n }\n\n /**\n * Gets the badge count number from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getbadgecount\n */\n getBadgeCount(): ?number {\n return this._badgeCount;\n }\n\n /**\n * Gets the data object on the notif\n *\n * See https://reactnative.dev/docs/pushnotificationios#getdata\n */\n getData(): ?Object {\n return this._data;\n }\n\n /**\n * Gets the thread ID on the notif\n *\n * See https://reactnative.dev/docs/pushnotificationios#getthreadid\n */\n getThreadID(): ?string {\n return this._threadID;\n }\n}\n\nmodule.exports = PushNotificationIOS;\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 * @format\n * @flow\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype Permissions = {|\n alert: boolean,\n badge: boolean,\n sound: boolean,\n|};\n\ntype Notification = {|\n +alertTitle?: ?string,\n // Actual type: string | number\n +fireDate?: ?number,\n +alertBody?: ?string,\n +alertAction?: ?string,\n +userInfo?: ?Object,\n +category?: ?string,\n // Actual type: 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute'\n +repeatInterval?: ?string,\n +applicationIconBadgeNumber?: ?number,\n +isSilent?: ?boolean,\n +soundName?: ?string,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +onFinishRemoteNotification: (\n notificationId: string,\n /**\n * Type:\n * 'UIBackgroundFetchResultNewData' |\n * 'UIBackgroundFetchResultNoData' |\n * 'UIBackgroundFetchResultFailed'\n */\n fetchResult: string,\n ) => void;\n +setApplicationIconBadgeNumber: (num: number) => void;\n +getApplicationIconBadgeNumber: (callback: (num: number) => void) => void;\n +requestPermissions: (permission: {|\n +alert: boolean,\n +badge: boolean,\n +sound: boolean,\n |}) => Promise<Permissions>;\n +abandonPermissions: () => void;\n +checkPermissions: (callback: (permissions: Permissions) => void) => void;\n +presentLocalNotification: (notification: Notification) => void;\n +scheduleLocalNotification: (notification: Notification) => void;\n +cancelAllLocalNotifications: () => void;\n +cancelLocalNotifications: (userInfo: Object) => void;\n +getInitialNotification: () => Promise<?Notification>;\n +getScheduledLocalNotifications: (\n callback: (notification: Notification) => void,\n ) => void;\n +removeAllDeliveredNotifications: () => void;\n +removeDeliveredNotifications: (identifiers: Array<string>) => void;\n +getDeliveredNotifications: (\n callback: (notification: Array<Notification>) => void,\n ) => void;\n +getAuthorizationStatus: (\n callback: (authorizationStatus: number) => void,\n ) => void;\n +addListener: (eventType: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>(\n 'PushNotificationManager',\n): ?Spec);\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 * @format\n * @flow strict-local\n */\n\nimport NativeActionSheetManager from '../ActionSheetIOS/NativeActionSheetManager';\nimport NativeShareModule from './NativeShareModule';\n\nconst processColor = require('../StyleSheet/processColor');\nconst Platform = require('../Utilities/Platform');\nconst invariant = require('invariant');\n\ntype Content =\n | {\n title?: string,\n message: string,\n ...\n }\n | {\n title?: string,\n url: string,\n ...\n };\ntype Options = {\n dialogTitle?: string,\n excludedActivityTypes?: Array<string>,\n tintColor?: string,\n subject?: string,\n anchor?: number,\n ...\n};\n\nclass Share {\n /**\n * Open a dialog to share text content.\n *\n * In iOS, Returns a Promise which will be invoked an object containing `action`, `activityType`.\n * If the user dismissed the dialog, the Promise will still be resolved with action being `Share.dismissedAction`\n * and all the other keys being undefined.\n *\n * In Android, Returns a Promise which always be resolved with action being `Share.sharedAction`.\n *\n * ### Content\n *\n * - `message` - a message to share\n *\n * #### iOS\n *\n * - `url` - a URL to share\n *\n * At least one of URL and message is required.\n *\n * #### Android\n *\n * - `title` - title of the message\n *\n * ### Options\n *\n * #### iOS\n *\n * - `subject` - a subject to share via email\n * - `excludedActivityTypes`\n * - `tintColor`\n *\n * #### Android\n *\n * - `dialogTitle`\n *\n */\n static share(\n content: Content,\n options: Options = {},\n ): Promise<{action: string, activityType: ?string}> {\n invariant(\n typeof content === 'object' && content !== null,\n 'Content to share must be a valid object',\n );\n invariant(\n typeof content.url === 'string' || typeof content.message === 'string',\n 'At least one of URL and message is required',\n );\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n\n if (Platform.OS === 'android') {\n invariant(\n NativeShareModule,\n 'ShareModule should be registered on Android.',\n );\n invariant(\n content.title == null || typeof content.title === 'string',\n 'Invalid title: title should be a string.',\n );\n\n const newContent = {\n title: content.title,\n message:\n typeof content.message === 'string' ? content.message : undefined,\n };\n\n return NativeShareModule.share(newContent, options.dialogTitle).then(\n result => ({\n activityType: null,\n ...result,\n }),\n );\n } else if (Platform.OS === 'ios') {\n return new Promise((resolve, reject) => {\n const tintColor = processColor(options.tintColor);\n\n invariant(\n tintColor == null || typeof tintColor === 'number',\n 'Unexpected color given for options.tintColor',\n );\n\n invariant(\n NativeActionSheetManager,\n 'NativeActionSheetManager is not registered on iOS, but it should be.',\n );\n\n NativeActionSheetManager.showShareActionSheetWithOptions(\n {\n message:\n typeof content.message === 'string' ? content.message : undefined,\n url: typeof content.url === 'string' ? content.url : undefined,\n subject: options.subject,\n tintColor: typeof tintColor === 'number' ? tintColor : undefined,\n anchor:\n typeof options.anchor === 'number' ? options.anchor : undefined,\n excludedActivityTypes: options.excludedActivityTypes,\n },\n error => reject(error),\n (success, activityType) => {\n if (success) {\n resolve({\n action: 'sharedAction',\n activityType: activityType,\n });\n } else {\n resolve({\n action: 'dismissedAction',\n activityType: null,\n });\n }\n },\n );\n });\n } else {\n return Promise.reject(new Error('Unsupported platform'));\n }\n }\n\n /**\n * The content was successfully shared.\n */\n static sharedAction: 'sharedAction' = 'sharedAction';\n\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n static dismissedAction: 'dismissedAction' = 'dismissedAction';\n}\n\nmodule.exports = Share;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +share: (\n content: {|title?: string, message?: string|},\n dialogTitle?: string,\n ) => Promise<{|action: string|}>;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('ShareModule'): ?Spec);\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 strict-local\n * @format\n */\n\nimport type {AnimatedValueConfig} from './nodes/AnimatedValue';\n\nimport Animated from './Animated';\nimport {useRef} from 'react';\n\nexport default function useAnimatedValue(\n initialValue: number,\n config?: ?AnimatedValueConfig,\n): Animated.Value {\n const ref = useRef<null | Animated.Value>(null);\n if (ref.current == null) {\n ref.current = new Animated.Value(initialValue, config);\n }\n return ref.current;\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 * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ColorSchemeName} from './NativeAppearance';\n\nimport Appearance from './Appearance';\nimport {useSyncExternalStore} from 'use-sync-external-store/shim';\n\nexport default function useColorScheme(): ?ColorSchemeName {\n return useSyncExternalStore(\n callback => {\n const appearanceSubscription = Appearance.addChangeListener(callback);\n return () => appearanceSubscription.remove();\n },\n () => Appearance.getColorScheme(),\n );\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.native.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.native.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.native.production.min.js\n *\n * Copyright (c) Facebook, 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'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:q;\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 * @format\n * @flow strict-local\n */\n\nimport Dimensions from './Dimensions';\nimport {\n type DisplayMetrics,\n type DisplayMetricsAndroid,\n} from './NativeDeviceInfo';\nimport {useEffect, useState} from 'react';\n\nexport default function useWindowDimensions():\n | DisplayMetrics\n | DisplayMetricsAndroid {\n const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));\n useEffect(() => {\n function handleChange({\n window,\n }:\n | $FlowFixMe\n | $TEMPORARY$object<{window: DisplayMetrics | DisplayMetricsAndroid}>) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n const subscription = Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n handleChange({window: Dimensions.get('window')});\n return () => {\n subscription.remove();\n };\n }, [dimensions]);\n return dimensions;\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 strict\n * @format\n */\n\n'use strict';\n\nconst deepFreezeAndThrowOnMutationInDev = require('./Utilities/deepFreezeAndThrowOnMutationInDev');\n\n/**\n * A collection of Unicode sequences for various characters and emoji.\n *\n * - More explicit than using the sequences directly in code.\n * - Source code should be limited to ASCII.\n * - Less chance of typos.\n */\nconst UTFSequence: {|\n BOM: string,\n BULLET: string,\n BULLET_SP: string,\n MDASH: string,\n MDASH_SP: string,\n MIDDOT: string,\n MIDDOT_KATAKANA: string,\n MIDDOT_SP: string,\n NBSP: string,\n NDASH: string,\n NDASH_SP: string,\n PIZZA: string,\n TRIANGLE_LEFT: string,\n TRIANGLE_RIGHT: string,\n|} = deepFreezeAndThrowOnMutationInDev({\n BOM: '\\ufeff', // byte order mark\n BULLET: '\\u2022', // bullet: •\n BULLET_SP: '\\u00A0\\u2022\\u00A0', // • \n MIDDOT: '\\u00B7', // normal middle dot: ·\n MIDDOT_SP: '\\u00A0\\u00B7\\u00A0', // · \n MIDDOT_KATAKANA: '\\u30FB', // katakana middle dot\n MDASH: '\\u2014', // em dash: —\n MDASH_SP: '\\u00A0\\u2014\\u00A0', // — \n NDASH: '\\u2013', // en dash: –\n NDASH_SP: '\\u00A0\\u2013\\u00A0', // – \n NBSP: '\\u00A0', // non-breaking space: \n PIZZA: '\\uD83C\\uDF55',\n TRIANGLE_LEFT: '\\u25c0', // black left-pointing triangle\n TRIANGLE_RIGHT: '\\u25b6', // black right-pointing triangle\n});\n\nmodule.exports = UTFSequence;\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 * @format\n * @flow strict\n * @jsdoc\n */\n\nimport NativeVibration from './NativeVibration';\n\nconst Platform = require('../Utilities/Platform');\n\n/**\n * Vibration API\n *\n * See https://reactnative.dev/docs/vibration\n */\n\nlet _vibrating: boolean = false;\nlet _id: number = 0; // _id is necessary to prevent race condition.\nconst _default_vibration_length = 400;\n\nfunction vibrateByPattern(pattern: Array<number>, repeat: boolean = false) {\n if (_vibrating) {\n return;\n }\n _vibrating = true;\n if (pattern[0] === 0) {\n NativeVibration.vibrate(_default_vibration_length);\n // $FlowFixMe[reassign-const]\n pattern = pattern.slice(1);\n }\n if (pattern.length === 0) {\n _vibrating = false;\n return;\n }\n setTimeout(() => vibrateScheduler(++_id, pattern, repeat, 1), pattern[0]);\n}\n\nfunction vibrateScheduler(\n id: number,\n pattern: Array<number>,\n repeat: boolean,\n nextIndex: number,\n) {\n if (!_vibrating || id !== _id) {\n return;\n }\n NativeVibration.vibrate(_default_vibration_length);\n if (nextIndex >= pattern.length) {\n if (repeat) {\n // $FlowFixMe[reassign-const]\n nextIndex = 0;\n } else {\n _vibrating = false;\n return;\n }\n }\n setTimeout(\n () => vibrateScheduler(id, pattern, repeat, nextIndex + 1),\n pattern[nextIndex],\n );\n}\n\nconst Vibration = {\n /**\n * Trigger a vibration with specified `pattern`.\n *\n * See https://reactnative.dev/docs/vibration#vibrate\n */\n vibrate: function (\n pattern: number | Array<number> = _default_vibration_length,\n repeat: boolean = false,\n ) {\n if (Platform.OS === 'android') {\n if (typeof pattern === 'number') {\n NativeVibration.vibrate(pattern);\n } else if (Array.isArray(pattern)) {\n NativeVibration.vibrateByPattern(pattern, repeat ? 0 : -1);\n } else {\n throw new Error('Vibration pattern should be a number or array');\n }\n } else {\n if (_vibrating) {\n return;\n }\n if (typeof pattern === 'number') {\n NativeVibration.vibrate(pattern);\n } else if (Array.isArray(pattern)) {\n vibrateByPattern(pattern, repeat);\n } else {\n throw new Error('Vibration pattern should be a number or array');\n }\n }\n },\n /**\n * Stop vibration\n *\n * See https://reactnative.dev/docs/vibration#cancel\n */\n cancel: function () {\n if (Platform.OS === 'ios') {\n _vibrating = false;\n } else {\n NativeVibration.cancel();\n }\n },\n};\n\nmodule.exports = Vibration;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +vibrate: (pattern: number) => void;\n\n // Android only\n +vibrateByPattern: (pattern: Array<number>, repeat: number) => void;\n +cancel: () => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('Vibration'): Spec);\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 * @format\n */\n\n'use strict';\n\nimport type {IgnorePattern} from '../LogBox/Data/LogBoxData';\n\nconst LogBox = require('../LogBox/LogBox');\nconst React = require('react');\n\ntype Props = $ReadOnly<{||}>;\n\nlet YellowBox;\nif (__DEV__) {\n YellowBox = class extends React.Component<Props> {\n static ignoreWarnings(patterns: $ReadOnlyArray<IgnorePattern>): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.ignoreLogs() instead.',\n );\n\n LogBox.ignoreLogs(patterns);\n }\n\n static install(): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.install() instead.',\n );\n LogBox.install();\n }\n\n static uninstall(): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.uninstall() instead.',\n );\n LogBox.uninstall();\n }\n\n render(): React.Node {\n return null;\n }\n };\n} else {\n YellowBox = class extends React.Component<Props> {\n static ignoreWarnings(patterns: $ReadOnlyArray<IgnorePattern>): void {\n // Do nothing.\n }\n\n static install(): void {\n // Do nothing.\n }\n\n static uninstall(): void {\n // Do nothing.\n }\n\n render(): React.Node {\n return null;\n }\n };\n}\n\n// $FlowFixMe[method-unbinding]\nmodule.exports = (YellowBox: Class<React.Component<Props>> & {\n ignoreWarnings($ReadOnlyArray<IgnorePattern>): void,\n install(): void,\n uninstall(): void,\n ...\n});\n","import invariant from 'invariant';\nimport { NativeEventEmitter, NativeModules, Platform } from 'react-native';\nconst nativeEmitterSubscriptionKey = '@@nativeEmitterSubscription@@';\nexport class EventEmitter {\n _listenerCount = 0;\n _nativeModule;\n _eventEmitter;\n constructor(nativeModule) {\n // Expo modules installed through the JSI don't have `addListener` and `removeListeners` set,\n // so if someone wants to use them with `EventEmitter`, make sure to provide these functions\n // as they are required by `NativeEventEmitter`. This is only temporary — in the future\n // JSI modules will have event emitter built in.\n if (nativeModule.__expo_module_name__ && NativeModules.EXReactNativeEventEmitter) {\n nativeModule.addListener = (...args) => NativeModules.EXReactNativeEventEmitter.addProxiedListener(nativeModule.__expo_module_name__, ...args);\n nativeModule.removeListeners = (...args) => NativeModules.EXReactNativeEventEmitter.removeProxiedListeners(nativeModule.__expo_module_name__, ...args);\n }\n this._nativeModule = nativeModule;\n this._eventEmitter = new NativeEventEmitter(nativeModule);\n }\n addListener(eventName, listener) {\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.startObserving) {\n this._nativeModule.startObserving();\n }\n this._listenerCount++;\n const nativeEmitterSubscription = this._eventEmitter.addListener(eventName, listener);\n const subscription = {\n [nativeEmitterSubscriptionKey]: nativeEmitterSubscription,\n remove: () => {\n this.removeSubscription(subscription);\n },\n };\n return subscription;\n }\n removeAllListeners(eventName) {\n // @ts-ignore: the EventEmitter interface has been changed in react-native@0.64.0\n const removedListenerCount = this._eventEmitter.listenerCount\n ? // @ts-ignore: this is available since 0.64\n this._eventEmitter.listenerCount(eventName)\n : // @ts-ignore: this is available in older versions\n this._eventEmitter.listeners(eventName).length;\n this._eventEmitter.removeAllListeners(eventName);\n this._listenerCount -= removedListenerCount;\n invariant(this._listenerCount >= 0, `EventEmitter must have a non-negative number of listeners`);\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n removeSubscription(subscription) {\n const nativeEmitterSubscription = subscription[nativeEmitterSubscriptionKey];\n if (!nativeEmitterSubscription) {\n return;\n }\n if ('remove' in nativeEmitterSubscription) {\n // `react-native-web@0.17.1` doesn't support `removeSubscription`\n nativeEmitterSubscription.remove();\n }\n else if ('removeSubscription' in this._eventEmitter) {\n this._eventEmitter.removeSubscription(nativeEmitterSubscription);\n }\n this._listenerCount--;\n // Ensure that the emitter's internal state remains correct even if `removeSubscription` is\n // called again with the same subscription\n delete subscription[nativeEmitterSubscriptionKey];\n // Release closed-over references to the emitter\n subscription.remove = () => { };\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n emit(eventName, ...params) {\n this._eventEmitter.emit(eventName, ...params);\n }\n}\n//# sourceMappingURL=EventEmitter.js.map","import { NativeModules } from 'react-native';\nconst LegacyNativeProxy = NativeModules.NativeUnimoduleProxy;\n// Fixes `cannot find name 'global'.` in tests\n// @ts-ignore\nconst ExpoNativeProxy = global.expo?.modules?.NativeModulesProxy;\nconst modulesConstantsKey = 'modulesConstants';\nconst exportedMethodsKey = 'exportedMethods';\nconst NativeModulesProxy = {};\nif (LegacyNativeProxy) {\n // use JSI proxy if available, fallback to legacy RN proxy\n const NativeProxy = ExpoNativeProxy ?? LegacyNativeProxy;\n Object.keys(NativeProxy[exportedMethodsKey]).forEach((moduleName) => {\n // copy constants\n NativeModulesProxy[moduleName] = NativeProxy[modulesConstantsKey][moduleName] || {};\n // copy methods\n NativeProxy[exportedMethodsKey][moduleName].forEach((methodInfo) => {\n NativeModulesProxy[moduleName][methodInfo.name] = (...args) => {\n // Use the new proxy to call methods on legacy modules, if possible.\n if (ExpoNativeProxy?.callMethod) {\n return ExpoNativeProxy.callMethod(moduleName, methodInfo.name, args);\n }\n // Otherwise fall back to the legacy proxy.\n // This is deprecated and might be removed in SDK47 or later.\n const { key, argumentsCount } = methodInfo;\n if (argumentsCount !== args.length) {\n return Promise.reject(new Error(`Native method ${moduleName}.${methodInfo.name} expects ${argumentsCount} ${argumentsCount === 1 ? 'argument' : 'arguments'} but received ${args.length}`));\n }\n return LegacyNativeProxy.callMethod(moduleName, key, args);\n };\n });\n // These are called by EventEmitter (which is a wrapper for NativeEventEmitter)\n // only on iOS and they use iOS-specific native module, EXReactNativeEventEmitter.\n //\n // On Android only {start,stop}Observing are called on the native module\n // and these should be exported as Expo methods.\n //\n // Before the RN 65, addListener/removeListeners weren't called on Android. However, it no longer stays true.\n // See https://github.com/facebook/react-native/commit/f5502fbda9fe271ff6e1d0da773a3a8ee206a453.\n // That's why, we check if the `EXReactNativeEventEmitter` exists and only if yes, we use it in the listener implementation.\n // Otherwise, those methods are NOOP.\n if (NativeModules.EXReactNativeEventEmitter) {\n NativeModulesProxy[moduleName].addListener = (...args) => NativeModules.EXReactNativeEventEmitter.addProxiedListener(moduleName, ...args);\n NativeModulesProxy[moduleName].removeListeners = (...args) => NativeModules.EXReactNativeEventEmitter.removeProxiedListeners(moduleName, ...args);\n }\n else {\n // Fixes on Android:\n // WARN `new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.\n // WARN `new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.\n NativeModulesProxy[moduleName].addListener = () => { };\n NativeModulesProxy[moduleName].removeListeners = () => { };\n }\n });\n}\nelse {\n console.warn(`The \"EXNativeModulesProxy\" native module is not exported through NativeModules; verify that expo-modules-core's native code is linked properly`);\n}\nexport default NativeModulesProxy;\n//# sourceMappingURL=NativeModulesProxy.native.js.map","import React from 'react';\nimport { NativeModules, requireNativeComponent } from 'react-native';\n/**\n * A map that caches registered native components.\n */\nconst nativeComponentsCache = new Map();\n/**\n * Requires a React Native component from cache if possible. This prevents\n * \"Tried to register two views with the same name\" errors on fast refresh, but\n * also when there are multiple versions of the same package with native component.\n */\nfunction requireCachedNativeComponent(viewName) {\n const cachedNativeComponent = nativeComponentsCache.get(viewName);\n if (!cachedNativeComponent) {\n const nativeComponent = requireNativeComponent(viewName);\n nativeComponentsCache.set(viewName, nativeComponent);\n return nativeComponent;\n }\n return cachedNativeComponent;\n}\n/**\n * A drop-in replacement for `requireNativeComponent`.\n */\nexport function requireNativeViewManager(viewName) {\n const { viewManagersMetadata } = NativeModules.NativeUnimoduleProxy;\n const viewManagerConfig = viewManagersMetadata?.[viewName];\n if (__DEV__ && !viewManagerConfig) {\n const exportedViewManagerNames = Object.keys(viewManagersMetadata).join(', ');\n console.warn(`The native view manager required by name (${viewName}) from NativeViewManagerAdapter isn't exported by expo-modules-core. Views of this type may not render correctly. Exported view managers: [${exportedViewManagerNames}].`);\n }\n // Set up the React Native native component, which is an adapter to the universal module's view\n // manager\n const reactNativeViewName = `ViewManagerAdapter_${viewName}`;\n const ReactNativeComponent = requireCachedNativeComponent(reactNativeViewName);\n const proxiedPropsNames = viewManagerConfig?.propsNames ?? [];\n // Define a component for universal-module authors to access their native view manager\n const NativeComponentAdapter = React.forwardRef((props, ref) => {\n const nativeProps = omit(props, proxiedPropsNames);\n const proxiedProps = pick(props, proxiedPropsNames);\n return React.createElement(ReactNativeComponent, { ...nativeProps, proxiedProperties: proxiedProps, ref: ref });\n });\n NativeComponentAdapter.displayName = `Adapter<${viewName}>`;\n return NativeComponentAdapter;\n}\nfunction omit(props, propNames) {\n const copied = { ...props };\n for (const propName of propNames) {\n delete copied[propName];\n }\n return copied;\n}\nfunction pick(props, propNames) {\n return propNames.reduce((prev, curr) => {\n if (curr in props) {\n prev[curr] = props[curr];\n }\n return prev;\n }, {});\n}\n//# sourceMappingURL=NativeViewManagerAdapter.native.js.map","import { Platform as ReactNativePlatform } from 'react-native';\nimport { isDOMAvailable, canUseEventListeners, canUseViewport, isAsyncDebugging, } from './environment/browser';\nconst Platform = {\n /**\n * Denotes the currently running platform.\n * Can be one of ios, android, web.\n */\n OS: ReactNativePlatform.OS,\n /**\n * Returns the value with the matching platform.\n * Object keys can be any of ios, android, native, web, default.\n *\n * @ios ios, native, default\n * @android android, native, default\n * @web web, default\n */\n select: ReactNativePlatform.select,\n /**\n * Denotes if the DOM API is available in the current environment.\n * The DOM is not available in native React runtimes and Node.js.\n */\n isDOMAvailable,\n /**\n * Denotes if the current environment can attach event listeners\n * to the window. This will return false in native React\n * runtimes and Node.js.\n */\n canUseEventListeners,\n /**\n * Denotes if the current environment can inspect properties of the\n * screen on which the current window is being rendered. This will\n * return false in native React runtimes and Node.js.\n */\n canUseViewport,\n /**\n * If the JavaScript is being executed in a remote JavaScript environment.\n * When `true`, synchronous native invocations cannot be executed.\n */\n isAsyncDebugging,\n};\nexport default Platform;\n//# sourceMappingURL=Platform.js.map","// In standard node environments there is no DOM API\nexport const isDOMAvailable = false;\nexport const canUseEventListeners = false;\nexport const canUseViewport = false;\nexport let isAsyncDebugging = false;\nif (__DEV__) {\n // These native globals are injected by native React runtimes and not standard browsers\n // we can use them to determine if the JS is being executed in Chrome.\n isAsyncDebugging =\n !global.nativeExtensions && !global.nativeCallSyncHook && !global.RN$Bridgeless;\n}\n//# sourceMappingURL=browser.js.map","/**\n * This emitter is used for sending synthetic native events to listeners\n * registered in the API layer with `NativeEventEmitter`.\n */\nexport { DeviceEventEmitter as default } from 'react-native';\n//# sourceMappingURL=SyntheticPlatformEmitter.js.map","/**\n * A general error class that should be used for all errors in Expo modules.\n * Guarantees a `code` field that can be used to differentiate between different\n * types of errors without further subclassing Error.\n */\nexport class CodedError extends Error {\n code;\n info;\n constructor(code, message) {\n super(message);\n this.code = code;\n }\n}\n//# sourceMappingURL=CodedError.js.map","import Platform from '../Platform';\nimport { CodedError } from './CodedError';\n/**\n * A class for errors to be thrown when a property is accessed which is\n * unavailable, unsupported, or not currently implemented on the running\n * platform.\n */\nexport class UnavailabilityError extends CodedError {\n constructor(moduleName, propertyName) {\n super('ERR_UNAVAILABLE', `The method or property ${moduleName}.${propertyName} is not available on ${Platform.OS}, are you sure you've linked all the native dependencies properly?`);\n }\n}\n//# sourceMappingURL=UnavailabilityError.js.map","import { EventEmitter } from '../EventEmitter';\nimport Platform from '../Platform';\nimport { CodedError } from '../errors/CodedError';\nimport NativeErrorManager from './NativeErrorManager';\nif (__DEV__ && Platform.OS === 'android' && NativeErrorManager) {\n const onNewException = 'ExpoModulesCoreErrorManager.onNewException';\n const eventEmitter = new EventEmitter(NativeErrorManager);\n eventEmitter.addListener(onNewException, ({ message }) => {\n console.error(message);\n });\n}\n// We have to export `CodedError` via global object to use in later in the C++ code.\nglobal.ExpoModulesCore_CodedError = CodedError;\n//# sourceMappingURL=setUpErrorManager.fx.js.map","import NativeModulesProxy from '../NativeModulesProxy';\nexport default NativeModulesProxy.ExpoModulesCoreErrorManager;\n//# sourceMappingURL=NativeErrorManager.js.map","import compareVersions from 'compare-versions';\nimport { CodedError } from './errors/CodedError';\nconst postedWarnings = {};\n/**\n * Used for deprecating values and throwing an error if a given version of Expo has passed.\n */\nexport default function deprecate(library, deprecatedAPI, options = {}) {\n const { currentVersion, versionToRemove, replacement } = options;\n const code = codeFromLibrary(library);\n const key = `${code}:${deprecatedAPI}:${replacement}`;\n if (!postedWarnings[key]) {\n postedWarnings[key] = true;\n }\n if (!currentVersion ||\n !versionToRemove ||\n compareVersions(currentVersion, versionToRemove) >= 0) {\n let message = `\\`${deprecatedAPI}\\` has been removed`;\n if (versionToRemove) {\n message = `${message} as of version \"${versionToRemove}\"`;\n }\n if (replacement && replacement.length) {\n message = `${message} please migrate to: \\`${replacement}\\``;\n }\n throw new CodedError(`ERR_DEPRECATED_API`, prependLibrary(library, message));\n }\n let message = `\\`${deprecatedAPI}\\` has been deprecated`;\n if (replacement && replacement.length) {\n message = `${message} in favor of \\`${replacement}\\``;\n }\n if (versionToRemove && versionToRemove.length) {\n message = `${message} and will be removed in version \"${versionToRemove}\"`;\n }\n console.warn(prependLibrary(library, message));\n}\nfunction prependLibrary(library, message) {\n return `${library}: ${message}`;\n}\n/**\n * Transform format:\n * Expo.AR -> EXPO_AR\n * expo-ar -> EXPO_AR\n */\nfunction codeFromLibrary(library) {\n const code = library.replace(/[-.]/g, '_').toUpperCase();\n return code;\n}\n//# sourceMappingURL=deprecate.js.map","/* global define */\n(function (root, factory) {\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.compareVersions = factory();\n }\n}(this, function () {\n\n var semver = /^v?(?:\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+))?(?:-[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\n function indexOrEnd(str, q) {\n return str.indexOf(q) === -1 ? str.length : str.indexOf(q);\n }\n\n function split(v) {\n var c = v.replace(/^v/, '').replace(/\\+.*$/, '');\n var patchIndex = indexOrEnd(c, '-');\n var arr = c.substring(0, patchIndex).split('.');\n arr.push(c.substring(patchIndex + 1));\n return arr;\n }\n\n function tryParse(v) {\n return isNaN(Number(v)) ? v : Number(v);\n }\n\n function validate(version) {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n if (!semver.test(version)) {\n throw new Error('Invalid argument not valid semver (\\''+version+'\\' received)');\n }\n }\n\n function compareVersions(v1, v2) {\n [v1, v2].forEach(validate);\n\n var s1 = split(v1);\n var s2 = split(v2);\n\n for (var i = 0; i < Math.max(s1.length - 1, s2.length - 1); i++) {\n var n1 = parseInt(s1[i] || 0, 10);\n var n2 = parseInt(s2[i] || 0, 10);\n\n if (n1 > n2) return 1;\n if (n2 > n1) return -1;\n }\n\n var sp1 = s1[s1.length - 1];\n var sp2 = s2[s2.length - 1];\n\n if (sp1 && sp2) {\n var p1 = sp1.split('.').map(tryParse);\n var p2 = sp2.split('.').map(tryParse);\n\n for (i = 0; i < Math.max(p1.length, p2.length); i++) {\n if (p1[i] === undefined || typeof p2[i] === 'string' && typeof p1[i] === 'number') return -1;\n if (p2[i] === undefined || typeof p1[i] === 'string' && typeof p2[i] === 'number') return 1;\n\n if (p1[i] > p2[i]) return 1;\n if (p2[i] > p1[i]) return -1;\n }\n } else if (sp1 || sp2) {\n return sp1 ? -1 : 1;\n }\n\n return 0;\n };\n\n var allowedOperators = [\n '>',\n '>=',\n '=',\n '<',\n '<='\n ];\n\n var operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1]\n };\n\n function validateOperator(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 TypeError('Invalid operator, expected one of ' + allowedOperators.join('|'));\n }\n }\n\n compareVersions.validate = function(version) {\n return typeof version === 'string' && semver.test(version);\n }\n\n compareVersions.compare = function (v1, v2, operator) {\n // Validate operator\n validateOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n var res = compareVersions(v1, v2);\n return operatorResMap[operator].indexOf(res) > -1;\n }\n\n return compareVersions;\n}));\n","import NativeModulesProxy from './NativeModulesProxy';\n/**\n * Imports the native module registered with given name. In the first place it tries to load\n * the module installed through the JSI host object and then falls back to the bridge proxy module.\n * Notice that the modules loaded from the proxy may not support some features like synchronous functions.\n *\n * @param moduleName Name of the requested native module.\n * @returns Object representing the native module.\n * @throws Error when there is no native module with given name.\n */\nexport function requireNativeModule(moduleName) {\n const nativeModule = global.expo?.modules?.[moduleName] ??\n global.ExpoModules?.[moduleName] ??\n NativeModulesProxy[moduleName];\n if (!nativeModule) {\n throw new Error(`Cannot find native module '${moduleName}'`);\n }\n return nativeModule;\n}\n//# sourceMappingURL=requireNativeModule.js.map","export var PermissionStatus;\n(function (PermissionStatus) {\n /**\n * User has granted the permission.\n */\n PermissionStatus[\"GRANTED\"] = \"granted\";\n /**\n * User hasn't granted or denied the permission yet.\n */\n PermissionStatus[\"UNDETERMINED\"] = \"undetermined\";\n /**\n * User has denied the permission.\n */\n PermissionStatus[\"DENIED\"] = \"denied\";\n})(PermissionStatus || (PermissionStatus = {}));\n//# sourceMappingURL=PermissionsInterface.js.map","import { useCallback, useEffect, useRef, useState } from 'react';\n/**\n * Get or request permission for protected functionality within the app.\n * It uses separate permission requesters to interact with a single permission.\n * By default, the hook will only retrieve the permission status.\n */\nfunction usePermission(methods, options) {\n const isMounted = useRef(true);\n const [status, setStatus] = useState(null);\n const { get = true, request = false, ...permissionOptions } = options || {};\n const getPermission = useCallback(async () => {\n const response = await methods.getMethod(Object.keys(permissionOptions).length > 0 ? permissionOptions : undefined);\n if (isMounted.current)\n setStatus(response);\n return response;\n }, [methods.getMethod]);\n const requestPermission = useCallback(async () => {\n const response = await methods.requestMethod(Object.keys(permissionOptions).length > 0 ? permissionOptions : undefined);\n if (isMounted.current)\n setStatus(response);\n return response;\n }, [methods.requestMethod]);\n useEffect(function runMethods() {\n if (request)\n requestPermission();\n if (!request && get)\n getPermission();\n }, [get, request, requestPermission, getPermission]);\n // Workaround for unmounting components receiving state updates\n useEffect(function didMount() {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return [status, requestPermission, getPermission];\n}\n/**\n * Create a new permission hook with the permission methods built-in.\n * This can be used to quickly create specific permission hooks in every module.\n */\nexport function createPermissionHook(methods) {\n return (options) => usePermission(methods, options);\n}\n//# sourceMappingURL=PermissionsHook.js.map","// @needsAudit\nexport var AppOwnership;\n(function (AppOwnership) {\n /**\n * It is a [standalone app](/classic/building-standalone-apps#building-standalone-apps).\n */\n AppOwnership[\"Standalone\"] = \"standalone\";\n /**\n * The experience is running inside of the Expo Go app.\n */\n AppOwnership[\"Expo\"] = \"expo\";\n /**\n * It has been opened through a link from a standalone app.\n */\n AppOwnership[\"Guest\"] = \"guest\";\n})(AppOwnership || (AppOwnership = {}));\n// @docsMissing\nexport var ExecutionEnvironment;\n(function (ExecutionEnvironment) {\n ExecutionEnvironment[\"Bare\"] = \"bare\";\n ExecutionEnvironment[\"Standalone\"] = \"standalone\";\n ExecutionEnvironment[\"StoreClient\"] = \"storeClient\";\n})(ExecutionEnvironment || (ExecutionEnvironment = {}));\n// @needsAudit\n/**\n * Current supported values are `handset` and `tablet`. Apple TV and CarPlay will show up\n * as `unsupported`.\n */\nexport var UserInterfaceIdiom;\n(function (UserInterfaceIdiom) {\n UserInterfaceIdiom[\"Handset\"] = \"handset\";\n UserInterfaceIdiom[\"Tablet\"] = \"tablet\";\n UserInterfaceIdiom[\"Unsupported\"] = \"unsupported\";\n})(UserInterfaceIdiom || (UserInterfaceIdiom = {}));\n//# sourceMappingURL=Constants.types.js.map","import { requireNativeModule } from 'expo-modules-core';\nlet ExponentConstants;\ntry {\n ExponentConstants = requireNativeModule('ExponentConstants');\n}\ncatch { }\nexport default ExponentConstants;\n//# sourceMappingURL=ExponentConstants.js.map","let shouldThrowAnErrorOutsideOfExpoValue = true;\n/**\n * @param value Should 'expo' validate the environment against Constants.expoVersion\n */\nexport function _setShouldThrowAnErrorOutsideOfExpo(value) {\n shouldThrowAnErrorOutsideOfExpoValue = value;\n}\n/**\n * Should 'expo' validate the environment against Constants.expoVersion\n */\nexport function shouldThrowAnErrorOutsideOfExpo() {\n return shouldThrowAnErrorOutsideOfExpoValue;\n}\n//# sourceMappingURL=validatorState.js.map","import Constants from 'expo-constants';\nimport { Platform } from 'expo-modules-core';\nimport getDevServer from 'react-native/Libraries/Core/Devtools/getDevServer';\n// Metro and terser don't seem to be capable of shaking the imports unless they're wrapped in __DEV__.\nif (__DEV__) {\n // If the app is being run outside of the Expo Go app and not using expo-dev-menu,\n // then we can attempt to polyfill the `logUrl` to enable console logging in the CLI.\n if (\n // If this is defined then we can be define Constants.manifest.logUrl without worrying about the warning.\n Constants.__unsafeNoWarnManifest &&\n // Only attempt to set the URL if `Constants.__unsafeNoWarnManifest.logUrl` is not defined.\n !Constants.__unsafeNoWarnManifest.logUrl) {\n const devServerInfo = getDevServer();\n // Ensure the URL is remote and not local. i.e `file://`\n if (devServerInfo.bundleLoadedFromServer) {\n // url: `http://localhost:8081/`\n const url = !devServerInfo.url.endsWith('/') ? `${devServerInfo.url}/` : devServerInfo.url;\n // The standard Expo logUrl is `http://localhost:19000/logs`, this code assumes that the `logs` endpoint doesn't change.\n const logUrl = url + 'logs';\n Constants.__unsafeNoWarnManifest.logUrl = logUrl;\n if (Constants.manifest) {\n Constants.manifest.logUrl = logUrl;\n }\n }\n }\n else if (\n // If this is defined then we can be define Constants.manifest2.extra.expoGo.logUrl without worrying about the warning.\n Constants.__unsafeNoWarnManifest2 &&\n // Only attempt to set the URL if `Constants.__unsafeNoWarnManifest2.logUrl` is not defined.\n !Constants.__unsafeNoWarnManifest2.extra?.expoGo?.logUrl) {\n const devServerInfo = getDevServer();\n // Ensure the URL is remote and not local. i.e `file://`\n if (devServerInfo.bundleLoadedFromServer) {\n // url: `http://localhost:8081/`\n const url = !devServerInfo.url.endsWith('/') ? `${devServerInfo.url}/` : devServerInfo.url;\n // The standard Expo logUrl is `http://localhost:19000/logs`, this code assumes that the `logs` endpoint doesn't change.\n const logUrl = url + 'logs';\n if (Constants.__unsafeNoWarnManifest2.extra?.expoGo) {\n Constants.__unsafeNoWarnManifest2.extra.expoGo.logUrl = logUrl;\n }\n if (Constants.manifest2?.extra?.expoGo) {\n Constants.manifest2.extra.expoGo.logUrl = logUrl;\n }\n }\n }\n // TODO: Maybe warn that console logging will not be enabled.\n if (Constants.__unsafeNoWarnManifest?.logUrl ||\n Constants.__unsafeNoWarnManifest2?.extra?.expoGo?.logUrl) {\n // Enable logging to the Expo dev tools only if this JS is not running in a web browser (ex: the\n // remote debugger). In Expo Web we don't show console logs in the CLI, so there's no special case needed.\n if (Platform.isAsyncDebugging) {\n const RemoteLogging = require('../logs/RemoteLogging').default;\n RemoteLogging.enqueueRemoteLogAsync('info', {}, [\n 'You are now debugging remotely; check your browser console for your application logs.',\n ]);\n }\n else {\n const Logs = require('../logs/Logs');\n Logs.enableExpoCliLogging();\n }\n }\n}\n//# sourceMappingURL=logging.fx.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 * @format\n * @flow strict\n */\n\nimport NativeSourceCode from '../../NativeModules/specs/NativeSourceCode';\n\nlet _cachedDevServerURL: ?string;\nlet _cachedFullBundleURL: ?string;\nconst FALLBACK = 'http://localhost:8081/';\n\ntype DevServerInfo = {\n url: string,\n fullBundleUrl: ?string,\n bundleLoadedFromServer: boolean,\n ...\n};\n\n/**\n * Many RN development tools rely on the development server (packager) running\n * @return URL to packager with trailing slash\n */\nfunction getDevServer(): DevServerInfo {\n if (_cachedDevServerURL === undefined) {\n const scriptUrl = NativeSourceCode.getConstants().scriptURL;\n const match = scriptUrl.match(/^https?:\\/\\/.*?\\//);\n _cachedDevServerURL = match ? match[0] : null;\n _cachedFullBundleURL = match ? scriptUrl : null;\n }\n\n return {\n url: _cachedDevServerURL ?? FALLBACK,\n fullBundleUrl: _cachedFullBundleURL,\n bundleLoadedFromServer: _cachedDevServerURL !== null,\n };\n}\n\nmodule.exports = getDevServer;\n","import './Asset.fx';\nexport * from './Asset';\nexport * from './AssetHooks';\n//# sourceMappingURL=index.js.map","import { Asset } from './Asset';\nimport { IS_ENV_WITH_UPDATES_ENABLED } from './PlatformUtils';\nimport { setCustomSourceTransformer } from './resolveAssetSource';\n// Override React Native's asset resolution for `Image` components in contexts where it matters\nif (IS_ENV_WITH_UPDATES_ENABLED) {\n setCustomSourceTransformer((resolver) => {\n try {\n // Bundler is using the hashAssetFiles plugin if and only if the fileHashes property exists\n if (resolver.asset.fileHashes) {\n const asset = Asset.fromMetadata(resolver.asset);\n return resolver.fromSource(asset.downloaded ? asset.localUri : asset.uri);\n }\n else {\n return resolver.defaultAsset();\n }\n }\n catch {\n return resolver.defaultAsset();\n }\n });\n}\n//# sourceMappingURL=Asset.fx.js.map","import { Platform } from 'expo-modules-core';\nimport { getAssetByID } from 'react-native/Libraries/Image/AssetRegistry';\nimport { selectAssetSource } from './AssetSources';\nimport * as AssetUris from './AssetUris';\nimport * as ImageAssets from './ImageAssets';\nimport { getLocalAssetUri } from './LocalAssets';\nimport { downloadAsync, IS_ENV_WITH_UPDATES_ENABLED } from './PlatformUtils';\nimport resolveAssetSource from './resolveAssetSource';\n// @needsAudit\n/**\n * The `Asset` class represents an asset in your app. It gives metadata about the asset (such as its\n * name and type) and provides facilities to load the asset data.\n */\nexport class Asset {\n /**\n * @private\n */\n static byHash = {};\n /**\n * @private\n */\n static byUri = {};\n /**\n * The name of the asset file without the extension. Also without the part from `@` onward in the\n * filename (used to specify scale factor for images).\n */\n name;\n /**\n * The extension of the asset filename.\n */\n type;\n /**\n * The MD5 hash of the asset's data.\n */\n hash = null;\n /**\n * A URI that points to the asset's data on the remote server. When running the published version\n * of your app, this refers to the location on Expo's asset server where Expo has stored your\n * asset. When running the app from Expo CLI during development, this URI points to Expo CLI's\n * server running on your computer and the asset is served directly from your computer.\n */\n uri;\n /**\n * If the asset has been downloaded (by calling [`downloadAsync()`](#downloadasync)), the\n * `file://` URI pointing to the local file on the device that contains the asset data.\n */\n localUri = null;\n /**\n * If the asset is an image, the width of the image data divided by the scale factor. The scale\n * factor is the number after `@` in the filename, or `1` if not present.\n */\n width = null;\n /**\n * If the asset is an image, the height of the image data divided by the scale factor. The scale factor is the number after `@` in the filename, or `1` if not present.\n */\n height = null;\n // @docsMissing\n downloading = false;\n // @docsMissing\n downloaded = false;\n /**\n * @private\n */\n _downloadCallbacks = [];\n constructor({ name, type, hash = null, uri, width, height }) {\n this.name = name;\n this.type = type;\n this.hash = hash;\n this.uri = uri;\n if (typeof width === 'number') {\n this.width = width;\n }\n if (typeof height === 'number') {\n this.height = height;\n }\n if (hash) {\n this.localUri = getLocalAssetUri(hash, type);\n if (this.localUri) {\n this.downloaded = true;\n }\n }\n if (Platform.OS === 'web') {\n if (!name) {\n this.name = AssetUris.getFilename(uri);\n }\n if (!type) {\n this.type = AssetUris.getFileExtension(uri);\n }\n }\n }\n // @needsAudit\n /**\n * A helper that wraps `Asset.fromModule(module).downloadAsync` for convenience.\n * @param moduleId An array of `require('path/to/file')` or external network URLs. Can also be\n * just one module or URL without an Array.\n * @return Returns a Promise that fulfills with an array of `Asset`s when the asset(s) has been\n * saved to disk.\n * @example\n * ```ts\n * const [{ localUri }] = await Asset.loadAsync(require('./assets/snack-icon.png'));\n * ```\n */\n static loadAsync(moduleId) {\n const moduleIds = Array.isArray(moduleId) ? moduleId : [moduleId];\n return Promise.all(moduleIds.map((moduleId) => Asset.fromModule(moduleId).downloadAsync()));\n }\n // @needsAudit\n /**\n * Returns the [`Asset`](#asset) instance representing an asset given its module or URL.\n * @param virtualAssetModule The value of `require('path/to/file')` for the asset or external\n * network URL\n * @return The [`Asset`](#asset) instance for the asset.\n */\n static fromModule(virtualAssetModule) {\n if (typeof virtualAssetModule === 'string') {\n return Asset.fromURI(virtualAssetModule);\n }\n const meta = getAssetByID(virtualAssetModule);\n if (!meta) {\n throw new Error(`Module \"${virtualAssetModule}\" is missing from the asset registry`);\n }\n // Outside of the managed env we need the moduleId to initialize the asset\n // because resolveAssetSource depends on it\n if (!IS_ENV_WITH_UPDATES_ENABLED) {\n const { uri } = resolveAssetSource(virtualAssetModule);\n const asset = new Asset({\n name: meta.name,\n type: meta.type,\n hash: meta.hash,\n uri,\n width: meta.width,\n height: meta.height,\n });\n // TODO: FileSystem should probably support 'downloading' from drawable\n // resources But for now it doesn't (it only supports raw resources) and\n // React Native's Image works fine with drawable resource names for\n // images.\n if (Platform.OS === 'android' && !uri.includes(':') && (meta.width || meta.height)) {\n asset.localUri = asset.uri;\n asset.downloaded = true;\n }\n Asset.byHash[meta.hash] = asset;\n return asset;\n }\n return Asset.fromMetadata(meta);\n }\n // @docsMissing\n static fromMetadata(meta) {\n // The hash of the whole asset, not to be confused with the hash of a specific file returned\n // from `selectAssetSource`\n const metaHash = meta.hash;\n if (Asset.byHash[metaHash]) {\n return Asset.byHash[metaHash];\n }\n const { uri, hash } = selectAssetSource(meta);\n const asset = new Asset({\n name: meta.name,\n type: meta.type,\n hash,\n uri,\n width: meta.width,\n height: meta.height,\n });\n Asset.byHash[metaHash] = asset;\n return asset;\n }\n // @docsMissing\n static fromURI(uri) {\n if (Asset.byUri[uri]) {\n return Asset.byUri[uri];\n }\n // Possibly a Base64-encoded URI\n let type = '';\n if (uri.indexOf(';base64') > -1) {\n type = uri.split(';')[0].split('/')[1];\n }\n else {\n const extension = AssetUris.getFileExtension(uri);\n type = extension.startsWith('.') ? extension.substring(1) : extension;\n }\n const asset = new Asset({\n name: '',\n type,\n hash: null,\n uri,\n });\n Asset.byUri[uri] = asset;\n return asset;\n }\n // @needsAudit\n /**\n * Downloads the asset data to a local file in the device's cache directory. Once the returned\n * promise is fulfilled without error, the [`localUri`](#assetlocaluri) field of this asset points\n * to a local file containing the asset data. The asset is only downloaded if an up-to-date local\n * file for the asset isn't already present due to an earlier download. The downloaded `Asset`\n * will be returned when the promise is resolved.\n * @return Returns a Promise which fulfills with an `Asset` instance.\n */\n async downloadAsync() {\n if (this.downloaded) {\n return this;\n }\n if (this.downloading) {\n await new Promise((resolve, reject) => {\n this._downloadCallbacks.push({ resolve, reject });\n });\n return this;\n }\n this.downloading = true;\n try {\n if (Platform.OS === 'web') {\n if (ImageAssets.isImageType(this.type)) {\n const { width, height, name } = await ImageAssets.getImageInfoAsync(this.uri);\n this.width = width;\n this.height = height;\n this.name = name;\n }\n else {\n this.name = AssetUris.getFilename(this.uri);\n }\n }\n this.localUri = await downloadAsync(this.uri, this.hash, this.type, this.name);\n this.downloaded = true;\n this._downloadCallbacks.forEach(({ resolve }) => resolve());\n }\n catch (e) {\n this._downloadCallbacks.forEach(({ reject }) => reject(e));\n throw e;\n }\n finally {\n this.downloading = false;\n this._downloadCallbacks = [];\n }\n return this;\n }\n}\n//# sourceMappingURL=Asset.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 strict\n * @format\n */\n\n'use strict';\n\nmodule.exports = require('@react-native/assets/registry');\n","import { Platform } from 'expo-modules-core';\nimport path from 'path-browserify';\nimport { PixelRatio } from 'react-native';\nimport URL from 'url-parse';\nimport AssetSourceResolver from './AssetSourceResolver';\nimport { getManifest, getManifest2, manifestBaseUrl } from './PlatformUtils';\n// Fast lookup check if asset map has any overrides in the manifest\nconst assetMapOverride = getManifest().assetMapOverride;\n/**\n * Selects the best file for the given asset (ex: choosing the best scale for images) and returns\n * a { uri, hash } pair for the specific asset file.\n *\n * If the asset isn't an image with multiple scales, the first file is selected.\n */\nexport function selectAssetSource(meta) {\n // Override with the asset map in manifest if available\n if (assetMapOverride && assetMapOverride.hasOwnProperty(meta.hash)) {\n meta = { ...meta, ...assetMapOverride[meta.hash] };\n }\n // This logic is based on that of AssetSourceResolver, with additional support for file hashes and\n // explicitly provided URIs\n const scale = AssetSourceResolver.pickScale(meta.scales, PixelRatio.get());\n const index = meta.scales.findIndex((s) => s === scale);\n const hash = meta.fileHashes ? meta.fileHashes[index] || meta.fileHashes[0] : meta.hash;\n // Allow asset processors to directly provide the URL to load\n const uri = meta.fileUris ? meta.fileUris[index] || meta.fileUris[0] : meta.uri;\n if (uri) {\n return { uri: resolveUri(uri), hash };\n }\n // Check if the assetUrl was overridden in the manifest\n const assetUrlOverride = getManifest().assetUrlOverride;\n if (assetUrlOverride) {\n const uri = path.join(assetUrlOverride, hash);\n return { uri: resolveUri(uri), hash };\n }\n const fileScale = scale === 1 ? '' : `@${scale}x`;\n const fileExtension = meta.type ? `.${encodeURIComponent(meta.type)}` : '';\n const suffix = `/${encodeURIComponent(meta.name)}${fileScale}${fileExtension}?platform=${encodeURIComponent(Platform.OS)}&hash=${encodeURIComponent(meta.hash)}`;\n // For assets with a specified absolute URL, we use the existing origin instead of prepending the\n // development server or production CDN URL origin\n if (/^https?:\\/\\//.test(meta.httpServerLocation)) {\n const uri = meta.httpServerLocation + suffix;\n return { uri, hash };\n }\n // For assets during development using manifest2, we use the development server's URL origin\n const manifest2 = getManifest2();\n if (manifest2?.extra?.expoGo?.developer) {\n const baseUrl = new URL(`http://${manifest2.extra.expoGo.debuggerHost}`);\n baseUrl.set('pathname', meta.httpServerLocation + suffix);\n return {\n uri: baseUrl.href,\n hash,\n };\n }\n // For assets during development, we use the development server's URL origin\n if (getManifest().developer) {\n const baseUrl = new URL(getManifest().bundleUrl);\n baseUrl.set('pathname', meta.httpServerLocation + suffix);\n return { uri: baseUrl.href, hash };\n }\n // Production CDN URIs are based on each asset file hash\n return {\n uri: `https://classic-assets.eascdn.net/~assets/${encodeURIComponent(hash)}`,\n hash,\n };\n}\n/**\n * Resolves the given URI to an absolute URI. If the given URI is already an absolute URI, it is\n * simply returned. Otherwise, if it is a relative URI, it is resolved relative to the manifest's\n * base URI.\n */\nexport function resolveUri(uri) {\n if (!manifestBaseUrl) {\n return uri;\n }\n const { protocol } = new URL(uri);\n if (protocol !== '') {\n return uri;\n }\n const baseUrl = new URL(manifestBaseUrl);\n const resolvedPath = uri.startsWith('/') ? uri : path.join(baseUrl.pathname, uri);\n baseUrl.set('pathname', resolvedPath);\n return baseUrl.href;\n}\n//# sourceMappingURL=AssetSources.js.map","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\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\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","import AssetSourceResolver from 'react-native/Libraries/Image/AssetSourceResolver';\nexport default AssetSourceResolver;\nexport * from 'react-native/Libraries/Image/AssetSourceResolver';\n//# sourceMappingURL=AssetSourceResolver.js.map","import computeMd5 from 'blueimp-md5';\nimport Constants from 'expo-constants';\nimport * as FileSystem from 'expo-file-system';\nimport { NativeModulesProxy } from 'expo-modules-core';\nimport { getManifestBaseUrl } from './AssetUris';\n// Constants.appOwnership is only available in managed apps (Expo client and standalone)\nexport const IS_MANAGED_ENV = !!Constants.appOwnership;\n// In the future (SDK38+) expo-updates is likely to be used in managed apps, so we decide\n// that you are in a bare app with updates if you're not in a managed app and you have\n// local assets available.\nexport const IS_BARE_ENV_WITH_UPDATES = !IS_MANAGED_ENV &&\n !!NativeModulesProxy.ExpoUpdates?.isEnabled &&\n // if expo-updates is installed but we're running directly from the embedded bundle, we don't want\n // to override the AssetSourceResolver\n !NativeModulesProxy.ExpoUpdates?.isUsingEmbeddedAssets;\nexport const IS_ENV_WITH_UPDATES_ENABLED = IS_MANAGED_ENV || IS_BARE_ENV_WITH_UPDATES;\n// If it's not managed or bare w/ updates, then it must be bare w/o updates!\nexport const IS_BARE_ENV_WITHOUT_UPDATES = !IS_MANAGED_ENV && !IS_BARE_ENV_WITH_UPDATES;\n// Get the localAssets property from the ExpoUpdates native module so that we do\n// not need to include expo-updates as a dependency of expo-asset\nexport function getLocalAssets() {\n return NativeModulesProxy.ExpoUpdates?.localAssets ?? {};\n}\nexport function getManifest() {\n return Constants.__unsafeNoWarnManifest ?? {};\n}\nexport function getManifest2() {\n return Constants.__unsafeNoWarnManifest2;\n}\n// Compute manifest base URL if available\nexport const manifestBaseUrl = Constants.experienceUrl\n ? getManifestBaseUrl(Constants.experienceUrl)\n : null;\n// TODO: how should this behave in bare app with updates? re: hashAssetFiles\nexport async function downloadAsync(uri, hash, type, name) {\n if (IS_MANAGED_ENV) {\n return _downloadAsyncManagedEnv(uri, hash, type, name);\n }\n return _downloadAsyncUnmanagedEnv(uri, hash, type);\n}\n/**\n * Check if the file exists on disk already, perform integrity check if so.\n * Otherwise, download it.\n */\nasync function _downloadAsyncManagedEnv(uri, hash, type, name) {\n const cacheFileId = hash || computeMd5(uri);\n const localUri = `${FileSystem.cacheDirectory}ExponentAsset-${cacheFileId}.${type}`;\n const fileInfo = await FileSystem.getInfoAsync(localUri, {\n md5: true,\n });\n if (!fileInfo.exists || (hash !== null && fileInfo.md5 !== hash)) {\n const { md5 } = await FileSystem.downloadAsync(uri, localUri, {\n md5: true,\n });\n if (hash !== null && md5 !== hash) {\n throw new Error(`Downloaded file for asset '${name}.${type}' ` +\n `Located at ${uri} ` +\n `failed MD5 integrity check`);\n }\n }\n return localUri;\n}\n/**\n * Just download the asset, don't perform integrity check because we don't have\n * the hash to compare it with (we don't have hashAssetFiles plugin). Hash is\n * only used for the file name.\n */\nasync function _downloadAsyncUnmanagedEnv(uri, hash, type) {\n // TODO: does this make sense to bail out if it's already at a file URL\n // because it's already available locally?\n if (uri.startsWith('file://')) {\n return uri;\n }\n const cacheFileId = hash || computeMd5(uri);\n const localUri = `${FileSystem.cacheDirectory}ExponentAsset-${cacheFileId}.${type}`;\n // We don't check the FileSystem for an existing version of the asset and we\n // also don't perform an integrity check!\n await FileSystem.downloadAsync(uri, localUri);\n return localUri;\n}\n//# sourceMappingURL=PlatformUtils.js.map","/*\n * JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n/* global define */\n\n/* eslint-disable strict */\n\n;(function ($) {\n 'use strict'\n\n /**\n * Add integers, wrapping at 2^32.\n * This uses 16-bit operations internally to work around bugs in interpreters.\n *\n * @param {number} x First integer\n * @param {number} y Second integer\n * @returns {number} Sum\n */\n function safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff)\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16)\n return (msw << 16) | (lsw & 0xffff)\n }\n\n /**\n * Bitwise rotate a 32-bit number to the left.\n *\n * @param {number} num 32-bit number\n * @param {number} cnt Rotation count\n * @returns {number} Rotated number\n */\n function bitRotateLeft(num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt))\n }\n\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} q q\n * @param {number} a a\n * @param {number} b b\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ff(a, b, c, d, x, s, t) {\n return md5cmn((b & c) | (~b & d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5gg(a, b, c, d, x, s, t) {\n return md5cmn((b & d) | (c & ~d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t)\n }\n\n /**\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n *\n * @param {Array} x Array of little-endian words\n * @param {number} len Bit length\n * @returns {Array<number>} MD5 Array\n */\n function binlMD5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32\n x[(((len + 64) >>> 9) << 4) + 14] = len\n\n var i\n var olda\n var oldb\n var oldc\n var oldd\n var a = 1732584193\n var b = -271733879\n var c = -1732584194\n var d = 271733878\n\n for (i = 0; i < x.length; i += 16) {\n olda = a\n oldb = b\n oldc = c\n oldd = d\n\n a = md5ff(a, b, c, d, x[i], 7, -680876936)\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063)\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)\n\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)\n b = md5gg(b, c, d, a, x[i], 20, -373897302)\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)\n\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558)\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)\n d = md5hh(d, a, b, c, x[i], 11, -358537222)\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)\n\n a = md5ii(a, b, c, d, x[i], 6, -198630844)\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)\n\n a = safeAdd(a, olda)\n b = safeAdd(b, oldb)\n c = safeAdd(c, oldc)\n d = safeAdd(d, oldd)\n }\n return [a, b, c, d]\n }\n\n /**\n * Convert an array of little-endian words to a string\n *\n * @param {Array<number>} input MD5 Array\n * @returns {string} MD5 string\n */\n function binl2rstr(input) {\n var i\n var output = ''\n var length32 = input.length * 32\n for (i = 0; i < length32; i += 8) {\n output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff)\n }\n return output\n }\n\n /**\n * Convert a raw string to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n *\n * @param {string} input Raw input string\n * @returns {Array<number>} Array of little-endian words\n */\n function rstr2binl(input) {\n var i\n var output = []\n output[(input.length >> 2) - 1] = undefined\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0\n }\n var length8 = input.length * 8\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32\n }\n return output\n }\n\n /**\n * Calculate the MD5 of a raw string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rstrMD5(s) {\n return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))\n }\n\n /**\n * Calculates the HMAC-MD5 of a key and some data (raw strings)\n *\n * @param {string} key HMAC key\n * @param {string} data Raw input string\n * @returns {string} Raw MD5 string\n */\n function rstrHMACMD5(key, data) {\n var i\n var bkey = rstr2binl(key)\n var ipad = []\n var opad = []\n var hash\n ipad[15] = opad[15] = undefined\n if (bkey.length > 16) {\n bkey = binlMD5(bkey, key.length * 8)\n }\n for (i = 0; i < 16; i += 1) {\n ipad[i] = bkey[i] ^ 0x36363636\n opad[i] = bkey[i] ^ 0x5c5c5c5c\n }\n hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)\n return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))\n }\n\n /**\n * Convert a raw string to a hex string\n *\n * @param {string} input Raw input string\n * @returns {string} Hex encoded string\n */\n function rstr2hex(input) {\n var hexTab = '0123456789abcdef'\n var output = ''\n var x\n var i\n for (i = 0; i < input.length; i += 1) {\n x = input.charCodeAt(i)\n output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)\n }\n return output\n }\n\n /**\n * Encode a string as UTF-8\n *\n * @param {string} input Input string\n * @returns {string} UTF8 string\n */\n function str2rstrUTF8(input) {\n return unescape(encodeURIComponent(input))\n }\n\n /**\n * Encodes input string as raw MD5 string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rawMD5(s) {\n return rstrMD5(str2rstrUTF8(s))\n }\n /**\n * Encodes input string as Hex encoded string\n *\n * @param {string} s Input string\n * @returns {string} Hex encoded string\n */\n function hexMD5(s) {\n return rstr2hex(rawMD5(s))\n }\n /**\n * Calculates the raw HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function rawHMACMD5(k, d) {\n return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))\n }\n /**\n * Calculates the Hex encoded HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function hexHMACMD5(k, d) {\n return rstr2hex(rawHMACMD5(k, d))\n }\n\n /**\n * Calculates MD5 value for a given string.\n * If a key is provided, calculates the HMAC-MD5 value.\n * Returns a Hex encoded string unless the raw argument is given.\n *\n * @param {string} string Input string\n * @param {string} [key] HMAC key\n * @param {boolean} [raw] Raw output switch\n * @returns {string} MD5 output\n */\n function md5(string, key, raw) {\n if (!key) {\n if (!raw) {\n return hexMD5(string)\n }\n return rawMD5(string)\n }\n if (!raw) {\n return hexHMACMD5(key, string)\n }\n return rawHMACMD5(key, string)\n }\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return md5\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = md5\n } else {\n $.md5 = md5\n }\n})(this)\n","export * from './FileSystem';\nexport * from './FileSystem.types';\n//# sourceMappingURL=index.js.map","import { EventEmitter, UnavailabilityError } from 'expo-modules-core';\nimport { Platform } from 'react-native';\nimport { v4 as uuidv4 } from 'uuid';\nimport ExponentFileSystem from './ExponentFileSystem';\nimport { FileSystemSessionType, FileSystemUploadType, } from './FileSystem.types';\nif (!ExponentFileSystem) {\n console.warn(\"No native ExponentFileSystem module found, are you sure the expo-file-system's module is linked properly?\");\n}\n// Prevent webpack from pruning this.\nconst _unused = new EventEmitter(ExponentFileSystem); // eslint-disable-line\nfunction normalizeEndingSlash(p) {\n if (p != null) {\n return p.replace(/\\/*$/, '') + '/';\n }\n return null;\n}\n/**\n * `file://` URI pointing to the directory where user documents for this app will be stored.\n * Files stored here will remain until explicitly deleted by the app. Ends with a trailing `/`.\n * Example uses are for files the user saves that they expect to see again.\n */\nexport const documentDirectory = normalizeEndingSlash(ExponentFileSystem.documentDirectory);\n/**\n * `file://` URI pointing to the directory where temporary files used by this app will be stored.\n * Files stored here may be automatically deleted by the system when low on storage.\n * Example uses are for downloaded or generated files that the app just needs for one-time usage.\n */\nexport const cacheDirectory = normalizeEndingSlash(ExponentFileSystem.cacheDirectory);\n// @docsMissing\nexport const { bundledAssets, bundleDirectory } = ExponentFileSystem;\n/**\n * Get metadata information about a file, directory or external content/asset.\n * @param fileUri URI to the file or directory. See [supported URI schemes](#supported-uri-schemes).\n * @param options A map of options represented by [`GetInfoAsyncOptions`](#getinfoasyncoptions) type.\n * @return A Promise that resolves to a `FileInfo` object. If no item exists at this URI,\n * the returned Promise resolves to `FileInfo` object in form of `{ exists: false, isDirectory: false }`.\n */\nexport async function getInfoAsync(fileUri, options = {}) {\n if (!ExponentFileSystem.getInfoAsync) {\n throw new UnavailabilityError('expo-file-system', 'getInfoAsync');\n }\n return await ExponentFileSystem.getInfoAsync(fileUri, options);\n}\n/**\n * Read the entire contents of a file as a string. Binary will be returned in raw format, you will need to append `data:image/png;base64,` to use it as Base64.\n * @param fileUri `file://` or [SAF](#saf-uri) URI to the file or directory.\n * @param options A map of read options represented by [`ReadingOptions`](#readingoptions) type.\n * @return A Promise that resolves to a string containing the entire contents of the file.\n */\nexport async function readAsStringAsync(fileUri, options = {}) {\n if (!ExponentFileSystem.readAsStringAsync) {\n throw new UnavailabilityError('expo-file-system', 'readAsStringAsync');\n }\n return await ExponentFileSystem.readAsStringAsync(fileUri, options);\n}\n/**\n * Takes a `file://` URI and converts it into content URI (`content://`) so that it can be accessed by other applications outside of Expo.\n * @param fileUri The local URI of the file. If there is no file at this URI, an exception will be thrown.\n * @example\n * ```js\n * FileSystem.getContentUriAsync(uri).then(cUri => {\n * console.log(cUri);\n * IntentLauncher.startActivityAsync('android.intent.action.VIEW', {\n * data: cUri,\n * flags: 1,\n * });\n * });\n * ```\n * @return Returns a Promise that resolves to a `string` containing a `content://` URI pointing to the file.\n * The URI is the same as the `fileUri` input parameter but in a different format.\n * @platform android\n */\nexport async function getContentUriAsync(fileUri) {\n if (Platform.OS === 'android') {\n if (!ExponentFileSystem.getContentUriAsync) {\n throw new UnavailabilityError('expo-file-system', 'getContentUriAsync');\n }\n return await ExponentFileSystem.getContentUriAsync(fileUri);\n }\n else {\n return fileUri;\n }\n}\n/**\n * Write the entire contents of a file as a string.\n * @param fileUri `file://` or [SAF](#saf-uri) URI to the file or directory.\n * > Note: when you're using SAF URI the file needs to exist. You can't create a new file.\n * @param contents The string to replace the contents of the file with.\n * @param options A map of write options represented by [`WritingOptions`](#writingoptions) type.\n */\nexport async function writeAsStringAsync(fileUri, contents, options = {}) {\n if (!ExponentFileSystem.writeAsStringAsync) {\n throw new UnavailabilityError('expo-file-system', 'writeAsStringAsync');\n }\n return await ExponentFileSystem.writeAsStringAsync(fileUri, contents, options);\n}\n/**\n * Delete a file or directory. If the URI points to a directory, the directory and all its contents are recursively deleted.\n * @param fileUri `file://` or [SAF](#saf-uri) URI to the file or directory.\n * @param options A map of write options represented by [`DeletingOptions`](#deletingoptions) type.\n */\nexport async function deleteAsync(fileUri, options = {}) {\n if (!ExponentFileSystem.deleteAsync) {\n throw new UnavailabilityError('expo-file-system', 'deleteAsync');\n }\n return await ExponentFileSystem.deleteAsync(fileUri, options);\n}\nexport async function deleteLegacyDocumentDirectoryAndroid() {\n if (Platform.OS !== 'android' || documentDirectory == null) {\n return;\n }\n const legacyDocumentDirectory = `${documentDirectory}ExperienceData/`;\n return await deleteAsync(legacyDocumentDirectory, { idempotent: true });\n}\n/**\n * Move a file or directory to a new location.\n * @param options A map of move options represented by [`RelocatingOptions`](#relocatingoptions) type.\n */\nexport async function moveAsync(options) {\n if (!ExponentFileSystem.moveAsync) {\n throw new UnavailabilityError('expo-file-system', 'moveAsync');\n }\n return await ExponentFileSystem.moveAsync(options);\n}\n/**\n * Create a copy of a file or directory. Directories are recursively copied with all of their contents.\n * It can be also used to copy content shared by other apps to local filesystem.\n * @param options A map of move options represented by [`RelocatingOptions`](#relocatingoptions) type.\n */\nexport async function copyAsync(options) {\n if (!ExponentFileSystem.copyAsync) {\n throw new UnavailabilityError('expo-file-system', 'copyAsync');\n }\n return await ExponentFileSystem.copyAsync(options);\n}\n/**\n * Create a new empty directory.\n * @param fileUri `file://` URI to the new directory to create.\n * @param options A map of create directory options represented by [`MakeDirectoryOptions`](#makedirectoryoptions) type.\n */\nexport async function makeDirectoryAsync(fileUri, options = {}) {\n if (!ExponentFileSystem.makeDirectoryAsync) {\n throw new UnavailabilityError('expo-file-system', 'makeDirectoryAsync');\n }\n return await ExponentFileSystem.makeDirectoryAsync(fileUri, options);\n}\n/**\n * Enumerate the contents of a directory.\n * @param fileUri `file://` URI to the directory.\n * @return A Promise that resolves to an array of strings, each containing the name of a file or directory contained in the directory at `fileUri`.\n */\nexport async function readDirectoryAsync(fileUri) {\n if (!ExponentFileSystem.readDirectoryAsync) {\n throw new UnavailabilityError('expo-file-system', 'readDirectoryAsync');\n }\n return await ExponentFileSystem.readDirectoryAsync(fileUri, {});\n}\n/**\n * Gets the available internal disk storage size, in bytes. This returns the free space on the data partition that hosts all of the internal storage for all apps on the device.\n * @return Returns a Promise that resolves to the number of bytes available on the internal disk, or JavaScript's [`MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\n * if the capacity is greater than 2<sup>53</sup> - 1 bytes.\n */\nexport async function getFreeDiskStorageAsync() {\n if (!ExponentFileSystem.getFreeDiskStorageAsync) {\n throw new UnavailabilityError('expo-file-system', 'getFreeDiskStorageAsync');\n }\n return await ExponentFileSystem.getFreeDiskStorageAsync();\n}\n/**\n * Gets total internal disk storage size, in bytes. This is the total capacity of the data partition that hosts all the internal storage for all apps on the device.\n * @return Returns a Promise that resolves to a number that specifies the total internal disk storage capacity in bytes, or JavaScript's [`MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\n * if the capacity is greater than 2<sup>53</sup> - 1 bytes.\n */\nexport async function getTotalDiskCapacityAsync() {\n if (!ExponentFileSystem.getTotalDiskCapacityAsync) {\n throw new UnavailabilityError('expo-file-system', 'getTotalDiskCapacityAsync');\n }\n return await ExponentFileSystem.getTotalDiskCapacityAsync();\n}\n/**\n * Download the contents at a remote URI to a file in the app's file system. The directory for a local file uri must exist prior to calling this function.\n * @param uri The remote URI to download from.\n * @param fileUri The local URI of the file to download to. If there is no file at this URI, a new one is created.\n * If there is a file at this URI, its contents are replaced. The directory for the file must exist.\n * @param options A map of download options represented by [`DownloadOptions`](#downloadoptions) type.\n * @example\n * ```js\n * FileSystem.downloadAsync(\n * 'http://techslides.com/demos/sample-videos/small.mp4',\n * FileSystem.documentDirectory + 'small.mp4'\n * )\n * .then(({ uri }) => {\n * console.log('Finished downloading to ', uri);\n * })\n * .catch(error => {\n * console.error(error);\n * });\n * ```\n * @return Returns a Promise that resolves to a `FileSystemDownloadResult` object.\n */\nexport async function downloadAsync(uri, fileUri, options = {}) {\n if (!ExponentFileSystem.downloadAsync) {\n throw new UnavailabilityError('expo-file-system', 'downloadAsync');\n }\n return await ExponentFileSystem.downloadAsync(uri, fileUri, {\n sessionType: FileSystemSessionType.BACKGROUND,\n ...options,\n });\n}\n/**\n * Upload the contents of the file pointed by `fileUri` to the remote url.\n * @param url The remote URL, where the file will be sent.\n * @param fileUri The local URI of the file to send. The file must exist.\n * @param options A map of download options represented by [`FileSystemUploadOptions`](#filesystemuploadoptions) type.\n * @example\n * **Client**\n *\n * ```js\n * import * as FileSystem from 'expo-file-system';\n *\n * try {\n * const response = await FileSystem.uploadAsync(`http://192.168.0.1:1234/binary-upload`, fileUri, {\n * fieldName: 'file',\n * httpMethod: 'PATCH',\n * uploadType: FileSystem.FileSystemUploadType.BINARY_CONTENT,\n * });\n * console.log(JSON.stringify(response, null, 4));\n * } catch (error) {\n * console.log(error);\n * }\n * ```\n *\n * **Server**\n *\n * Please refer to the \"[Server: Handling multipart requests](#server-handling-multipart-requests)\" example - there is code for a simple Node.js server.\n * @return Returns a Promise that resolves to `FileSystemUploadResult` object.\n */\nexport async function uploadAsync(url, fileUri, options = {}) {\n if (!ExponentFileSystem.uploadAsync) {\n throw new UnavailabilityError('expo-file-system', 'uploadAsync');\n }\n return await ExponentFileSystem.uploadAsync(url, fileUri, {\n sessionType: FileSystemSessionType.BACKGROUND,\n uploadType: FileSystemUploadType.BINARY_CONTENT,\n ...options,\n httpMethod: (options.httpMethod || 'POST').toUpperCase(),\n });\n}\n/**\n * Create a `DownloadResumable` object which can start, pause, and resume a download of contents at a remote URI to a file in the app's file system.\n * > Note: You need to call `downloadAsync()`, on a `DownloadResumable` instance to initiate the download.\n * The `DownloadResumable` object has a callback that provides download progress updates.\n * Downloads can be resumed across app restarts by using `AsyncStorage` to store the `DownloadResumable.savable()` object for later retrieval.\n * The `savable` object contains the arguments required to initialize a new `DownloadResumable` object to resume the download after an app restart.\n * The directory for a local file uri must exist prior to calling this function.\n * @param uri The remote URI to download from.\n * @param fileUri The local URI of the file to download to. If there is no file at this URI, a new one is created.\n * If there is a file at this URI, its contents are replaced. The directory for the file must exist.\n * @param options A map of download options represented by [`DownloadOptions`](#downloadoptions) type.\n * @param callback This function is called on each data write to update the download progress.\n * > **Note**: When the app has been moved to the background, this callback won't be fired until it's moved to the foreground.\n * @param resumeData The string which allows the api to resume a paused download. This is set on the `DownloadResumable` object automatically when a download is paused.\n * When initializing a new `DownloadResumable` this should be `null`.\n */\nexport function createDownloadResumable(uri, fileUri, options, callback, resumeData) {\n return new DownloadResumable(uri, fileUri, options, callback, resumeData);\n}\nexport function createUploadTask(url, fileUri, options, callback) {\n return new UploadTask(url, fileUri, options, callback);\n}\nfunction isUploadProgressData(data) {\n return 'totalBytesSent' in data;\n}\nexport class FileSystemCancellableNetworkTask {\n _uuid = uuidv4();\n taskWasCanceled = false;\n emitter = new EventEmitter(ExponentFileSystem);\n subscription;\n // @docsMissing\n async cancelAsync() {\n if (!ExponentFileSystem.networkTaskCancelAsync) {\n throw new UnavailabilityError('expo-file-system', 'networkTaskCancelAsync');\n }\n this.removeSubscription();\n this.taskWasCanceled = true;\n return await ExponentFileSystem.networkTaskCancelAsync(this.uuid);\n }\n isTaskCancelled() {\n if (this.taskWasCanceled) {\n console.warn('This task was already canceled.');\n return true;\n }\n return false;\n }\n get uuid() {\n return this._uuid;\n }\n addSubscription() {\n if (this.subscription) {\n return;\n }\n this.subscription = this.emitter.addListener(this.getEventName(), (event) => {\n if (event.uuid === this.uuid) {\n const callback = this.getCallback();\n if (callback) {\n if (isUploadProgressData(event.data)) {\n const data = {\n ...event.data,\n get totalByteSent() {\n console.warn('Key \"totalByteSent\" in File System UploadProgressData is deprecated and will be removed in SDK 49, use \"totalBytesSent\" instead');\n return this.totalBytesSent;\n },\n };\n return callback(data);\n }\n callback(event.data);\n }\n }\n });\n }\n removeSubscription() {\n if (!this.subscription) {\n return;\n }\n this.emitter.removeSubscription(this.subscription);\n this.subscription = null;\n }\n}\nexport class UploadTask extends FileSystemCancellableNetworkTask {\n url;\n fileUri;\n callback;\n options;\n constructor(url, fileUri, options, callback) {\n super();\n this.url = url;\n this.fileUri = fileUri;\n this.callback = callback;\n const httpMethod = (options?.httpMethod?.toUpperCase() ||\n 'POST');\n this.options = {\n sessionType: FileSystemSessionType.BACKGROUND,\n uploadType: FileSystemUploadType.BINARY_CONTENT,\n ...options,\n httpMethod,\n };\n }\n getEventName() {\n return 'expo-file-system.uploadProgress';\n }\n getCallback() {\n return this.callback;\n }\n // @docsMissing\n async uploadAsync() {\n if (!ExponentFileSystem.uploadTaskStartAsync) {\n throw new UnavailabilityError('expo-file-system', 'uploadTaskStartAsync');\n }\n if (this.isTaskCancelled()) {\n return;\n }\n this.addSubscription();\n const result = await ExponentFileSystem.uploadTaskStartAsync(this.url, this.fileUri, this.uuid, this.options);\n this.removeSubscription();\n return result;\n }\n}\nexport class DownloadResumable extends FileSystemCancellableNetworkTask {\n url;\n _fileUri;\n options;\n callback;\n resumeData;\n constructor(url, _fileUri, options = {}, callback, resumeData) {\n super();\n this.url = url;\n this._fileUri = _fileUri;\n this.options = options;\n this.callback = callback;\n this.resumeData = resumeData;\n }\n get fileUri() {\n return this._fileUri;\n }\n getEventName() {\n return 'expo-file-system.downloadProgress';\n }\n getCallback() {\n return this.callback;\n }\n /**\n * Download the contents at a remote URI to a file in the app's file system.\n * @return Returns a Promise that resolves to `FileSystemDownloadResult` object, or to `undefined` when task was cancelled.\n */\n async downloadAsync() {\n if (!ExponentFileSystem.downloadResumableStartAsync) {\n throw new UnavailabilityError('expo-file-system', 'downloadResumableStartAsync');\n }\n if (this.isTaskCancelled()) {\n return;\n }\n this.addSubscription();\n return await ExponentFileSystem.downloadResumableStartAsync(this.url, this._fileUri, this.uuid, this.options, this.resumeData);\n }\n /**\n * Pause the current download operation. `resumeData` is added to the `DownloadResumable` object after a successful pause operation.\n * Returns an object that can be saved with `AsyncStorage` for future retrieval (the same object that is returned from calling `FileSystem.DownloadResumable.savable()`).\n * @return Returns a Promise that resolves to `DownloadPauseState` object.\n */\n async pauseAsync() {\n if (!ExponentFileSystem.downloadResumablePauseAsync) {\n throw new UnavailabilityError('expo-file-system', 'downloadResumablePauseAsync');\n }\n if (this.isTaskCancelled()) {\n return {\n fileUri: this._fileUri,\n options: this.options,\n url: this.url,\n };\n }\n const pauseResult = await ExponentFileSystem.downloadResumablePauseAsync(this.uuid);\n this.removeSubscription();\n if (pauseResult) {\n this.resumeData = pauseResult.resumeData;\n return this.savable();\n }\n else {\n throw new Error('Unable to generate a savable pause state');\n }\n }\n /**\n * Resume a paused download operation.\n * @return Returns a Promise that resolves to `FileSystemDownloadResult` object, or to `undefined` when task was cancelled.\n */\n async resumeAsync() {\n if (!ExponentFileSystem.downloadResumableStartAsync) {\n throw new UnavailabilityError('expo-file-system', 'downloadResumableStartAsync');\n }\n if (this.isTaskCancelled()) {\n return;\n }\n this.addSubscription();\n return await ExponentFileSystem.downloadResumableStartAsync(this.url, this.fileUri, this.uuid, this.options, this.resumeData);\n }\n /**\n * Method to get the object which can be saved with `AsyncStorage` for future retrieval.\n * @returns Returns object in shape of `DownloadPauseState` type.\n */\n savable() {\n return {\n url: this.url,\n fileUri: this.fileUri,\n options: this.options,\n resumeData: this.resumeData,\n };\n }\n}\nconst baseReadAsStringAsync = readAsStringAsync;\nconst baseWriteAsStringAsync = writeAsStringAsync;\nconst baseDeleteAsync = deleteAsync;\nconst baseMoveAsync = moveAsync;\nconst baseCopyAsync = copyAsync;\n/**\n * The `StorageAccessFramework` is a namespace inside of the `expo-file-system` module, which encapsulates all functions which can be used with [SAF URIs](#saf-uri).\n * You can read more about SAF in the [Android documentation](https://developer.android.com/guide/topics/providers/document-provider).\n *\n * @example\n * # Basic Usage\n *\n * ```ts\n * import { StorageAccessFramework } from 'expo-file-system';\n *\n * // Requests permissions for external directory\n * const permissions = await StorageAccessFramework.requestDirectoryPermissionsAsync();\n *\n * if (permissions.granted) {\n * // Gets SAF URI from response\n * const uri = permissions.directoryUri;\n *\n * // Gets all files inside of selected directory\n * const files = await StorageAccessFramework.readDirectoryAsync(uri);\n * alert(`Files inside ${uri}:\\n\\n${JSON.stringify(files)}`);\n * }\n * ```\n *\n * # Migrating an album\n *\n * ```ts\n * import * as MediaLibrary from 'expo-media-library';\n * import * as FileSystem from 'expo-file-system';\n * const { StorageAccessFramework } = FileSystem;\n *\n * async function migrateAlbum(albumName: string) {\n * // Gets SAF URI to the album\n * const albumUri = StorageAccessFramework.getUriForDirectoryInRoot(albumName);\n *\n * // Requests permissions\n * const permissions = await StorageAccessFramework.requestDirectoryPermissionsAsync(albumUri);\n * if (!permissions.granted) {\n * return;\n * }\n *\n * const permittedUri = permissions.directoryUri;\n * // Checks if users selected the correct folder\n * if (!permittedUri.includes(albumName)) {\n * return;\n * }\n *\n * const mediaLibraryPermissions = await MediaLibrary.requestPermissionsAsync();\n * if (!mediaLibraryPermissions.granted) {\n * return;\n * }\n *\n * // Moves files from external storage to internal storage\n * await StorageAccessFramework.moveAsync({\n * from: permittedUri,\n * to: FileSystem.documentDirectory!,\n * });\n *\n * const outputDir = FileSystem.documentDirectory! + albumName;\n * const migratedFiles = await FileSystem.readDirectoryAsync(outputDir);\n *\n * // Creates assets from local files\n * const [newAlbumCreator, ...assets] = await Promise.all(\n * migratedFiles.map<Promise<MediaLibrary.Asset>>(\n * async fileName => await MediaLibrary.createAssetAsync(outputDir + '/' + fileName)\n * )\n * );\n *\n * // Album was empty\n * if (!newAlbumCreator) {\n * return;\n * }\n *\n * // Creates a new album in the scoped directory\n * const newAlbum = await MediaLibrary.createAlbumAsync(albumName, newAlbumCreator, false);\n * if (assets.length) {\n * await MediaLibrary.addAssetsToAlbumAsync(assets, newAlbum, false);\n * }\n * }\n * ```\n * @platform Android\n */\nexport var StorageAccessFramework;\n(function (StorageAccessFramework) {\n /**\n * Gets a [SAF URI](#saf-uri) pointing to a folder in the Android root directory. You can use this function to get URI for\n * `StorageAccessFramework.requestDirectoryPermissionsAsync()` when you trying to migrate an album. In that case, the name of the album is the folder name.\n * @param folderName The name of the folder which is located in the Android root directory.\n * @return Returns a [SAF URI](#saf-uri) to a folder.\n */\n function getUriForDirectoryInRoot(folderName) {\n return `content://com.android.externalstorage.documents/tree/primary:${folderName}/document/primary:${folderName}`;\n }\n StorageAccessFramework.getUriForDirectoryInRoot = getUriForDirectoryInRoot;\n /**\n * Allows users to select a specific directory, granting your app access to all of the files and sub-directories within that directory.\n * @param initialFileUrl The [SAF URI](#saf-uri) of the directory that the file picker should display when it first loads.\n * If URI is incorrect or points to a non-existing folder, it's ignored.\n * @platform android 11+\n * @return Returns a Promise that resolves to `FileSystemRequestDirectoryPermissionsResult` object.\n */\n async function requestDirectoryPermissionsAsync(initialFileUrl = null) {\n if (!ExponentFileSystem.requestDirectoryPermissionsAsync) {\n throw new UnavailabilityError('expo-file-system', 'StorageAccessFramework.requestDirectoryPermissionsAsync');\n }\n return await ExponentFileSystem.requestDirectoryPermissionsAsync(initialFileUrl);\n }\n StorageAccessFramework.requestDirectoryPermissionsAsync = requestDirectoryPermissionsAsync;\n /**\n * Enumerate the contents of a directory.\n * @param dirUri [SAF](#saf-uri) URI to the directory.\n * @return A Promise that resolves to an array of strings, each containing the full [SAF URI](#saf-uri) of a file or directory contained in the directory at `fileUri`.\n */\n async function readDirectoryAsync(dirUri) {\n if (!ExponentFileSystem.readSAFDirectoryAsync) {\n throw new UnavailabilityError('expo-file-system', 'StorageAccessFramework.readDirectoryAsync');\n }\n return await ExponentFileSystem.readSAFDirectoryAsync(dirUri, {});\n }\n StorageAccessFramework.readDirectoryAsync = readDirectoryAsync;\n /**\n * Creates a new empty directory.\n * @param parentUri The [SAF](#saf-uri) URI to the parent directory.\n * @param dirName The name of new directory.\n * @return A Promise that resolves to a [SAF URI](#saf-uri) to the created directory.\n */\n async function makeDirectoryAsync(parentUri, dirName) {\n if (!ExponentFileSystem.makeSAFDirectoryAsync) {\n throw new UnavailabilityError('expo-file-system', 'StorageAccessFramework.makeDirectoryAsync');\n }\n return await ExponentFileSystem.makeSAFDirectoryAsync(parentUri, dirName);\n }\n StorageAccessFramework.makeDirectoryAsync = makeDirectoryAsync;\n /**\n * Creates a new empty file.\n * @param parentUri The [SAF](#saf-uri) URI to the parent directory.\n * @param fileName The name of new file **without the extension**.\n * @param mimeType The MIME type of new file.\n * @return A Promise that resolves to a [SAF URI](#saf-uri) to the created file.\n */\n async function createFileAsync(parentUri, fileName, mimeType) {\n if (!ExponentFileSystem.createSAFFileAsync) {\n throw new UnavailabilityError('expo-file-system', 'StorageAccessFramework.createFileAsync');\n }\n return await ExponentFileSystem.createSAFFileAsync(parentUri, fileName, mimeType);\n }\n StorageAccessFramework.createFileAsync = createFileAsync;\n /**\n * Alias for [`writeAsStringAsync`](#filesystemwriteasstringasyncfileuri-contents-options) method.\n */\n StorageAccessFramework.writeAsStringAsync = baseWriteAsStringAsync;\n /**\n * Alias for [`readAsStringAsync`](#filesystemreadasstringasyncfileuri-options) method.\n */\n StorageAccessFramework.readAsStringAsync = baseReadAsStringAsync;\n /**\n * Alias for [`deleteAsync`](#filesystemdeleteasyncfileuri-options) method.\n */\n StorageAccessFramework.deleteAsync = baseDeleteAsync;\n /**\n * Alias for [`moveAsync`](#filesystemmoveasyncoptions) method.\n */\n StorageAccessFramework.moveAsync = baseMoveAsync;\n /**\n * Alias fro [`copyAsync`](#filesystemcopyasyncoptions) method.\n */\n StorageAccessFramework.copyAsync = baseCopyAsync;\n})(StorageAccessFramework || (StorageAccessFramework = {}));\n//# sourceMappingURL=FileSystem.js.map","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","import { NativeModulesProxy } from 'expo-modules-core';\nimport ExponentFileSystemShim from './ExponentFileSystemShim';\nlet platformModule;\nif (NativeModulesProxy.ExponentFileSystem) {\n platformModule = NativeModulesProxy.ExponentFileSystem;\n}\nelse {\n platformModule = ExponentFileSystemShim;\n}\nexport default platformModule;\n//# sourceMappingURL=ExponentFileSystem.js.map","const platformModule = {\n get name() {\n return 'ExponentFileSystem';\n },\n get documentDirectory() {\n return null;\n },\n get cacheDirectory() {\n return null;\n },\n get bundledAssets() {\n return null;\n },\n get bundleDirectory() {\n return null;\n },\n addListener(eventName) { },\n removeListeners(count) { },\n};\nexport default platformModule;\n//# sourceMappingURL=ExponentFileSystemShim.js.map","/**\n * These values can be used to define how sessions work on iOS.\n * @platform ios\n */\nexport var FileSystemSessionType;\n(function (FileSystemSessionType) {\n /**\n * Using this mode means that the downloading/uploading session on the native side will work even if the application is moved to background.\n * If the task completes while the application is in background, the Promise will be either resolved immediately or (if the application execution has already been stopped) once the app is moved to foreground again.\n * > Note: The background session doesn't fail if the server or your connection is down. Rather, it continues retrying until the task succeeds or is canceled manually.\n */\n FileSystemSessionType[FileSystemSessionType[\"BACKGROUND\"] = 0] = \"BACKGROUND\";\n /**\n * Using this mode means that downloading/uploading session on the native side will be terminated once the application becomes inactive (e.g. when it goes to background).\n * Bringing the application to foreground again would trigger Promise rejection.\n */\n FileSystemSessionType[FileSystemSessionType[\"FOREGROUND\"] = 1] = \"FOREGROUND\";\n})(FileSystemSessionType || (FileSystemSessionType = {}));\nexport var FileSystemUploadType;\n(function (FileSystemUploadType) {\n /**\n * The file will be sent as a request's body. The request can't contain additional data.\n */\n FileSystemUploadType[FileSystemUploadType[\"BINARY_CONTENT\"] = 0] = \"BINARY_CONTENT\";\n /**\n * An [RFC 2387-compliant](https://www.ietf.org/rfc/rfc2387.txt) request body. The provided file will be encoded into HTTP request.\n * This request can contain additional data represented by [`UploadOptionsMultipart`](#uploadoptionsmultipart) type.\n */\n FileSystemUploadType[FileSystemUploadType[\"MULTIPART\"] = 1] = \"MULTIPART\";\n})(FileSystemUploadType || (FileSystemUploadType = {}));\n/* eslint-enable */\n/**\n * These values can be used to define how file system data is read / written.\n */\nexport var EncodingType;\n(function (EncodingType) {\n /**\n * Standard encoding format.\n */\n EncodingType[\"UTF8\"] = \"utf8\";\n /**\n * Binary, radix-64 representation.\n */\n EncodingType[\"Base64\"] = \"base64\";\n})(EncodingType || (EncodingType = {}));\n/* eslint-enable */\n//# sourceMappingURL=FileSystem.types.js.map","import URL from 'url-parse';\nexport function getFilename(url) {\n const { pathname } = new URL(url, {});\n return pathname.substring(pathname.lastIndexOf('/') + 1);\n}\nexport function getFileExtension(url) {\n const filename = getFilename(url);\n const dotIndex = filename.lastIndexOf('.');\n // Ignore leading dots for hidden files\n return dotIndex > 0 ? filename.substring(dotIndex) : '';\n}\n/**\n * Returns the base URL from a manifest's URL. For example, given a manifest hosted at\n * https://example.com/app/manifest.json, the base URL would be https://example.com/app/. Query\n * parameters and fragments also are removed.\n *\n * For an Expo-hosted project with a manifest hosted at https://exp.host/@user/project/index.exp, the\n * base URL would be https://exp.host/@user/project.\n *\n * We also normalize the \"exp\" protocol to \"http\" to handle internal URLs with the Expo schemes used\n * to tell the OS to open the URLs in the the Expo client.\n */\nexport function getManifestBaseUrl(manifestUrl) {\n const urlObject = new URL(manifestUrl, {});\n // Change the scheme to http(s) if it is exp(s)\n if (urlObject.protocol === 'exp:') {\n urlObject.set('protocol', 'http:');\n }\n else if (urlObject.protocol === 'exps:') {\n urlObject.set('protocol', 'https:');\n }\n // Trim filename, query parameters, and fragment, if any\n const directory = urlObject.pathname.substring(0, urlObject.pathname.lastIndexOf('/') + 1);\n urlObject.set('pathname', directory);\n urlObject.set('query', '');\n urlObject.set('hash', '');\n return urlObject.href;\n}\n//# sourceMappingURL=AssetUris.js.map","/* eslint-env browser */\nimport { Platform } from 'expo-modules-core';\nimport { getFilename } from './AssetUris';\nexport function isImageType(type) {\n return /^(jpeg|jpg|gif|png|bmp|webp|heic)$/i.test(type);\n}\nexport function getImageInfoAsync(url) {\n if (!Platform.isDOMAvailable) {\n return Promise.resolve({ name: getFilename(url), width: 0, height: 0 });\n }\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onerror = reject;\n img.onload = () => {\n resolve({\n name: getFilename(url),\n width: img.naturalWidth,\n height: img.naturalHeight,\n });\n };\n img.src = url;\n });\n}\n//# sourceMappingURL=ImageAssets.js.map","import Constants from 'expo-constants';\nimport * as FileSystem from 'expo-file-system';\nimport { getLocalAssets } from './PlatformUtils';\n// Fast lookup check if assets are available in the local bundle in managed apps\nconst bundledAssets = new Set(FileSystem.bundledAssets || []);\n// localAssets are provided by the expo-updates module\nconst localAssets = getLocalAssets();\n/**\n * Returns the URI of a local asset from its hash, or null if the asset is not available locally\n */\nexport function getLocalAssetUri(hash, type) {\n const localAssetsKey = hash;\n const legacyLocalAssetsKey = `${hash}.${type ?? ''}`;\n switch (true) {\n case localAssetsKey in localAssets: {\n return localAssets[localAssetsKey];\n }\n case legacyLocalAssetsKey in localAssets: {\n // legacy updates store assets with an extension\n return localAssets[legacyLocalAssetsKey];\n }\n case !__DEV__: {\n // check legacy location in case we're in Expo client/managed workflow\n // TODO(eric): remove this once bundledAssets is no longer exported from FileSystem\n const assetName = `asset_${hash}${type ? `.${type}` : ''}`;\n if (Constants.appOwnership !== 'standalone' || !bundledAssets.has(assetName)) {\n return null;\n }\n return `${FileSystem.bundleDirectory}${assetName}`;\n }\n default:\n return null;\n }\n}\n//# sourceMappingURL=LocalAssets.js.map","import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetSource';\nexport default resolveAssetSource;\nexport * from 'react-native/Libraries/Image/resolveAssetSource'; // eslint-disable-line import/export\n//# sourceMappingURL=resolveAssetSource.js.map","import { useEffect, useState } from 'react';\nimport { Asset } from './Asset';\n// @needsAudit\n/**\n * Downloads and stores one or more assets locally.\n * After the assets are loaded, this hook returns a list of asset instances.\n * If something went wrong when loading the assets, an error is returned.\n *\n * > Note, the assets are not \"reloaded\" when you dynamically change the asset list.\n *\n * @return Returns an array containing:\n * - on the first position, a list of all loaded assets. If they aren't loaded yet, this value is\n * `undefined`.\n * - on the second position, an error which encountered when loading the assets. If there was no\n * error, this value is `undefined`.\n *\n * @example\n * ```tsx\n * const [assets, error] = useAssets([require('path/to/asset.jpg'), require('path/to/other.png')]);\n *\n * return assets ? <Image source={assets[0]} /> : null;\n * ```\n */\nexport function useAssets(moduleIds) {\n const [assets, setAssets] = useState();\n const [error, setError] = useState();\n useEffect(() => {\n Asset.loadAsync(moduleIds).then(setAssets).catch(setError);\n }, []);\n return [assets, error];\n}\n//# sourceMappingURL=AssetHooks.js.map","export * from './Font';\nexport { useFonts } from './FontHooks';\n//# sourceMappingURL=index.js.map","import { CodedError, UnavailabilityError } from 'expo-modules-core';\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay } from './Font.types';\nimport { getAssetForSource, loadSingleFontAsync, fontFamilyNeedsScoping, getNativeFontName, } from './FontLoader';\nconst loaded = {};\nconst loadPromises = {};\n// @needsAudit\n// note(brentvatne): at some point we may want to warn if this is called outside of a managed app.\n/**\n * Used to transform font family names to the scoped name. This does not need to\n * be called in standalone or bare apps but it will return unscoped font family\n * names if it is called in those contexts.\n *\n * @param fontFamily Name of font to process.\n * @returns Returns a name processed for use with the [current workflow](https://docs.expo.dev/introduction/managed-vs-bare/).\n */\nexport function processFontFamily(fontFamily) {\n if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n return fontFamily;\n }\n if (!isLoaded(fontFamily)) {\n if (__DEV__) {\n if (isLoading(fontFamily)) {\n console.error(`You started loading the font \"${fontFamily}\", but used it before it finished loading. You need to wait for Font.loadAsync to complete before using the font.`);\n }\n else {\n console.error(`fontFamily \"${fontFamily}\" is not a system font and has not been loaded through Font.loadAsync.\\n\n- If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.\\n\n- If this is a custom font, be sure to load it with Font.loadAsync.`);\n }\n }\n return 'System';\n }\n return `ExpoFont-${getNativeFontName(fontFamily)}`;\n}\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` has finished loading.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @return Returns `true` if the font has fully loaded.\n */\nexport function isLoaded(fontFamily) {\n return fontFamily in loaded;\n}\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` is still being loaded.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @returns Returns `true` if the font is still loading.\n */\nexport function isLoading(fontFamily) {\n return fontFamily in loadPromises;\n}\n// @needsAudit\n/**\n * Highly efficient method for loading fonts from static or remote resources which can then be used\n * with the platform's native text elements. In the browser this generates a `@font-face` block in\n * a shared style sheet for fonts. No CSS is needed to use this method.\n *\n * @param fontFamilyOrFontMap string or map of values that can be used as the [`fontFamily`](https://reactnative.dev/docs/text#style)\n * style prop with React Native Text elements.\n * @param source the font asset that should be loaded into the `fontFamily` namespace.\n *\n * @return Returns a promise that fulfils when the font has loaded. Often you may want to wrap the\n * method in a `try/catch/finally` to ensure the app continues if the font fails to load.\n */\nexport async function loadAsync(fontFamilyOrFontMap, source) {\n if (typeof fontFamilyOrFontMap === 'object') {\n if (source) {\n throw new CodedError(`ERR_FONT_API`, `No fontFamily can be used for the provided source: ${source}. The second argument of \\`loadAsync()\\` can only be used with a \\`string\\` value as the first argument.`);\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => loadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n return await loadFontInNamespaceAsync(fontFamilyOrFontMap, source);\n}\nasync function loadFontInNamespaceAsync(fontFamily, source) {\n if (!source) {\n throw new CodedError(`ERR_FONT_SOURCE`, `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`);\n }\n if (loaded[fontFamily]) {\n return;\n }\n if (loadPromises.hasOwnProperty(fontFamily)) {\n return loadPromises[fontFamily];\n }\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n const asset = getAssetForSource(source);\n loadPromises[fontFamily] = (async () => {\n try {\n await loadSingleFontAsync(fontFamily, asset);\n loaded[fontFamily] = true;\n }\n finally {\n delete loadPromises[fontFamily];\n }\n })();\n await loadPromises[fontFamily];\n}\n// @needsAudit\n/**\n * Unloads all the custom fonts. This is used for testing.\n */\nexport async function unloadAllAsync() {\n if (!ExpoFontLoader.unloadAllAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n }\n if (Object.keys(loadPromises).length) {\n throw new CodedError(`ERR_UNLOAD`, `Cannot unload fonts while they're still loading: ${Object.keys(loadPromises).join(', ')}`);\n }\n for (const fontFamily of Object.keys(loaded)) {\n delete loaded[fontFamily];\n }\n await ExpoFontLoader.unloadAllAsync();\n}\n// @needsAudit\n/**\n * Unload custom fonts matching the `fontFamily`s and display values provided.\n * Because fonts are automatically unloaded on every platform this is mostly used for testing.\n *\n * @param fontFamilyOrFontMap The name or names of the custom fonts that will be unloaded.\n * @param options When `fontFamilyOrFontMap` is a string, this should be the font source used to load\n * the custom font originally.\n */\nexport async function unloadAsync(fontFamilyOrFontMap, options) {\n if (!ExpoFontLoader.unloadAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAsync');\n }\n if (typeof fontFamilyOrFontMap === 'object') {\n if (options) {\n throw new CodedError(`ERR_FONT_API`, `No fontFamily can be used for the provided options: ${options}. The second argument of \\`unloadAsync()\\` can only be used with a \\`string\\` value as the first argument.`);\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => unloadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n return await unloadFontInNamespaceAsync(fontFamilyOrFontMap, options);\n}\nasync function unloadFontInNamespaceAsync(fontFamily, options) {\n if (!loaded[fontFamily]) {\n return;\n }\n else {\n delete loaded[fontFamily];\n }\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n const nativeFontName = getNativeFontName(fontFamily);\n if (!nativeFontName) {\n throw new CodedError(`ERR_FONT_FAMILY`, `Cannot unload an empty name`);\n }\n await ExpoFontLoader.unloadAsync(nativeFontName, options);\n}\nexport { FontDisplay };\n//# sourceMappingURL=Font.js.map","import { NativeModulesProxy } from 'expo-modules-core';\nexport default NativeModulesProxy.ExpoFontLoader;\n//# sourceMappingURL=ExpoFontLoader.js.map","// @needsAudit\n/**\n * Sets the [font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display)\n * for a given typeface. The default font value on web is `FontDisplay.AUTO`.\n * Even though setting the `fontDisplay` does nothing on native platforms, the default behavior\n * emulates `FontDisplay.SWAP` on flagship devices like iOS, Samsung, Pixel, etc. Default\n * functionality varies on One Plus devices. In the browser this value is set in the generated\n * `@font-face` CSS block and not as a style property meaning you cannot dynamically change this\n * value based on the element it's used in.\n * @platform web\n */\nexport var FontDisplay;\n(function (FontDisplay) {\n /**\n * __(Default)__ The font display strategy is defined by the user agent or platform.\n * This generally defaults to the text being invisible until the font is loaded.\n * Good for buttons or banners that require a specific treatment.\n */\n FontDisplay[\"AUTO\"] = \"auto\";\n /**\n * Fallback text is rendered immediately with a default font while the desired font is loaded.\n * This is good for making the content appear to load instantly and is usually preferred.\n */\n FontDisplay[\"SWAP\"] = \"swap\";\n /**\n * The text will be invisible until the font has loaded. If the font fails to load then nothing\n * will appear - it's best to turn this off when debugging missing text.\n */\n FontDisplay[\"BLOCK\"] = \"block\";\n /**\n * Splits the behavior between `SWAP` and `BLOCK`.\n * There will be a [100ms timeout](https://developers.google.com/web/updates/2016/02/font-display?hl=en)\n * where the text with a custom font is invisible, after that the text will either swap to the\n * styled text or it'll show the unstyled text and continue to load the custom font. This is good\n * for buttons that need a custom font but should also be quickly available to screen-readers.\n */\n FontDisplay[\"FALLBACK\"] = \"fallback\";\n /**\n * This works almost identically to `FALLBACK`, the only difference is that the browser will\n * decide to load the font based on slow connection speed or critical resource demand.\n */\n FontDisplay[\"OPTIONAL\"] = \"optional\";\n})(FontDisplay || (FontDisplay = {}));\n//# sourceMappingURL=Font.types.js.map","import { Asset } from 'expo-asset';\nimport Constants from 'expo-constants';\nimport { CodedError } from 'expo-modules-core';\nimport { Platform } from 'react-native';\nimport ExpoFontLoader from './ExpoFontLoader';\nconst isInClient = Constants.appOwnership === 'expo';\nconst isInIOSStandalone = Constants.appOwnership === 'standalone' && Platform.OS === 'ios';\nexport function fontFamilyNeedsScoping(name) {\n return ((isInClient || isInIOSStandalone) &&\n !Constants.systemFonts.includes(name) &&\n name !== 'System' &&\n !name.includes(Constants.sessionId));\n}\nexport function getAssetForSource(source) {\n if (source instanceof Asset) {\n return source;\n }\n if (typeof source === 'string') {\n return Asset.fromURI(source);\n }\n else if (typeof source === 'number') {\n return Asset.fromModule(source);\n }\n else if (typeof source === 'object' && typeof source.uri !== 'undefined') {\n return getAssetForSource(source.uri);\n }\n // @ts-ignore Error: Type 'string' is not assignable to type 'Asset'\n // We can't have a string here, we would have thrown an error if !isWeb\n // or returned Asset.fromModule if isWeb.\n return source;\n}\nexport async function loadSingleFontAsync(name, input) {\n const asset = input;\n if (!asset.downloadAsync) {\n throw new CodedError(`ERR_FONT_SOURCE`, '`loadSingleFontAsync` expected resource of type `Asset` from expo-asset on native');\n }\n await asset.downloadAsync();\n if (!asset.downloaded) {\n throw new CodedError(`ERR_DOWNLOAD`, `Failed to download asset for font \"${name}\"`);\n }\n await ExpoFontLoader.loadAsync(getNativeFontName(name), asset.localUri);\n}\nexport function getNativeFontName(name) {\n if (fontFamilyNeedsScoping(name)) {\n return `${Constants.sessionId}-${name}`;\n }\n else {\n return name;\n }\n}\n//# sourceMappingURL=FontLoader.js.map","import { useEffect, useState } from 'react';\nimport { loadAsync } from './Font';\n// @needsAudit\n/**\n * ```ts\n * const [loaded, error] = useFonts({ ... });\n * ```\n * Load a map of fonts with [`loadAsync`](#loadasync). This returns a `boolean` if the fonts are\n * loaded and ready to use. It also returns an error if something went wrong, to use in development.\n *\n * > Note, the fonts are not \"reloaded\" when you dynamically change the font map.\n *\n * @param map A map of `fontFamily`s to [`FontSource`](#fontsource)s. After loading the font you can\n * use the key in the `fontFamily` style prop of a `Text` element.\n *\n * @return\n * - __loaded__ (`boolean`) - A boolean to detect if the font for `fontFamily` has finished\n * loading.\n * - __error__ (`Error | null`) - An error encountered when loading the fonts.\n */\nexport function useFonts(map) {\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(null);\n useEffect(() => {\n loadAsync(map)\n .then(() => setLoaded(true))\n .catch(setError);\n }, []);\n return [loaded, error];\n}\n//# sourceMappingURL=FontHooks.js.map","let isErrorHandlingEnabled = true;\nconst developmentBuildMessage = `If you're trying to use a module that is not supported in Expo Go, you need to create a development build of your app. See https://docs.expo.dev/development/introduction/ for more info.`;\nfunction customizeUnavailableMessage(error) {\n error.message += '\\n\\n' + developmentBuildMessage;\n}\nfunction customizeModuleIsMissingMessage(error) {\n error.message = `Your JavaScript code tried to access a native module that doesn't exist. \n\n${developmentBuildMessage}`;\n}\nfunction customizeError(error) {\n if ('code' in error && error.code === 'ERR_UNAVAILABLE') {\n customizeUnavailableMessage(error);\n }\n else if (error.message.includes('Native module cannot be null') || // RN 0.64 and below message\n error.message.includes('`new NativeEventEmitter()` requires a non-null argument.') // RN 0.65+ message\n ) {\n customizeModuleIsMissingMessage(error);\n }\n}\nfunction errorHandler(originalHandler, error, isFatal) {\n if (error instanceof Error) {\n customizeError(error);\n }\n originalHandler(error, isFatal);\n}\nexport function createErrorHandler(originalHandler) {\n return (error, isFatal) => {\n if (isErrorHandlingEnabled) {\n errorHandler(originalHandler, error, isFatal);\n return;\n }\n originalHandler(error, isFatal);\n };\n}\nexport function disableErrorHandling() {\n isErrorHandlingEnabled = false;\n}\n//# sourceMappingURL=ExpoErrorManager.js.map","// NOTE(EvanBacon): We need this noop because Metro doesn't support optional dependencies.\n// `react-dom` is not required and therefore needs to be dodged using platform extensions on native.\nexport function createRoot() {\n return null;\n}\n//# sourceMappingURL=createRoot.native.js.map","import 'react-native-gesture-handler'\nimport { createAppContainer } from \"react-navigation\"\nimport { createStackNavigator } from \"react-navigation-stack\"\n\nimport Splash from \"./screens/Splash\"\nimport QuizIndex from \"./screens/QuizIndex\"\nimport Quiz from \"./screens/Quiz\"\nimport TrueFalse from \"./screens/TrueFalse\"\nimport Exam from \"./screens/Exam\"\nimport Results from \"./screens/Results\"\nimport ResultsTrueFalse from \"./screens/ResultsTrueFalse\"\nimport Recap from \"./screens/Recap\"\nimport RecapTrueFalse from \"./screens/RecapTrueFalse\"\nimport Info from \"./screens/Info\"\nimport Setup from \"./screens/Setup\"\nimport Dictionary from \"./screens/Dictionary\"\nimport { colors, texts} from \"./components/Variables\"\n\nconst MainStack = createStackNavigator({\n Splash: {\n screen: Splash,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n RecapTrueFalse: {\n screen: RecapTrueFalse,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n Recap: {\n screen: Recap,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n Results: {\n screen: Results,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n ResultsTrueFalse: {\n screen: ResultsTrueFalse,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n Info: {\n screen: Info,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n Dictionary: {\n screen: Dictionary,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n QuizIndex: {\n screen: QuizIndex,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n Quiz: {\n screen: Quiz,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n TrueFalse: {\n screen: TrueFalse,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n// headerTitle: navigation.getParam(\"title\"),\n// headerTintColor: colors.white,\n// headerStyle: {\n// backgroundColor: navigation.getParam(\"color\"),\n// borderBottomColor: navigation.getParam(\"color\")\n// }\n })\n },\n Exam: {\n screen: Exam,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n },\n Setup: {\n screen: Setup,\n navigationOptions: ({ navigation }) => ({\n headerShown: false\n })\n }\n})\n\nexport default createAppContainer(MainStack)\n","import { initialize } from './init';\n\nexport { Directions } from './Directions';\nexport { State } from './State';\nexport { default as gestureHandlerRootHOC } from './gestureHandlerRootHOC';\nexport { default as GestureHandlerRootView } from './GestureHandlerRootView';\nexport type {\n // event types\n GestureEvent,\n HandlerStateChangeEvent,\n // event payloads types\n GestureEventPayload,\n HandlerStateChangeEventPayload,\n // pointer events\n GestureTouchEvent,\n TouchData,\n // new api event types\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from './handlers/gestureHandlerCommon';\nexport type { GestureType } from './handlers/gestures/gesture';\nexport type {\n TapGestureHandlerEventPayload,\n TapGestureHandlerProps,\n} from './handlers/TapGestureHandler';\nexport type {\n ForceTouchGestureHandlerEventPayload,\n ForceTouchGestureHandlerProps,\n} from './handlers/ForceTouchGestureHandler';\nexport type { ForceTouchGestureChangeEventPayload } from './handlers/gestures/forceTouchGesture';\nexport type {\n LongPressGestureHandlerEventPayload,\n LongPressGestureHandlerProps,\n} from './handlers/LongPressGestureHandler';\nexport type {\n PanGestureHandlerEventPayload,\n PanGestureHandlerProps,\n} from './handlers/PanGestureHandler';\nexport type { PanGestureChangeEventPayload } from './handlers/gestures/panGesture';\nexport type {\n PinchGestureHandlerEventPayload,\n PinchGestureHandlerProps,\n} from './handlers/PinchGestureHandler';\nexport type { PinchGestureChangeEventPayload } from './handlers/gestures/pinchGesture';\nexport type {\n RotationGestureHandlerEventPayload,\n RotationGestureHandlerProps,\n} from './handlers/RotationGestureHandler';\nexport type {\n FlingGestureHandlerEventPayload,\n FlingGestureHandlerProps,\n} from './handlers/FlingGestureHandler';\nexport { TapGestureHandler } from './handlers/TapGestureHandler';\nexport { ForceTouchGestureHandler } from './handlers/ForceTouchGestureHandler';\nexport { LongPressGestureHandler } from './handlers/LongPressGestureHandler';\nexport { PanGestureHandler } from './handlers/PanGestureHandler';\nexport { PinchGestureHandler } from './handlers/PinchGestureHandler';\nexport { RotationGestureHandler } from './handlers/RotationGestureHandler';\nexport { FlingGestureHandler } from './handlers/FlingGestureHandler';\nexport { default as createNativeWrapper } from './handlers/createNativeWrapper';\nexport type {\n NativeViewGestureHandlerPayload,\n NativeViewGestureHandlerProps,\n} from './handlers/NativeViewGestureHandler';\nexport { GestureDetector } from './handlers/gestures/GestureDetector';\nexport { GestureObjects as Gesture } from './handlers/gestures/gestureObjects';\nexport type { TapGestureType as TapGesture } from './handlers/gestures/tapGesture';\nexport type { PanGestureType as PanGesture } from './handlers/gestures/panGesture';\nexport type { FlingGestureType as FlingGesture } from './handlers/gestures/flingGesture';\nexport type { LongPressGestureType as LongPressGesture } from './handlers/gestures/longPressGesture';\nexport type { PinchGestureType as PinchGesture } from './handlers/gestures/pinchGesture';\nexport type { RotationGestureType as RotationGesture } from './handlers/gestures/rotationGesture';\nexport type { ForceTouchGestureType as ForceTouchGesture } from './handlers/gestures/forceTouchGesture';\nexport type { NativeGestureType as NativeGesture } from './handlers/gestures/nativeGesture';\nexport type { ManualGestureType as ManualGesture } from './handlers/gestures/manualGesture';\nexport type {\n ComposedGestureType as ComposedGesture,\n RaceGestureType as RaceGesture,\n SimultaneousGestureType as SimultaneousGesture,\n ExclusiveGestureType as ExclusiveGesture,\n} from './handlers/gestures/gestureComposition';\nexport type { GestureStateManagerType as GestureStateManager } from './handlers/gestures/gestureStateManager';\nexport { NativeViewGestureHandler } from './handlers/NativeViewGestureHandler';\nexport type {\n RawButtonProps,\n BaseButtonProps,\n RectButtonProps,\n BorderlessButtonProps,\n} from './components/GestureButtons';\nexport {\n RawButton,\n BaseButton,\n RectButton,\n BorderlessButton,\n} from './components/GestureButtons';\nexport {\n TouchableHighlight,\n TouchableNativeFeedback,\n TouchableOpacity,\n TouchableWithoutFeedback,\n} from './components/touchables';\nexport {\n ScrollView,\n Switch,\n TextInput,\n DrawerLayoutAndroid,\n FlatList,\n RefreshControl,\n} from './components/GestureComponents';\nexport type {\n //events\n GestureHandlerGestureEvent,\n GestureHandlerStateChangeEvent,\n //event payloads\n GestureHandlerGestureEventNativeEvent,\n GestureHandlerStateChangeNativeEvent,\n NativeViewGestureHandlerGestureEvent,\n NativeViewGestureHandlerStateChangeEvent,\n TapGestureHandlerGestureEvent,\n TapGestureHandlerStateChangeEvent,\n ForceTouchGestureHandlerGestureEvent,\n ForceTouchGestureHandlerStateChangeEvent,\n LongPressGestureHandlerGestureEvent,\n LongPressGestureHandlerStateChangeEvent,\n PanGestureHandlerGestureEvent,\n PanGestureHandlerStateChangeEvent,\n PinchGestureHandlerGestureEvent,\n PinchGestureHandlerStateChangeEvent,\n RotationGestureHandlerGestureEvent,\n RotationGestureHandlerStateChangeEvent,\n FlingGestureHandlerGestureEvent,\n FlingGestureHandlerStateChangeEvent,\n // handlers props\n NativeViewGestureHandlerProperties,\n TapGestureHandlerProperties,\n LongPressGestureHandlerProperties,\n PanGestureHandlerProperties,\n PinchGestureHandlerProperties,\n RotationGestureHandlerProperties,\n FlingGestureHandlerProperties,\n ForceTouchGestureHandlerProperties,\n // buttons props\n RawButtonProperties,\n BaseButtonProperties,\n RectButtonProperties,\n BorderlessButtonProperties,\n} from './handlers/gestureHandlerTypesCompat';\n\nexport { default as Swipeable } from './components/Swipeable';\nexport type {\n DrawerLayoutProps,\n DrawerPosition,\n DrawerState,\n DrawerType,\n DrawerLockMode,\n DrawerKeyboardDismissMode,\n} from './components/DrawerLayout';\nexport { default as DrawerLayout } from './components/DrawerLayout';\n\nexport { enableExperimentalWebImplementation } from './EnableExperimentalWebImplementation';\n\ninitialize();\n","import { startListening } from './handlers/gestures/eventReceiver';\nimport RNGestureHandlerModule from './RNGestureHandlerModule';\nimport { isFabric } from './utils';\n\nlet fabricInitialized = false;\n\nexport function initialize() {\n startListening();\n}\n\n// since isFabric() may give wrong results before the first render, we call this\n// method during render of GestureHandlerRootView\nexport function maybeInitializeFabric() {\n if (isFabric() && !fabricInitialized) {\n RNGestureHandlerModule.install();\n fabricInitialized = true;\n }\n}\n","import { DeviceEventEmitter, EmitterSubscription } from 'react-native';\nimport { State } from '../../State';\nimport { TouchEventType } from '../../TouchEventType';\nimport {\n GestureTouchEvent,\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\nimport { findHandler, findOldGestureHandler } from '../handlersRegistry';\nimport { BaseGesture } from './gesture';\nimport {\n GestureStateManager,\n GestureStateManagerType,\n} from './gestureStateManager';\n\nlet gestureHandlerEventSubscription: EmitterSubscription | null = null;\nlet gestureHandlerStateChangeEventSubscription: EmitterSubscription | null =\n null;\n\nconst gestureStateManagers: Map<number, GestureStateManagerType> = new Map<\n number,\n GestureStateManagerType\n>();\n\nconst lastUpdateEvent: (GestureUpdateEvent | undefined)[] = [];\n\nfunction isStateChangeEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureStateChangeEvent {\n // @ts-ignore oldState doesn't exist on GestureTouchEvent and that's the point\n return event.oldState != null;\n}\n\nfunction isTouchEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureTouchEvent {\n return event.eventType != null;\n}\n\nexport function onGestureHandlerEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n) {\n const handler = findHandler(event.handlerTag) as BaseGesture<\n Record<string, unknown>\n >;\n\n if (handler) {\n if (isStateChangeEvent(event)) {\n if (\n event.oldState === State.UNDETERMINED &&\n event.state === State.BEGAN\n ) {\n handler.handlers.onBegin?.(event);\n } else if (\n (event.oldState === State.BEGAN ||\n event.oldState === State.UNDETERMINED) &&\n event.state === State.ACTIVE\n ) {\n handler.handlers.onStart?.(event);\n lastUpdateEvent[handler.handlers.handlerTag] = event;\n } else if (event.oldState !== event.state && event.state === State.END) {\n if (event.oldState === State.ACTIVE) {\n handler.handlers.onEnd?.(event, true);\n }\n handler.handlers.onFinalize?.(event, true);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n } else if (\n (event.state === State.FAILED || event.state === State.CANCELLED) &&\n event.oldState !== event.state\n ) {\n if (event.oldState === State.ACTIVE) {\n handler.handlers.onEnd?.(event, false);\n }\n handler.handlers.onFinalize?.(event, false);\n gestureStateManagers.delete(event.handlerTag);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n }\n } else if (isTouchEvent(event)) {\n if (!gestureStateManagers.has(event.handlerTag)) {\n gestureStateManagers.set(\n event.handlerTag,\n GestureStateManager.create(event.handlerTag)\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const manager = gestureStateManagers.get(event.handlerTag)!;\n\n switch (event.eventType) {\n case TouchEventType.TOUCHES_DOWN:\n handler.handlers?.onTouchesDown?.(event, manager);\n break;\n case TouchEventType.TOUCHES_MOVE:\n handler.handlers?.onTouchesMove?.(event, manager);\n break;\n case TouchEventType.TOUCHES_UP:\n handler.handlers?.onTouchesUp?.(event, manager);\n break;\n case TouchEventType.TOUCHES_CANCELLED:\n handler.handlers?.onTouchesCancelled?.(event, manager);\n break;\n }\n } else {\n handler.handlers.onUpdate?.(event);\n\n if (handler.handlers.onChange && handler.handlers.changeEventCalculator) {\n handler.handlers.onChange?.(\n handler.handlers.changeEventCalculator?.(\n event,\n lastUpdateEvent[handler.handlers.handlerTag]\n )\n );\n\n lastUpdateEvent[handler.handlers.handlerTag] = event;\n }\n }\n } else {\n const oldHandler = findOldGestureHandler(event.handlerTag);\n if (oldHandler) {\n const nativeEvent = { nativeEvent: event };\n if (isStateChangeEvent(event)) {\n oldHandler.onGestureStateChange(nativeEvent);\n } else {\n oldHandler.onGestureEvent(nativeEvent);\n }\n return;\n }\n }\n}\n\nexport function startListening() {\n stopListening();\n\n gestureHandlerEventSubscription = DeviceEventEmitter.addListener(\n 'onGestureHandlerEvent',\n onGestureHandlerEvent\n );\n\n gestureHandlerStateChangeEventSubscription = DeviceEventEmitter.addListener(\n 'onGestureHandlerStateChange',\n onGestureHandlerEvent\n );\n}\n\nexport function stopListening() {\n if (gestureHandlerEventSubscription) {\n gestureHandlerEventSubscription.remove();\n gestureHandlerEventSubscription = null;\n }\n\n if (gestureHandlerStateChangeEventSubscription) {\n gestureHandlerStateChangeEventSubscription.remove();\n gestureHandlerStateChangeEventSubscription = null;\n }\n}\n","// TODO use State from RNModule\n\nexport const State = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type State = typeof State[keyof typeof State];\n","export const TouchEventType = {\n UNDETERMINED: 0,\n TOUCHES_DOWN: 1,\n TOUCHES_MOVE: 2,\n TOUCHES_UP: 3,\n TOUCHES_CANCELLED: 4,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type TouchEventType = typeof TouchEventType[keyof typeof TouchEventType];\n","import { isJestEnv } from '../utils';\nimport { GestureType } from './gestures/gesture';\nimport { GestureEvent, HandlerStateChangeEvent } from './gestureHandlerCommon';\n\nexport const handlerIDToTag: Record<string, number> = {};\nconst gestures = new Map<number, GestureType>();\nconst oldHandlers = new Map<number, GestureHandlerCallbacks>();\nconst testIDs = new Map<string, number>();\n\nlet handlerTag = 1;\n\nexport function getNextHandlerTag(): number {\n return handlerTag++;\n}\n\nexport function registerHandler(\n handlerTag: number,\n handler: GestureType,\n testID?: string\n) {\n gestures.set(handlerTag, handler);\n if (isJestEnv() && testID) {\n testIDs.set(testID, handlerTag);\n }\n}\n\nexport function registerOldGestureHandler(\n handlerTag: number,\n handler: GestureHandlerCallbacks\n) {\n oldHandlers.set(handlerTag, handler);\n}\n\nexport function unregisterHandler(handlerTag: number, testID?: string) {\n gestures.delete(handlerTag);\n if (isJestEnv() && testID) {\n testIDs.delete(testID);\n }\n}\n\nexport function findHandler(handlerTag: number) {\n return gestures.get(handlerTag);\n}\n\nexport function findOldGestureHandler(handlerTag: number) {\n return oldHandlers.get(handlerTag);\n}\n\nexport function findHandlerByTestID(testID: string) {\n const handlerTag = testIDs.get(testID);\n if (handlerTag !== undefined) {\n return findHandler(handlerTag) ?? null;\n }\n return null;\n}\n\nexport interface GestureHandlerCallbacks {\n onGestureEvent: (event: GestureEvent<any>) => void;\n onGestureStateChange: (event: HandlerStateChangeEvent<any>) => void;\n}\n","import pack from 'react-native/package.json';\n\nconst [majorStr, minorStr] = pack.version.split('.');\nexport const REACT_NATIVE_VERSION = {\n major: parseInt(majorStr, 10),\n minor: parseInt(minorStr, 10),\n};\n\nexport function toArray<T>(object: T | T[]): T[] {\n if (!Array.isArray(object)) {\n return [object];\n }\n\n return object;\n}\n\nexport type withPrevAndCurrentMapFn<T, Transformed> = (\n previous: Transformed | null,\n current: T\n) => Transformed;\nexport function withPrevAndCurrent<T, Transformed>(\n array: T[],\n mapFn: withPrevAndCurrentMapFn<T, Transformed>\n): Transformed[] {\n const previousArr: (null | Transformed)[] = [null];\n const currentArr = [...array];\n const transformedArr: Transformed[] = [];\n currentArr.forEach((current, i) => {\n const previous = previousArr[i];\n const transformed = mapFn(previous, current);\n previousArr.push(transformed);\n transformedArr.push(transformed);\n });\n return transformedArr;\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function hasProperty(object: object, key: string) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nexport function isJestEnv(): boolean {\n // @ts-ignore Do not use `@types/node` because it will prioritise Node types over RN types which breaks the types (ex. setTimeout) in React Native projects.\n return hasProperty(global, 'process') && !!process.env.JEST_WORKER_ID;\n}\n\nexport function tagMessage(msg: string) {\n return `[react-native-gesture-handler] ${msg}`;\n}\n\n// helper method to check whether Fabric is enabled, however global.nativeFabricUIManager\n// may not be initialized before the first render\nexport function isFabric(): boolean {\n // @ts-expect-error nativeFabricUIManager is not yet included in the RN types\n return !!global?.nativeFabricUIManager;\n}\n\nexport function shouldUseCodegenNativeComponent(): boolean {\n // use codegenNativeComponent starting with RN 0.68\n return REACT_NATIVE_VERSION.minor >= 68 || REACT_NATIVE_VERSION.major > 0;\n}\n\nexport function isRemoteDebuggingEnabled(): boolean {\n // react-native-reanimated checks if in remote debugging in the same way\n // @ts-ignore global is available but node types are not included\n return !(global as any).nativeCallSyncHook || (global as any).__REMOTEDEV__;\n}\n","import { Reanimated } from './reanimatedWrapper';\nimport { State } from '../../State';\nimport { tagMessage } from '../../utils';\n\nexport interface GestureStateManagerType {\n begin: () => void;\n activate: () => void;\n fail: () => void;\n end: () => void;\n}\n\nconst warningMessage = tagMessage(\n 'react-native-reanimated is required in order to use synchronous state management'\n);\n\n// check if reanimated module is available, but look for useSharedValue as conditional\n// require of reanimated can sometimes return content of `utils.ts` file (?)\nconst REANIMATED_AVAILABLE = Reanimated?.useSharedValue !== undefined;\nconst setGestureState = Reanimated?.setGestureState;\n\nexport const GestureStateManager = {\n create(handlerTag: number): GestureStateManagerType {\n 'worklet';\n return {\n begin: () => {\n 'worklet';\n if (REANIMATED_AVAILABLE) {\n setGestureState(handlerTag, State.BEGAN);\n } else {\n console.warn(warningMessage);\n }\n },\n\n activate: () => {\n 'worklet';\n if (REANIMATED_AVAILABLE) {\n setGestureState(handlerTag, State.ACTIVE);\n } else {\n console.warn(warningMessage);\n }\n },\n\n fail: () => {\n 'worklet';\n if (REANIMATED_AVAILABLE) {\n setGestureState(handlerTag, State.FAILED);\n } else {\n console.warn(warningMessage);\n }\n },\n\n end: () => {\n 'worklet';\n if (REANIMATED_AVAILABLE) {\n setGestureState(handlerTag, State.END);\n } else {\n console.warn(warningMessage);\n }\n },\n };\n },\n};\n","import { ComponentClass } from 'react';\nimport {\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\nimport { tagMessage } from '../../utils';\n\nexport interface SharedValue<T> {\n value: T;\n}\n\nlet Reanimated: {\n default: {\n // Slightly modified definition copied from 'react-native-reanimated'\n // eslint-disable-next-line @typescript-eslint/ban-types\n createAnimatedComponent<P extends object>(\n component: ComponentClass<P>,\n options?: unknown\n ): ComponentClass<P>;\n };\n useEvent: (\n callback: (event: GestureUpdateEvent | GestureStateChangeEvent) => void,\n events: string[],\n rebuild: boolean\n ) => unknown;\n useSharedValue: <T>(value: T) => SharedValue<T>;\n setGestureState: (handlerTag: number, newState: number) => void;\n};\n\ntry {\n Reanimated = require('react-native-reanimated');\n\n if (!Reanimated.useSharedValue) {\n // @ts-ignore Make sure the loaded module is actually Reanimated, if it's not\n // reset the module to undefined so we can fallback to the default implementation\n Reanimated = undefined;\n throw new Error('react-native-reanimated is not found');\n }\n\n if (!Reanimated.setGestureState) {\n Reanimated.setGestureState = () => {\n 'worklet';\n console.warn(\n tagMessage(\n 'Please use newer version of react-native-reanimated in order to control state of the gestures.'\n )\n );\n };\n }\n // When 'react-native-reanimated' is not available we want to\n // quietly continue\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\nexport { Reanimated };\n","import * as Animated from './Animated';\nimport webGlobalIsInitialized from './reanimated2/js-reanimated/global';\nif (!webGlobalIsInitialized) {\n /* \n `webGlobalIsInitialized` should always be `true`, \n but we need to use `webGlobalIsInitialized` somewhere to ensure function execution, \n in another way, the bundler can remove unused variables. \n */\n console.error('[Reanimated] Unable to initialize global objects for web.');\n}\n\n// @ts-ignore backward compatibility with treeshaking\nexport * from './reanimated1';\nexport * from './reanimated2';\nexport default Animated;\n","export { default as createAnimatedComponent } from './createAnimatedComponent';\nexport {\n addWhitelistedNativeProps,\n addWhitelistedUIProps,\n} from './ConfigHelper';\n\nexport { default as Text } from './reanimated2/component/Text';\nexport { default as View } from './reanimated2/component/View';\nexport { default as ScrollView } from './reanimated2/component/ScrollView';\nexport { default as Image } from './reanimated2/component/Image';\nexport { default as FlatList } from './reanimated2/component/FlatList';\n// @ts-ignore backward compatibility with treeshaking\nexport * from './reanimated1';\n","import React, { Component, ComponentType, MutableRefObject, Ref } from 'react';\nimport { findNodeHandle, Platform, StyleSheet } from 'react-native';\nimport ReanimatedEventEmitter from './ReanimatedEventEmitter';\n\n// @ts-ignore JS file\nimport AnimatedEvent from './reanimated1/core/AnimatedEvent';\n// @ts-ignore JS file\nimport AnimatedNode from './reanimated1/core/AnimatedNode';\n// @ts-ignore JS file\nimport AnimatedValue from './reanimated1/core/AnimatedValue';\n// @ts-ignore JS file\nimport { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';\nimport WorkletEventHandler from './reanimated2/WorkletEventHandler';\nimport setAndForwardRef from './setAndForwardRef';\nimport './reanimated2/layoutReanimation/LayoutAnimationRepository';\n\nimport invariant from 'invariant';\nimport { adaptViewConfig } from './ConfigHelper';\nimport { RNRenderer } from './reanimated2/platform-specific/RNRenderer';\nimport {\n makeMutable,\n runOnUI,\n enableLayoutAnimations,\n} from './reanimated2/core';\nimport {\n DefaultEntering,\n DefaultExiting,\n DefaultLayout,\n} from './reanimated2/layoutReanimation/defaultAnimations/Default';\nimport {\n isJest,\n isChromeDebugger,\n shouldBeUseWeb,\n} from './reanimated2/PlatformChecker';\nimport { initialUpdaterRun } from './reanimated2/animation';\nimport {\n BaseAnimationBuilder,\n EntryExitAnimationFunction,\n ILayoutAnimationBuilder,\n} from './reanimated2/layoutReanimation';\nimport { SharedValue, StyleProps } from './reanimated2/commonTypes';\nimport {\n ViewDescriptorsSet,\n ViewRefSet,\n} from './reanimated2/ViewDescriptorsSet';\n\nconst NODE_MAPPING = new Map();\n\ninterface ListenerData {\n viewTag: number;\n props: StyleProps;\n}\n\nfunction listener(data: ListenerData) {\n const component = NODE_MAPPING.get(data.viewTag);\n component && component._updateFromNative(data.props);\n}\n\nfunction dummyListener() {\n // empty listener we use to assign to listener properties for which animated\n // event is used.\n}\n\nfunction hasAnimatedNodes(value: unknown): boolean {\n if (value instanceof AnimatedNode) {\n return true;\n }\n if (Array.isArray(value)) {\n return value.some((item) => hasAnimatedNodes(item));\n }\n if (value && typeof value === 'object') {\n return Object.keys(value).some((key) =>\n hasAnimatedNodes((value as Record<string, unknown>)[key])\n );\n }\n return false;\n}\n\ntype NestedArray<T> = T | NestedArray<T>[];\nfunction flattenArray<T>(array: NestedArray<T>): T[] {\n if (!Array.isArray(array)) {\n return [array];\n }\n const resultArr: T[] = [];\n\n const _flattenArray = (arr: NestedArray<T>[]): void => {\n arr.forEach((item) => {\n if (Array.isArray(item)) {\n _flattenArray(item);\n } else {\n resultArr.push(item);\n }\n });\n };\n _flattenArray(array);\n return resultArr;\n}\n\nfunction onlyAnimatedStyles(styles: StyleProps[]) {\n return styles.filter((style) => style?.viewDescriptors);\n}\n\nfunction isSameAnimatedStyle(\n style1?: StyleProps,\n style2?: StyleProps\n): boolean {\n // We cannot use equality check to compare useAnimatedStyle outputs directly.\n // Instead, we can compare its viewsRefs.\n return style1?.viewsRef === style2?.viewsRef;\n}\n\nconst isSameAnimatedProps = isSameAnimatedStyle;\n\nconst has = <K extends string>(\n key: K,\n x: unknown\n): x is { [key in K]: unknown } => {\n if (typeof x === 'function' || typeof x === 'object') {\n if (x === null || x === undefined) {\n return false;\n } else {\n return key in x;\n }\n }\n return false;\n};\n\ninterface AnimatedProps extends Record<string, unknown> {\n viewDescriptors?: ViewDescriptorsSet;\n viewsRef?: ViewRefSet<unknown>;\n initial?: SharedValue<StyleProps>;\n}\n\nexport type AnimatedComponentProps<P extends Record<string, unknown>> = P & {\n forwardedRef?: Ref<Component>;\n style?: NestedArray<StyleProps>;\n animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n animatedStyle?: StyleProps;\n layout?:\n | BaseAnimationBuilder\n | ILayoutAnimationBuilder\n | typeof BaseAnimationBuilder;\n entering?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n exiting?:\n | BaseAnimationBuilder\n | typeof BaseAnimationBuilder\n | EntryExitAnimationFunction\n | Keyframe;\n};\n\ntype Options<P> = {\n setNativeProps: (ref: ComponentRef, props: P) => void;\n};\n\ninterface ComponentRef extends Component {\n setNativeProps?: (props: Record<string, unknown>) => void;\n getScrollableNode?: () => ComponentRef;\n}\n\nexport interface InitialComponentProps extends Record<string, unknown> {\n ref?: Ref<Component>;\n collapsable?: boolean;\n}\n\ninterface PropsAnimated {\n __onEvaluate: () => StyleProps;\n __detach: () => void;\n __getValue: () => StyleProps;\n update: () => void;\n setNativeView: (view: Component) => void;\n}\n\nexport default function createAnimatedComponent(\n Component: ComponentType<InitialComponentProps>,\n options?: Options<InitialComponentProps>\n): ComponentType<AnimatedComponentProps<InitialComponentProps>> {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n '`createAnimatedComponent` does not support stateless functional components; ' +\n 'use a class component instead.'\n );\n\n class AnimatedComponent extends React.Component<\n AnimatedComponentProps<InitialComponentProps>\n > {\n _invokeAnimatedPropsCallbackOnMount = false;\n _styles: StyleProps[] | null = null;\n _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n _viewTag = -1;\n _isFirstRender = true;\n animatedStyle: { value: StyleProps } = { value: {} };\n initialStyle = {};\n sv: SharedValue<null | Record<string, unknown>> | null;\n _propsAnimated?: PropsAnimated;\n _component: ComponentRef | null = null;\n static displayName: string;\n\n constructor(props: AnimatedComponentProps<InitialComponentProps>) {\n super(props);\n this._attachProps(this.props);\n if (isJest()) {\n this.animatedStyle = { value: {} };\n }\n this.sv = makeMutable({});\n }\n\n componentWillUnmount() {\n this._detachPropUpdater();\n this._propsAnimated && this._propsAnimated.__detach();\n this._detachNativeEvents();\n this._detachStyles();\n this.sv = null;\n }\n\n componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._animatedPropsCallback();\n }\n\n this._propsAnimated &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._propsAnimated.setNativeView(this._component!);\n this._attachNativeEvents();\n this._attachPropUpdater();\n this._attachAnimatedStyles();\n }\n\n _getEventViewRef() {\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n return this._component?.getScrollableNode\n ? this._component.getScrollableNode()\n : this._component;\n }\n\n _attachNativeEvents() {\n const node = this._getEventViewRef();\n let viewTag = findNodeHandle(options?.setNativeProps ? this : node);\n const componentName = Component.displayName || Component.name;\n\n if (componentName?.endsWith('FlashList') && this._component) {\n // @ts-ignore it's FlashList specific: https://github.com/Shopify/flash-list/blob/218f314e63806b4fe926741ef73f8b9cd6ebc7eb/src/FlashList.tsx#L815\n viewTag = findNodeHandle(this._component.getScrollableNode());\n }\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n (prop as AnimatedEvent).attachEvent(node, key);\n } else if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.registerForEvents(viewTag as number, key);\n }\n }\n }\n\n _detachNativeEvents() {\n const node = this._getEventViewRef();\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n (prop as AnimatedEvent).detachEvent(node, key);\n } else if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n }\n\n _detachStyles() {\n if (Platform.OS === 'web' && this._styles !== null) {\n for (const style of this._styles) {\n if (style?.viewsRef) {\n style.viewsRef.remove(this);\n }\n }\n } else if (this._viewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._viewTag);\n }\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(this._viewTag);\n }\n }\n }\n\n _reattachNativeEvents(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n const node = this._getEventViewRef();\n const attached = new Set();\n const nextEvts = new Set();\n let viewTag: number | undefined;\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n nextEvts.add((prop as AnimatedEvent).__nodeID);\n } else if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n if (viewTag === undefined) {\n viewTag = prop.current.viewTag;\n }\n }\n }\n for (const key in prevProps) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n if (!nextEvts.has((prop as AnimatedEvent).__nodeID)) {\n // event was in prev props but not in current props, we detach\n (prop as AnimatedEvent).detachEvent(node, key);\n } else {\n // event was in prev and is still in current props\n attached.add((prop as AnimatedEvent).__nodeID);\n }\n } else if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n prop instanceof AnimatedEvent &&\n !attached.has((prop as AnimatedEvent).__nodeID)\n ) {\n // not yet attached\n (prop as AnimatedEvent).attachEvent(node, key);\n } else if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prop.current.registerForEvents(viewTag!, key);\n prop.current.reattachNeeded = false;\n }\n }\n }\n\n // The system is best designed when setNativeProps is implemented. It is\n // able to avoid re-rendering and directly set the attributes that changed.\n // However, setNativeProps can only be implemented on native components\n // If you want to animate a composite component, you need to re-render it.\n // In this case, we have a fallback that uses forceUpdate.\n _animatedPropsCallback = () => {\n if (this._component == null) {\n // AnimatedProps is created in will-mount because it's used in render.\n // But this callback may be invoked before mount in async mode,\n // In which case we should defer the setNativeProps() call.\n // React may throw away uncommitted work in async mode,\n // So a deferred call won't always be invoked.\n this._invokeAnimatedPropsCallbackOnMount = true;\n } else if (typeof this._component.setNativeProps !== 'function') {\n this.forceUpdate();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._component.setNativeProps(this._propsAnimated!.__getValue());\n }\n };\n\n _attachProps(nextProps: StyleProps) {\n const oldPropsAnimated = this._propsAnimated;\n\n this._propsAnimated = createOrReusePropsNode(\n nextProps,\n this._animatedPropsCallback,\n oldPropsAnimated\n );\n // If prop node has been reused we don't need to call into \"__detach\"\n if (oldPropsAnimated !== this._propsAnimated) {\n // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n oldPropsAnimated && oldPropsAnimated.__detach();\n }\n }\n\n _updateFromNative(props: StyleProps) {\n if (options?.setNativeProps) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.setNativeProps(this._component!, props);\n } else {\n // eslint-disable-next-line no-unused-expressions\n this._component?.setNativeProps?.(props);\n }\n }\n\n _attachPropUpdater() {\n const viewTag = findNodeHandle(this);\n NODE_MAPPING.set(viewTag, this);\n if (NODE_MAPPING.size === 1) {\n ReanimatedEventEmitter.addListener('onReanimatedPropsChange', listener);\n }\n }\n\n _attachAnimatedStyles() {\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n\n let viewTag: number | null;\n let viewName: string | null;\n if (Platform.OS === 'web') {\n viewTag = findNodeHandle(this);\n viewName = null;\n } else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(this);\n if (!hostInstance) {\n throw new Error(\n 'Cannot find host instance for this component. Maybe it renders nothing?'\n );\n }\n // we can access view tag in the same way it's accessed here https://github.com/facebook/react/blob/e3f4eb7272d4ca0ee49f27577156b57eeb07cf73/packages/react-native-renderer/src/ReactFabric.js#L146\n viewTag = hostInstance?._nativeTag;\n /**\n * RN uses viewConfig for components for storing different properties of the component(example: https://github.com/facebook/react-native/blob/master/Libraries/Components/ScrollView/ScrollViewViewConfig.js#L16).\n * The name we're looking for is in the field named uiViewClassName.\n */\n viewName = hostInstance?.viewConfig?.uiViewClassName;\n // update UI props whitelist for this view\n const hasReanimated2Props =\n this.props.animatedProps?.viewDescriptors || styles.length;\n if (hasReanimated2Props && hostInstance?.viewConfig) {\n adaptViewConfig(hostInstance.viewConfig);\n }\n }\n this._viewTag = viewTag as number;\n\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle =\n styles.length === 1 &&\n prevStyles.length === 1 &&\n isSameAnimatedStyle(styles[0], prevStyles[0]);\n\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) =>\n isSameAnimatedStyle(style, prevStyle)\n );\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n\n styles.forEach((style) => {\n style.viewDescriptors.add({ tag: viewTag, name: viewName });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.animatedStyle.value = {\n ...this.animatedStyle.value,\n ...style.initial.value,\n };\n style.animatedStyle.current = this.animatedStyle;\n }\n });\n\n // detach old animatedProps\n if (\n prevAnimatedProps &&\n !isSameAnimatedProps(prevAnimatedProps, this.props.animatedProps)\n ) {\n prevAnimatedProps.viewDescriptors!.remove(viewTag as number);\n }\n\n // attach animatedProps property\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName!,\n });\n }\n }\n\n _detachPropUpdater() {\n const viewTag = findNodeHandle(this);\n NODE_MAPPING.delete(viewTag);\n if (NODE_MAPPING.size === 0) {\n ReanimatedEventEmitter.removeAllListeners('onReanimatedPropsChange');\n }\n }\n\n componentDidUpdate(\n prevProps: AnimatedComponentProps<InitialComponentProps>\n ) {\n this._attachProps(this.props);\n this._reattachNativeEvents(prevProps);\n\n this._propsAnimated &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._propsAnimated.setNativeView(this._component!);\n this._attachAnimatedStyles();\n }\n\n _setComponentRef = setAndForwardRef<Component>({\n getForwardedRef: () =>\n this.props.forwardedRef as MutableRefObject<\n Component<Record<string, unknown>, Record<string, unknown>, unknown>\n >,\n setLocalRef: (ref) => {\n // TODO update config\n const tag = findNodeHandle(ref);\n if (\n !shouldBeUseWeb() &&\n (this.props.layout || this.props.entering || this.props.exiting) &&\n tag != null\n ) {\n enableLayoutAnimations(true, false);\n let layout = this.props.layout ? this.props.layout : DefaultLayout;\n let entering = this.props.entering\n ? this.props.entering\n : DefaultEntering;\n let exiting = this.props.exiting\n ? this.props.exiting\n : DefaultExiting;\n\n if (has('build', layout)) {\n layout = layout.build();\n }\n\n if (has('build', entering)) {\n entering = entering.build() as EntryExitAnimationFunction;\n }\n\n if (has('build', exiting)) {\n exiting = exiting.build() as EntryExitAnimationFunction;\n }\n\n const config = {\n layout,\n entering,\n exiting,\n sv: this.sv,\n };\n runOnUI(() => {\n 'worklet';\n global.LayoutAnimationRepository.registerConfig(tag, config);\n })();\n }\n\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n\n _filterNonAnimatedStyle(inputStyle: StyleProps) {\n const style: StyleProps = {};\n for (const key in inputStyle) {\n const value = inputStyle[key];\n if (!hasAnimatedNodes(value)) {\n style[key] = value;\n } else if (value instanceof AnimatedValue) {\n // if any style in animated component is set directly to the `Value` we set those styles to the first value of `Value` node in order\n // to avoid flash of default styles when `Value` is being asynchrounously sent via bridge and initialized in the native side.\n style[key] = value._startingValue;\n }\n }\n return style;\n }\n\n _filterNonAnimatedProps(\n inputProps: AnimatedComponentProps<InitialComponentProps>\n ): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n for (const key in inputProps) {\n const value = inputProps[key];\n if (key === 'style') {\n const styleProp = inputProps.style;\n const styles = flattenArray<StyleProps>(styleProp ?? []);\n const processedStyle: StyleProps = styles.map((style) => {\n if (style && style.viewDescriptors) {\n // this is how we recognize styles returned by useAnimatedStyle\n style.viewsRef.add(this);\n if (this._isFirstRender) {\n this.initialStyle = {\n ...style.initial.value,\n ...initialUpdaterRun<StyleProps>(style.initial.updater),\n };\n }\n return this.initialStyle;\n } else {\n return style;\n }\n });\n props[key] = this._filterNonAnimatedStyle(\n StyleSheet.flatten(processedStyle)\n );\n } else if (key === 'animatedProps') {\n const animatedProp = inputProps.animatedProps as Partial<\n AnimatedComponentProps<AnimatedProps>\n >;\n if (animatedProp.initial !== undefined) {\n Object.keys(animatedProp.initial.value).forEach((key) => {\n props[key] = animatedProp.initial?.value[key];\n animatedProp.viewsRef?.add(this);\n });\n }\n } else if (value instanceof AnimatedEvent) {\n // we cannot filter out event listeners completely as some components\n // rely on having a callback registered in order to generate events\n // alltogether. Therefore we provide a dummy callback here to allow\n // native event dispatcher to hijack events.\n props[key] = dummyListener;\n } else if (\n has('current', value) &&\n value.current instanceof WorkletEventHandler\n ) {\n if (value.current.eventNames.length > 0) {\n value.current.eventNames.forEach((eventName) => {\n props[eventName] = has('listeners', value.current)\n ? (value.current.listeners as Record<string, unknown>)[\n eventName\n ]\n : dummyListener;\n });\n } else {\n props[key] = dummyListener;\n }\n } else if (!(value instanceof AnimatedNode)) {\n if (key !== 'onGestureHandlerStateChange' || !isChromeDebugger()) {\n props[key] = value;\n }\n } else if (value instanceof AnimatedValue) {\n // if any prop in animated component is set directly to the `Value` we set those props to the first value of `Value` node in order\n // to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.\n props[key] = (value as AnimatedValue)._startingValue;\n }\n }\n return props;\n }\n\n render() {\n const props = this._filterNonAnimatedProps(this.props);\n if (isJest()) {\n props.animatedStyle = this.animatedStyle;\n }\n\n if (this._isFirstRender) {\n this._isFirstRender = false;\n }\n\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n return (\n <Component {...props} ref={this._setComponentRef} {...platformProps} />\n );\n }\n }\n\n AnimatedComponent.displayName = `AnimatedComponent(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return React.forwardRef<Component>((props, ref) => {\n return (\n <AnimatedComponent\n {...props}\n {...(ref === null ? null : { forwardedRef: ref })}\n />\n );\n });\n}\n","import ReanimatedModule from './ReanimatedModule';\nimport { NativeEventEmitter } from 'react-native';\n\nexport default new NativeEventEmitter(ReanimatedModule);\n","import { NativeModules } from 'react-native';\nimport ReanimatedModuleCompat from './ReanimatedModuleCompat';\nimport { nativeShouldBeMock } from './reanimated2/PlatformChecker';\n\nlet exportedModule;\nif (nativeShouldBeMock()) {\n exportedModule = ReanimatedModuleCompat;\n} else {\n const { ReanimatedModule } = NativeModules;\n exportedModule = ReanimatedModule;\n}\n\nexport default exportedModule;\n","export default {\n async disconnectNodeFromView(): Promise<void> {\n // noop\n },\n async attachEvent(\n _viewTag: number,\n _eventName: string,\n _nodeID: number\n ): Promise<void> {\n // noop\n },\n async detachEvent(\n _viewTag: number,\n _eventName: string,\n _nodeID: number\n ): Promise<void> {\n // noop\n },\n async createNode(\n _nodeID: number,\n _config: Record<string, unknown>\n ): Promise<void> {\n // noop\n },\n async dropNode(_nodeID: number): Promise<void> {\n // noop\n },\n async configureProps(\n _nativeProps: string[],\n _uiProps: string[]\n ): Promise<void> {\n // noop\n },\n async disconnectNodes(): Promise<void> {\n // noop\n },\n async addListener(): Promise<void> {\n // noop\n },\n async removeListeners(): Promise<void> {\n // noop\n },\n async removeAllListeners(): Promise<void> {\n // noop\n },\n async animateNextTransition(): Promise<void> {\n console.warn(\n 'Reanimated: animateNextTransition is unimplemented on current platform'\n );\n },\n};\n","import { Platform } from 'react-native';\n\nexport function isJest(): boolean {\n return !!process.env.JEST_WORKER_ID;\n}\n\nexport function isChromeDebugger(): boolean {\n return !(global as any).nativeCallSyncHook || (global as any).__REMOTEDEV__;\n}\n\nexport function isWeb(): boolean {\n return Platform.OS === 'web';\n}\n\nexport function shouldBeUseWeb() {\n return isJest() || isChromeDebugger() || isWeb();\n}\n\nexport function nativeShouldBeMock() {\n return isJest() || isChromeDebugger();\n}\n","import { Platform, findNodeHandle } from 'react-native';\nimport ReanimatedModule from '../../ReanimatedModule';\n\nimport AnimatedNode from './AnimatedNode';\nimport InternalAnimatedValue from './AnimatedValue';\nimport { createAnimatedAlways } from './AnimatedAlways';\n\nimport invariant from 'invariant';\nimport createEventObjectProxyPolyfill from './createEventObjectProxyPolyfill';\n\nfunction sanitizeArgMapping(argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n const eventMappings = [];\n const alwaysNodes = [];\n\n const getNode = (node) => {\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos'\n ) {\n return node;\n }\n return node.__nodeID;\n };\n\n const traverse = (value, path) => {\n if (value instanceof InternalAnimatedValue) {\n eventMappings.push(path.concat(getNode(value)));\n } else if (typeof value === 'object' && value.__val) {\n eventMappings.push(path.concat(getNode(value.__val)));\n } else if (typeof value === 'function') {\n const node = new InternalAnimatedValue(0);\n alwaysNodes.push(createAnimatedAlways(value(node)));\n eventMappings.push(path.concat(getNode(node)));\n } else if (typeof value === 'object') {\n for (const key in value) {\n traverse(value[key], path.concat(key));\n }\n }\n };\n\n invariant(\n argMapping[0] && argMapping[0].nativeEvent,\n 'Native driven events only support animated values contained inside `nativeEvent`.'\n );\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n const ev = argMapping[0].nativeEvent;\n if (typeof ev === 'object') {\n traverse(ev, []);\n } else if (typeof ev === 'function') {\n const proxyHandler = {\n get: function (target, name) {\n if (name === '__isProxy') {\n return true;\n }\n if (!target[name] && name !== '__val') {\n target[name] = new Proxy({}, proxyHandler);\n }\n return target[name];\n },\n set: function (target, prop, value) {\n if (prop === '__val') {\n target[prop] = value;\n return true;\n }\n return false;\n },\n };\n\n const proxy =\n typeof Proxy === 'function'\n ? new Proxy({}, proxyHandler)\n : createEventObjectProxyPolyfill();\n alwaysNodes.push(createAnimatedAlways(ev(proxy)));\n traverse(proxy, []);\n }\n\n return { eventMappings, alwaysNodes };\n}\n\nexport default class AnimatedEvent extends AnimatedNode {\n constructor(argMapping, _config = {}) {\n const { eventMappings, alwaysNodes } = sanitizeArgMapping(argMapping);\n super({ type: 'event', argMapping: eventMappings });\n this._alwaysNodes = alwaysNodes;\n }\n\n toString() {\n return `AnimatedEvent, id: ${this.__nodeID}`;\n }\n\n // The below field is a temporary workaround to make AnimatedEvent object be recognized\n // as Animated.event event callback and therefore filtered out from being send over the\n // bridge which was causing the object to be frozen in JS.\n __isNative = true;\n\n attachEvent(viewRef, eventName) {\n for (let i = 0; i < this._alwaysNodes.length; i++) {\n this._alwaysNodes[i].__attach();\n }\n this.__attach();\n const viewTag = findNodeHandle(viewRef);\n ReanimatedModule.attachEvent(viewTag, eventName, this.__nodeID);\n }\n\n __onEvaluate() {\n return 0;\n }\n\n detachEvent(viewRef, eventName) {\n for (let i = 0; i < this._alwaysNodes.length; i++) {\n this._alwaysNodes[i].isNativelyInitialized() &&\n this._alwaysNodes[i].__detach();\n }\n const viewTag = findNodeHandle(viewRef);\n ReanimatedModule.detachEvent(viewTag, eventName, this.__nodeID);\n this.__detach();\n }\n}\n\nexport function createAnimatedEvent(argMapping, config) {\n return new AnimatedEvent(argMapping, config);\n}\n","import ReanimatedModule from '../../ReanimatedModule';\nimport { Platform } from 'react-native';\n\nconst UPDATED_NODES = [];\n\nlet loopID = 1;\nlet propUpdatesEnqueued = null;\nlet nodeCount = 0;\nlet callID = '';\n\nexport function getCallID() {\n return callID;\n}\n\nexport function setCallID(nextCallID) {\n callID = nextCallID;\n}\n\nfunction sanitizeConfig(config) {\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos' ||\n ['undefined', 'string', 'function', 'boolean', 'number'].includes(\n typeof config\n )\n ) {\n return config;\n } else if (Array.isArray(config)) {\n return config.map(sanitizeConfig);\n } else if (config instanceof AnimatedNode) {\n return config.__nodeID;\n } else if (typeof config === 'object') {\n const output = {};\n for (const property in config) {\n if (property in config) {\n output[property] = sanitizeConfig(config[property]);\n }\n }\n return output;\n }\n // unhandled\n return config;\n}\n\nfunction runPropUpdates() {\n const visitedNodes = new Set();\n const findAndUpdateNodes = (node) => {\n if (!node) {\n console.warn('findAndUpdateNodes was passed a nullish node');\n return;\n }\n\n if (visitedNodes.has(node)) {\n return;\n } else {\n visitedNodes.add(node);\n }\n if (typeof node.update === 'function') {\n node.update();\n } else {\n const nodes = node.__getChildren();\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n findAndUpdateNodes(nodes[i]);\n }\n }\n }\n };\n for (let i = 0; i < UPDATED_NODES.length; i++) {\n const node = UPDATED_NODES[i];\n findAndUpdateNodes(node);\n }\n UPDATED_NODES.length = 0; // clear array\n propUpdatesEnqueued = null;\n loopID += 1;\n}\n\nconst scheduleUpdates =\n Platform.OS === 'web' ? requestAnimationFrame : setImmediate;\n\nexport default class AnimatedNode {\n __nodeID;\n __lastLoopID = { '': -1 };\n __memoizedValue = { '': null };\n __children = [];\n\n constructor(nodeConfig, inputNodes) {\n this.__nodeID = ++nodeCount;\n this.__nodeConfig = sanitizeConfig(nodeConfig);\n this.__initialized = false;\n this.__inputNodes =\n inputNodes && inputNodes.filter((node) => node instanceof AnimatedNode);\n }\n\n toString() {\n return `AnimatedNode, id: ${this.__nodeID}`;\n }\n\n __attach() {\n this.__nativeInitialize();\n\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__addChild(this);\n }\n }\n }\n\n __detach() {\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__removeChild(this);\n }\n }\n\n this.__nativeTearDown();\n }\n\n __getValue() {\n if (!(callID in this.__lastLoopID) || this.__lastLoopID[callID] < loopID) {\n this.__lastLoopID[callID] = loopID;\n const result = this.__onEvaluate();\n this.__memoizedValue[callID] = result;\n return result;\n }\n return this.__memoizedValue[callID];\n }\n\n __forceUpdateCache(newValue) {\n this.__memoizedValue[callID] = newValue;\n this.__markUpdated();\n }\n\n __dangerouslyRescheduleEvaluate() {\n this.__lastLoopID[callID] = -1;\n this.__markUpdated();\n }\n\n __markUpdated() {\n UPDATED_NODES.push(this);\n if (!propUpdatesEnqueued) {\n propUpdatesEnqueued = scheduleUpdates(runPropUpdates);\n }\n }\n\n __nativeInitialize() {\n if (!this.__initialized) {\n ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });\n this.__initialized = true;\n }\n }\n\n __nativeTearDown() {\n if (this.__initialized) {\n ReanimatedModule.dropNode(this.__nodeID);\n this.__initialized = false;\n }\n }\n\n isNativelyInitialized() {\n return this.__initialized;\n }\n\n __onEvaluate() {\n throw new Error('Missing implementation of onEvaluate');\n }\n\n __getProps() {\n return this.__getValue();\n }\n\n __getChildren() {\n return this.__children;\n }\n\n __addChild(child) {\n if (this.__children.length === 0) {\n this.__attach();\n }\n this.__children.push(child);\n child.__nativeInitialize();\n\n if (ReanimatedModule.connectNodes) {\n ReanimatedModule.connectNodes(this.__nodeID, child.__nodeID);\n } else {\n child.__dangerouslyRescheduleEvaluate();\n }\n }\n\n __removeChild(child) {\n const index = this.__children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (ReanimatedModule.disconnectNodes) {\n ReanimatedModule.disconnectNodes(this.__nodeID, child.__nodeID);\n }\n\n this.__children.splice(index, 1);\n if (this.__children.length === 0) {\n this.__detach();\n }\n }\n\n _connectAnimatedView(nativeViewTag) {\n if (ReanimatedModule.connectNodeToView) {\n ReanimatedModule.connectNodeToView(this.__nodeID, nativeViewTag);\n } else {\n this.__dangerouslyRescheduleEvaluate();\n }\n }\n\n _disconnectAnimatedView(nativeViewTag) {\n ReanimatedModule.disconnectNodeFromView(this.__nodeID, nativeViewTag);\n }\n}\n","import { createAnimatedSet as set } from '../core/AnimatedSet';\nimport interpolate from '../derived/interpolate';\nimport InternalAnimatedValue from './InternalAnimatedValue';\nimport { Platform } from 'react-native';\nimport { evaluateOnce } from '../derived/evaluateOnce';\nimport ReanimatedModule from '../../ReanimatedModule';\nimport { val } from '../val';\n\n// Animated value wrapped with extra methods for omit cycle of dependencies\nexport default class AnimatedValue extends InternalAnimatedValue {\n setValue(value) {\n this.__detachAnimation(this._animation);\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos'\n ) {\n this._updateValue(val(value));\n } else {\n if (ReanimatedModule.setValue && typeof value === 'number') {\n // FIXME Remove it after some time\n // For OTA-safety\n // FIXME handle setting value with a node\n ReanimatedModule.setValue(this.__nodeID, value);\n } else {\n evaluateOnce(set(this, value), this);\n }\n }\n }\n\n toString() {\n return `AnimatedValue, id: ${this.__nodeID}`;\n }\n\n interpolate(config) {\n return interpolate(this, config);\n }\n}\n","import AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\nimport { val } from '../val';\nimport { adapt } from '../core/AnimatedBlock';\n\nclass AnimatedSet extends AnimatedNode {\n _what;\n _value;\n\n constructor(what, value) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: Animated.set first argument should be of type AnimatedNode but got ${what}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.set second argument should be of type AnimatedNode, String or Number but got ${value}`\n );\n super({ type: 'set', what, value }, [value]);\n invariant(!what._constant, 'Value to be set cannot be constant');\n this._what = what;\n this._value = value;\n }\n\n toString() {\n return `AnimatedSet, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const newValue = val(this._value);\n this._what.setValue(newValue);\n return newValue;\n }\n}\n\nexport function createAnimatedSet(what, value) {\n return new AnimatedSet(what, adapt(value));\n}\n","export function val(v) {\n return v && v.__getValue ? v.__getValue() : v || 0;\n}\n","import invariant from 'invariant';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\nimport InternalAnimatedValue from './InternalAnimatedValue';\n\nclass AnimatedBlock extends AnimatedNode {\n _array;\n\n constructor(array) {\n invariant(\n array.every((el) => el instanceof AnimatedNode),\n `Reanimated: Animated.block node argument should be an array with elements of type AnimatedNode. One or more of them are not AnimatedNodes`\n );\n super({ type: 'block', block: array }, array);\n this._array = array;\n }\n\n toString() {\n return `AnimatedBlock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n let result;\n this._array.forEach((node) => {\n result = val(node);\n });\n return result;\n }\n}\n\nexport function createAnimatedBlock(items) {\n return adapt(items);\n}\n\nfunction nodify(v) {\n if (typeof v === 'object' && v?.__isProxy) {\n if (!v.__val) {\n v.__val = new InternalAnimatedValue(0);\n }\n return v.__val;\n }\n // TODO: cache some typical static values (e.g. 0, 1, -1)\n return v instanceof AnimatedNode\n ? v\n : InternalAnimatedValue.valueForConstant(v);\n}\n\nexport function adapt(v) {\n return Array.isArray(v)\n ? new AnimatedBlock(v.map((node) => adapt(node)))\n : nodify(v);\n}\n","import AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\nimport ReanimatedModule from '../../ReanimatedModule';\nimport invariant from 'invariant';\n\nfunction sanitizeValue(value) {\n return value === null || value === undefined || typeof value === 'string'\n ? value\n : Number(value);\n}\n\nconst CONSTANT_VALUES = new Map();\n\nfunction initializeConstantValues() {\n if (CONSTANT_VALUES.size !== 0) {\n return;\n }\n [0, -1, 1, -2, 2].forEach((v) =>\n CONSTANT_VALUES.set(v, new InternalAnimatedValue(v, true))\n );\n}\n\n/**\n * This class has been made internal in order to omit dependencies' cycles which\n * were caused by imperative setValue and interpolate – they are currently exposed with AnimatedValue.js\n */\nexport default class InternalAnimatedValue extends AnimatedNode {\n static valueForConstant(number) {\n initializeConstantValues();\n return (\n CONSTANT_VALUES.get(number) || new InternalAnimatedValue(number, true)\n );\n }\n\n constructor(value, constant = false) {\n invariant(value !== null, 'Animated.Value cannot be set to the null');\n super({ type: 'value', value: sanitizeValue(value) });\n this._startingValue = this._value = value;\n this._animation = null;\n this._constant = constant;\n }\n\n __detach() {\n if (!this._constant) {\n if (ReanimatedModule.getValue) {\n ReanimatedModule.getValue(\n this.__nodeID,\n (val) => (this.__nodeConfig.value = val)\n );\n } else {\n this.__nodeConfig.value = this.__getValue();\n }\n }\n this.__detachAnimation(this._animation);\n super.__detach();\n }\n\n __detachAnimation(animation) {\n animation && animation.__detach();\n if (this._animation === animation) {\n this._animation = null;\n }\n }\n\n __attachAnimation(animation) {\n this.__detachAnimation(this._animation);\n this._animation = animation;\n }\n\n __onEvaluate() {\n if (this.__inputNodes && this.__inputNodes.length) {\n this.__inputNodes.forEach(val);\n }\n return this._value;\n }\n\n // AnimatedValue will override this method to modify the value of a native node.\n setValue(value) {\n this.__detachAnimation(this._animation);\n this._updateValue(value);\n }\n\n _updateValue(value) {\n this._value = value;\n this.__forceUpdateCache(value);\n }\n}\n","import {\n lessThan,\n multiply,\n sub,\n add,\n divide,\n greaterThan,\n lessOrEq,\n eq,\n} from '../operators';\nimport invariant from 'invariant';\n\nimport AnimatedNode from '../core/AnimatedNode';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\nimport { createAnimatedFunction as proc } from '../core/AnimatedFunction';\n\nconst interpolateInternalSingleProc = proc(function (\n value,\n inS,\n inE,\n outS,\n outE\n) {\n const progress = divide(sub(value, inS), sub(inE, inS));\n // logic below was made in order to provide a compatibility witn an Animated API\n const resultForNonZeroRange = add(outS, multiply(progress, sub(outE, outS)));\n const result = cond(\n eq(inS, inE),\n cond(lessOrEq(value, inS), outS, outE),\n resultForNonZeroRange\n );\n return result;\n});\n\nfunction interpolateInternalSingle(value, inputRange, outputRange, offset) {\n const inS = inputRange[offset];\n const inE = inputRange[offset + 1];\n const outS = outputRange[offset];\n const outE = outputRange[offset + 1];\n return interpolateInternalSingleProc(value, inS, inE, outS, outE);\n}\n\nfunction interpolateInternal(value, inputRange, outputRange, offset = 0) {\n if (inputRange.length - offset === 2) {\n return interpolateInternalSingle(value, inputRange, outputRange, offset);\n }\n return cond(\n lessThan(value, inputRange[offset + 1]),\n interpolateInternalSingle(value, inputRange, outputRange, offset),\n interpolateInternal(value, inputRange, outputRange, offset + 1)\n );\n}\n\nexport const Extrapolate = {\n EXTEND: 'extend',\n CLAMP: 'clamp',\n IDENTITY: 'identity',\n};\n\nfunction checkNonDecreasing(name, arr) {\n for (let i = 1; i < arr.length; ++i) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || arr[i - 1] instanceof AnimatedNode)\n continue;\n invariant(\n arr[i] >= arr[i - 1],\n '%s must be monotonically non-decreasing. (%s)',\n name,\n arr\n );\n }\n}\n\nfunction checkMinElements(name, arr) {\n invariant(\n arr.length >= 2,\n '%s must have at least 2 elements. (%s)',\n name,\n arr\n );\n}\n\nfunction checkValidNumbers(name, arr) {\n for (let i = 0; i < arr.length; i++) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || typeof arr[i] !== 'number') continue;\n invariant(\n Number.isFinite(arr[i]),\n '%s cannot include %s. (%s)',\n name,\n arr[i],\n arr\n );\n }\n}\n\nfunction convertToRadians(outputRange) {\n for (const [i, value] of outputRange.entries()) {\n if (typeof value === 'string' && value.endsWith('deg')) {\n outputRange[i] = parseFloat(value) * (Math.PI / 180);\n } else if (typeof value === 'string' && value.endsWith('rad')) {\n outputRange[i] = parseFloat(value);\n }\n }\n}\n\nexport default function interpolate(value, config) {\n const {\n inputRange,\n outputRange,\n extrapolate = Extrapolate.EXTEND,\n extrapolateLeft,\n extrapolateRight,\n } = config;\n\n checkMinElements('inputRange', inputRange);\n checkValidNumbers('inputRange', inputRange);\n checkMinElements('outputRange', outputRange);\n checkValidNumbers('outputRange', outputRange);\n checkNonDecreasing('inputRange', inputRange);\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange and outputRange must be the same length.'\n );\n\n convertToRadians(outputRange);\n const left = extrapolateLeft || extrapolate;\n const right = extrapolateRight || extrapolate;\n let output = interpolateInternal(value, inputRange, outputRange);\n\n if (left === Extrapolate.CLAMP) {\n output = cond(lessThan(value, inputRange[0]), outputRange[0], output);\n } else if (left === Extrapolate.IDENTITY) {\n output = cond(lessThan(value, inputRange[0]), value, output);\n }\n\n if (right === Extrapolate.CLAMP) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n outputRange[outputRange.length - 1],\n output\n );\n } else if (right === Extrapolate.IDENTITY) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n value,\n output\n );\n }\n\n return output;\n}\n","import { createAnimatedOperator } from './core/AnimatedOperator';\n\nconst operator = createAnimatedOperator;\n\nexport const add = operator('add');\nexport const sub = operator('sub');\nexport const multiply = operator('multiply');\nexport const divide = operator('divide');\nexport const pow = operator('pow');\nexport const modulo = operator('modulo');\nexport const sqrt = operator('sqrt');\nexport const log = operator('log');\nexport const sin = operator('sin');\nexport const cos = operator('cos');\nexport const exp = operator('exp');\nexport const round = operator('round');\nexport const lessThan = operator('lessThan');\nexport const eq = operator('eq');\nexport const greaterThan = operator('greaterThan');\nexport const lessOrEq = operator('lessOrEq');\nexport const greaterOrEq = operator('greaterOrEq');\nexport const neq = operator('neq');\nexport const and = operator('and');\nexport const or = operator('or');\nexport const defined = operator('defined');\nexport const not = operator('not');\nexport const tan = operator('tan');\nexport const acos = operator('acos');\nexport const asin = operator('asin');\nexport const atan = operator('atan');\nexport const abs = operator('abs');\nexport const ceil = operator('ceil');\nexport const floor = operator('floor');\nexport const max = operator('max');\nexport const min = operator('min');\n","import AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\n\nimport invariant from 'invariant';\nimport { adapt } from '../core/AnimatedBlock';\n\nfunction reduce(fn) {\n return (input) => input.reduce((a, b) => fn(val(a), val(b)));\n}\n\nfunction reduceFrom(fn, initialValue) {\n return (input) => input.reduce((a, b) => fn(val(a), val(b)), initialValue);\n}\n\nfunction infix(fn) {\n return (input) => fn(val(input[0]), val(input[1]));\n}\n\nfunction single(fn) {\n return (input) => fn(val(input[0]));\n}\n\nconst OPERATIONS = {\n // arithmetic\n add: reduce((a, b) => a + b),\n sub: reduce((a, b) => a - b),\n multiply: reduce((a, b) => a * b),\n divide: reduce((a, b) => a / b),\n pow: reduce((a, b) => Math.pow(a, b)),\n modulo: reduce((a, b) => ((a % b) + b) % b),\n sqrt: single((a) => Math.sqrt(a)),\n log: single((a) => Math.log(a)),\n sin: single((a) => Math.sin(a)),\n cos: single((a) => Math.cos(a)),\n tan: single((a) => Math.tan(a)),\n acos: single((a) => Math.acos(a)),\n asin: single((a) => Math.asin(a)),\n atan: single((a) => Math.atan(a)),\n exp: single((a) => Math.exp(a)),\n round: single((a) => Math.round(a)),\n abs: single((a) => Math.abs(a)),\n ceil: single((a) => Math.ceil(a)),\n floor: single((a) => Math.floor(a)),\n max: reduce((a, b) => Math.max(a, b)),\n min: reduce((a, b) => Math.min(a, b)),\n\n // logical\n and: reduceFrom((a, b) => a && b, true),\n or: reduceFrom((a, b) => a || b, false),\n not: single((a) => !a),\n defined: single((a) => a !== null && a !== undefined && !isNaN(a)),\n\n // comparing\n lessThan: infix((a, b) => a < b),\n /* eslint-disable-next-line eqeqeq */\n eq: infix((a, b) => a == b),\n greaterThan: infix((a, b) => a > b),\n lessOrEq: infix((a, b) => a <= b),\n greaterOrEq: infix((a, b) => a >= b),\n /* eslint-disable-next-line eqeqeq */\n neq: infix((a, b) => a != b),\n};\n\nclass AnimatedOperator extends AnimatedNode {\n _input;\n _op;\n _operation;\n\n constructor(operator, input) {\n invariant(\n typeof operator === 'string',\n `Reanimated: Animated.operator node first argument should be of type String, but got: ${operator}`\n );\n invariant(\n input.every(\n (el) =>\n el instanceof AnimatedNode ||\n typeof el === 'string' ||\n typeof el === 'number'\n ),\n `Reanimated: Animated.operator node second argument should be one or more of type AnimatedNode, String or Number but got ${input}`\n );\n super({ type: 'op', op: operator, input }, input);\n this._op = operator;\n this._input = input;\n }\n\n toString() {\n return `AnimatedOperator, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n if (!this._operation) {\n this._operation = OPERATIONS[this._op];\n invariant(this._operation, `Illegal operator '%s'`, this._op);\n }\n return this._operation(this._input);\n }\n}\n\nexport function createAnimatedOperator(name) {\n return (...args) => new AnimatedOperator(name, args.map(adapt));\n}\n","import invariant from 'invariant';\nimport { adapt } from '../core/AnimatedBlock';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedCond extends AnimatedNode {\n _condition;\n _ifBlock;\n _elseBlock;\n\n constructor(condition, ifBlock, elseBlock) {\n invariant(\n condition instanceof AnimatedNode,\n `Reanimated: Animated.cond node first argument should be of type AnimatedNode but got ${condition}`\n );\n invariant(\n ifBlock instanceof AnimatedNode,\n `Reanimated: Animated.cond node second argument should be of type AnimatedNode but got ${ifBlock}`\n );\n invariant(\n elseBlock instanceof AnimatedNode || elseBlock === undefined,\n `Reanimated: Animated.cond node third argument should be of type AnimatedNode or should be undefined but got ${elseBlock}`\n );\n super(\n {\n type: 'cond',\n cond: condition,\n ifBlock,\n elseBlock,\n },\n [condition, ifBlock, elseBlock]\n );\n this._condition = condition;\n this._ifBlock = ifBlock;\n this._elseBlock = elseBlock;\n }\n\n toString() {\n return `AnimatedCond, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n if (val(this._condition)) {\n return val(this._ifBlock);\n } else {\n return this._elseBlock !== undefined ? val(this._elseBlock) : undefined;\n }\n }\n}\n\nexport function createAnimatedCond(cond, ifBlock, elseBlock) {\n return new AnimatedCond(\n adapt(cond),\n adapt(ifBlock),\n elseBlock === undefined ? undefined : adapt(elseBlock)\n );\n}\n","import AnimatedNode from './AnimatedNode';\nimport { createAnimatedCallFunc } from './AnimatedCallFunc';\nimport { createAnimatedParam } from './AnimatedParam';\nimport { val } from '../val';\nimport invariant from 'invariant';\n\nclass AnimatedFunction extends AnimatedNode {\n _what;\n\n constructor(what, ...params) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: AnimatedCallFunc 'what' argument should be of type AnimatedNode but got ${what}`\n );\n super(\n {\n type: 'func',\n what,\n },\n [what, ...params]\n );\n this._what = what;\n this.__attach();\n }\n\n __onEvaluate() {\n return val(this._what);\n }\n\n toString() {\n return `AnimatedFunction, id: ${this.__nodeID}`;\n }\n}\n\nexport function createAnimatedFunction(cb) {\n const params = new Array(cb.length);\n for (let i = 0; i < params.length; i++) {\n params[i] = createAnimatedParam();\n }\n // eslint-disable-next-line node/no-callback-literal\n const what = cb(...params);\n const func = new AnimatedFunction(what, ...params);\n return (...args) => {\n if (args.length !== params.length) {\n throw new Error(\n 'Parameter mismatch when calling reanimated function. Expected ' +\n params.length +\n ' parameters, got ' +\n args.length +\n '.'\n );\n }\n return createAnimatedCallFunc(func, args, params);\n };\n}\n","import AnimatedNode, { getCallID, setCallID } from './AnimatedNode';\nimport { adapt } from './AnimatedBlock';\nimport { val } from '../val';\nimport invariant from 'invariant';\n\nclass AnimatedCallFunc extends AnimatedNode {\n _previousCallID;\n _what;\n _args;\n _params;\n constructor(what, args, params) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: AnimatedCallFunc 'what' argument should be of type AnimatedNode but got ${what}`\n );\n invariant(\n args.every((el) => el instanceof AnimatedNode),\n `Reanimated: every AnimatedCallFunc 'args' argument should be of type AnimatedNode but got ${args}`\n );\n invariant(\n params.every((el) => el instanceof AnimatedNode),\n `Reanimated: every AnimatedCallFunc 'params' argument should be of type AnimatedNode but got ${params}`\n );\n super(\n {\n type: 'callfunc',\n what,\n args,\n params,\n },\n [...args]\n );\n this._what = what;\n this._args = args;\n this._params = params;\n }\n\n toString() {\n return `AnimatedCallFunc, id: ${this.__nodeID}`;\n }\n\n beginContext() {\n this._previousCallID = getCallID();\n setCallID(getCallID() + '/' + this.__nodeID);\n\n this._params.forEach((param, index) => {\n param.beginContext(this._args[index], this._previousCallID);\n });\n }\n\n endContext() {\n this._params.forEach((param) => {\n param.endContext();\n });\n setCallID(this._previousCallID);\n }\n\n __onEvaluate() {\n this.beginContext();\n const value = val(this._what);\n this.endContext();\n return value;\n }\n}\n\nexport function createAnimatedCallFunc(proc, args, params) {\n return new AnimatedCallFunc(\n proc,\n args.map((p) => adapt(p)),\n params\n );\n}\n","import invariant from 'invariant';\nimport AnimatedNode, { getCallID, setCallID } from './AnimatedNode';\nimport AnimatedClock from './AnimatedClock';\nimport { val } from '../val';\n\nexport class AnimatedParam extends AnimatedNode {\n argsStack = [];\n _prevCallID;\n\n constructor() {\n super({ type: 'param' }, []);\n this.__attach();\n }\n\n beginContext(ref, prevCallID) {\n this._prevCallID = prevCallID;\n this.argsStack.push(ref);\n }\n\n endContext() {\n this.argsStack.pop();\n }\n\n _getTopNode() {\n if (this.argsStack.length === 0)\n throw new Error(`param: Invocation failed because argsStack is empty`);\n const top = this.argsStack[this.argsStack.length - 1];\n return top;\n }\n\n setValue(value) {\n const top = this._getTopNode();\n if (top.setValue) {\n const callID = getCallID();\n setCallID(this._prevCallID);\n top.setValue(value);\n setCallID(callID);\n } else {\n throw new Error(\n `param: setValue(${value}) failed because the top element has no known method for updating it's current value.`\n );\n }\n }\n\n __onEvaluate() {\n const callID = getCallID();\n setCallID(this._prevCallID);\n const top = this._getTopNode();\n const value = val(top);\n setCallID(callID);\n return value;\n }\n\n start() {\n const node = this._getTopNode();\n invariant(\n node instanceof AnimatedClock || node instanceof AnimatedParam,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n node.start();\n }\n\n stop() {\n const node = this._getTopNode();\n invariant(\n node instanceof AnimatedClock || node instanceof AnimatedParam,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n node.stop();\n }\n\n isRunning() {\n const node = this._getTopNode();\n\n if (node instanceof AnimatedParam) {\n return node.isRunning();\n }\n invariant(\n node instanceof AnimatedClock,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n return node.isStarted();\n }\n}\n\nexport function createAnimatedParam() {\n return new AnimatedParam();\n}\n","import InternalAnimatedValue from './InternalAnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\n\nclass AnimatedMainClock extends InternalAnimatedValue {\n _frameCallback;\n\n constructor() {\n super({ type: 'MAIN_CLOCK' });\n }\n\n __onEvaluate() {\n return +new Date();\n }\n\n _runFrame = () => {\n this._updateValue(0);\n if (this.__children.length > 0) {\n this._frameCallback = requestAnimationFrame(this._runFrame);\n }\n };\n\n __attach() {\n super.__attach();\n if (!this._frameCallback) {\n this._frameCallback = requestAnimationFrame(this._runFrame);\n }\n }\n\n __detach() {\n if (this._frameCallback) {\n cancelAnimationFrame(this._frameCallback);\n this._frameCallback = null;\n }\n super.__detach();\n }\n}\n\nconst mainClock = new AnimatedMainClock();\n\nexport default class AnimatedClock extends AnimatedNode {\n _started;\n _attached;\n\n constructor() {\n super({ type: 'clock' });\n }\n\n toString() {\n return `AnimatedClock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return val(mainClock);\n }\n\n __attach() {\n super.__attach();\n if (this._started && !this._attached) {\n mainClock.__addChild(this);\n }\n this._attached = true;\n }\n\n __detach() {\n if (this._started && this._attached) {\n mainClock.__removeChild(this);\n }\n this._attached = false;\n super.__detach();\n }\n\n start() {\n if (!this._started && this._attached) {\n mainClock.__addChild(this);\n }\n this._started = true;\n }\n\n stop() {\n if (this._started && this._attached) {\n mainClock.__removeChild(this);\n }\n this._started = false;\n }\n\n isStarted() {\n return this._started;\n }\n}\n","import AnimatedValue from '../core/InternalAnimatedValue';\nimport { createAnimatedSet as set } from '../core/AnimatedSet';\nimport { createAnimatedCall as call } from '../core/AnimatedCall';\nimport { createAnimatedAlways as always } from '../core/AnimatedAlways';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\n\n/**\n * evaluate given node and notify children\n * @param node - node to be evaluated\n * @param input - nodes (or one node) representing values which states input for node.\n * @param callback - after callback\n */\n\nexport function evaluateOnce(node, input = [], callback) {\n if (!Array.isArray(input)) {\n input = [input];\n }\n const done = new AnimatedValue(0);\n const evalNode = cond(\n done,\n 0,\n call([node, set(done, 1)], () => {\n callback && callback();\n for (let i = 0; i < input.length; i++) {\n input[i].__removeChild(alwaysNode);\n alwaysNode.__detach();\n }\n })\n );\n const alwaysNode = always(evalNode);\n for (let i = 0; i < input.length; i++) {\n input[i].__addChild(alwaysNode);\n alwaysNode.__attach();\n }\n}\n","import invariant from 'invariant';\nimport ReanimatedEventEmitter from '../../ReanimatedEventEmitter';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\n\nconst NODE_MAPPING = new Map();\n\nfunction listener(data) {\n const node = NODE_MAPPING.get(data.id);\n node && node._callback(data.args);\n}\n\nclass AnimatedCall extends AnimatedNode {\n _callback;\n _args;\n\n constructor(args, jsFunction) {\n invariant(\n args.every((el) => el instanceof AnimatedNode),\n `Reanimated: Animated.call node args should be an array with elements of type AnimatedNode. One or more of them are not AnimatedNodes`\n );\n super({ type: 'call', input: args }, args);\n this._callback = jsFunction;\n this._args = args;\n }\n\n toString() {\n return `AnimatedCall, id: ${this.__nodeID}`;\n }\n\n __attach() {\n super.__attach();\n NODE_MAPPING.set(this.__nodeID, this);\n if (NODE_MAPPING.size === 1) {\n ReanimatedEventEmitter.addListener('onReanimatedCall', listener);\n }\n }\n\n __detach() {\n NODE_MAPPING.delete(this.__nodeID);\n if (NODE_MAPPING.size === 0) {\n ReanimatedEventEmitter.removeAllListeners('onReanimatedCall');\n }\n super.__detach();\n }\n\n __onEvaluate() {\n this._callback(this._args.map(val));\n return 0;\n }\n}\n\nexport function createAnimatedCall(args, func) {\n return new AnimatedCall(args, func);\n}\n","import AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\nimport { val } from '../val';\n\nclass AnimatedAlways extends AnimatedNode {\n _what;\n\n constructor(what) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: Animated.always node argument should be of type AnimatedNode but got ${what}`\n );\n super({ type: 'always', what }, [what]);\n this._what = what;\n }\n\n toString() {\n return `AnimatedAlways, id: ${this.__nodeID}`;\n }\n\n update() {\n this.__getValue();\n }\n\n __onEvaluate() {\n val(this._what);\n return 0;\n }\n}\n\nexport function createAnimatedAlways(item) {\n return new AnimatedAlways(item);\n}\n","// JSC on Android and iOS 8 & 9 does not support proxies.\n// The below workaround provides a proxy-like functionality for event data by\n// creating an object which contains predefined fields for the most commonly\n// used event attributes. If your app uses even attribute which is not listed\n// here please submit a PR to add that and we will merge it right away\nexport default function createEventObjectProxyPolyfill() {\n const nodesMap = {\n // Gesture handlers-related event\n translationX: {},\n translationY: {},\n state: {},\n oldState: {},\n absoluteX: {},\n absoluteY: {},\n x: {},\n y: {},\n velocityX: {},\n velocityY: {},\n scale: {},\n focalX: {},\n focalY: {},\n rotation: {},\n anchorX: {},\n anchorY: {},\n velocity: {},\n numberOfPointers: {},\n // onLayour-related event\n layout: { x: {}, y: {}, width: {}, height: {} },\n // ScrollView event\n contentOffset: { y: {}, x: {} },\n layoutMeasurement: { width: {}, height: {} },\n contentSize: { width: {}, height: {} },\n zoomScale: {},\n contentInset: { right: {}, top: {}, left: {}, bottom: {} },\n };\n const traverse = (obj) => {\n for (const key in obj) {\n traverse(obj[key]);\n Object.assign(obj[key], { __isProxy: true });\n }\n };\n traverse(nodesMap);\n return nodesMap;\n}\n","import { findNodeHandle } from 'react-native';\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedEvent from './AnimatedEvent';\nimport { createOrReuseStyleNode } from './AnimatedStyle';\n\nimport invariant from 'invariant';\nimport deepEqual from 'lodash.isequal';\nimport { val } from '../val';\n\nfunction sanitizeProps(inputProps) {\n let props;\n for (const key in inputProps) {\n const value = inputProps[key];\n if (value instanceof AnimatedNode && !(value instanceof AnimatedEvent)) {\n if (props === undefined) {\n props = {};\n }\n props[key] = value.__nodeID;\n }\n }\n return props;\n}\n\nexport function createOrReusePropsNode(props, callback, oldNode) {\n if (props.style) {\n const style = createOrReuseStyleNode(\n props.style,\n oldNode && oldNode._props.style\n );\n if (style) {\n props = {\n ...props,\n style,\n };\n }\n }\n const config = sanitizeProps(props);\n if (config === undefined) {\n return undefined;\n }\n if (oldNode && deepEqual(config, oldNode._config)) {\n return oldNode;\n }\n return new AnimatedProps(props, config, callback);\n}\n\nclass AnimatedProps extends AnimatedNode {\n constructor(props, config, callback) {\n super(\n { type: 'props', props: config },\n Object.values(props).filter((n) => !(n instanceof AnimatedEvent))\n );\n this._config = config;\n this._props = props;\n this._callback = callback;\n this.__attach();\n }\n\n toString() {\n return `AnimatedProps, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const props = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getValue();\n }\n }\n return props;\n }\n\n __detach() {\n const nativeViewTag = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree'\n );\n this._disconnectAnimatedView(nativeViewTag);\n super.__detach();\n }\n\n update() {\n this._callback();\n\n if (!this._animatedView) {\n return;\n }\n\n val(this);\n }\n\n setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n this._animatedView = animatedView;\n\n const nativeViewTag = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree'\n );\n this._connectAnimatedView(nativeViewTag);\n }\n}\n","import { StyleSheet } from 'react-native';\n\nimport AnimatedNode from './AnimatedNode';\nimport { createOrReuseTransformNode } from './AnimatedTransform';\n\nimport deepEqual from 'lodash.isequal';\n\nfunction sanitizeStyle(inputStyle) {\n let style;\n for (const key in inputStyle) {\n const value = inputStyle[key];\n if (value instanceof AnimatedNode) {\n if (style === undefined) {\n style = {};\n }\n style[key] = value.__nodeID;\n }\n }\n return style;\n}\n\nexport function createOrReuseStyleNode(style, oldNode) {\n style = StyleSheet.flatten(style) || {};\n if (style.transform) {\n const transform = createOrReuseTransformNode(\n style.transform,\n oldNode && oldNode._style.transform\n );\n if (transform) {\n style = {\n ...style,\n transform,\n };\n }\n }\n const config = sanitizeStyle(style);\n if (config === undefined) {\n return undefined;\n }\n if (oldNode && deepEqual(config, oldNode._config)) {\n return oldNode;\n }\n return new AnimatedStyle(style, config);\n}\n\n/**\n * AnimatedStyle should never be directly instantiated, use createOrReuseStyleNode\n * in order to make a new instance of this node.\n */\nexport default class AnimatedStyle extends AnimatedNode {\n constructor(style, config) {\n super({ type: 'style', style: config }, Object.values(style));\n this._config = config;\n this._style = style;\n }\n\n toString() {\n return `AnimatedStyle, id: ${this.__nodeID}`;\n }\n\n _walkStyleAndGetAnimatedValues(style) {\n const updatedStyle = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n return updatedStyle;\n }\n\n __onEvaluate() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n}\n","import AnimatedNode from './AnimatedNode';\n\nimport deepEqual from 'lodash.isequal';\n\nfunction sanitizeTransform(inputTransform) {\n const outputTransform = [];\n let hasAnimatedTransform = false;\n inputTransform.forEach((transform) => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n hasAnimatedTransform = true;\n outputTransform.push({\n property: key,\n nodeID: value.__nodeID,\n });\n } else {\n outputTransform.push({\n property: key,\n value,\n });\n }\n }\n });\n return hasAnimatedTransform ? outputTransform : undefined;\n}\n\nfunction extractAnimatedParentNodes(transform) {\n const parents = [];\n transform.forEach((transform) => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n parents.push(value);\n }\n }\n });\n return parents;\n}\n\nexport function createOrReuseTransformNode(transform, oldNode) {\n const config = sanitizeTransform(transform);\n if (config === undefined) {\n return undefined;\n }\n if (oldNode && deepEqual(config, oldNode._config)) {\n return oldNode;\n }\n return new AnimatedTransform(transform, config);\n}\n\nclass AnimatedTransform extends AnimatedNode {\n constructor(transform, config) {\n super(\n { type: 'transform', transform: config },\n extractAnimatedParentNodes(transform)\n );\n this._config = config;\n this._transform = transform;\n }\n\n toString() {\n return `AnimatedTransform, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return this._transform.map((transform) => {\n const result = {};\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n }\n }\n return result;\n });\n }\n}\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\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 size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\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/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\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 nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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 != null && (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 != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","import { NativeEvent } from './commonTypes';\nimport NativeReanimatedModule from './NativeReanimated';\n\nfunction jsListener<T extends NativeEvent<T>>(\n eventName: string,\n handler: (event: T) => void\n) {\n return (evt: T) => {\n handler({ ...evt.nativeEvent, eventName });\n };\n}\n\nexport default class WorkletEventHandler<T extends NativeEvent<T>> {\n worklet: (event: T) => void;\n eventNames: string[];\n reattachNeeded: boolean;\n listeners: Record<string, (event: T) => void>;\n viewTag: number | undefined;\n registrations: string[];\n constructor(worklet: (event: T) => void, eventNames: string[] = []) {\n this.worklet = worklet;\n this.eventNames = eventNames;\n this.reattachNeeded = false;\n this.listeners = {};\n this.viewTag = undefined;\n this.registrations = [];\n\n if (!NativeReanimatedModule.native) {\n this.listeners = eventNames.reduce(\n (acc: Record<string, (event: T) => void>, eventName: string) => {\n acc[eventName] = jsListener(eventName, worklet);\n return acc;\n },\n {}\n );\n }\n }\n\n updateWorklet(newWorklet: (event: T) => void): void {\n this.worklet = newWorklet;\n this.reattachNeeded = true;\n }\n\n registerForEvents(viewTag: number, fallbackEventName?: string): void {\n this.viewTag = viewTag;\n this.registrations = this.eventNames.map((eventName) =>\n NativeReanimatedModule.registerEventHandler(\n viewTag + eventName,\n this.worklet\n )\n );\n if (this.registrations.length === 0 && fallbackEventName) {\n this.registrations.push(\n NativeReanimatedModule.registerEventHandler(\n viewTag + fallbackEventName,\n this.worklet\n )\n );\n }\n }\n\n unregisterFromEvents(): void {\n this.registrations.forEach((id) =>\n NativeReanimatedModule.unregisterEventHandler(id)\n );\n this.registrations = [];\n }\n}\n","import reanimatedJS from '../js-reanimated';\nimport { shouldBeUseWeb } from '../PlatformChecker';\nimport { NativeReanimated } from './NativeReanimated';\n\nlet exportedModule;\nif (shouldBeUseWeb()) {\n exportedModule = reanimatedJS;\n} else {\n exportedModule = new NativeReanimated();\n}\n\nexport default exportedModule as NativeReanimated;\n","import JSReanimated from './JSReanimated';\nimport { AnimatedStyle, StyleProps } from '../commonTypes';\n\nconst reanimatedJS = new JSReanimated();\n\ninterface JSReanimatedComponent {\n previousStyle: StyleProps;\n setNativeProps: (style: StyleProps) => void;\n props: Record<string, string | number>;\n _touchableNode: {\n setAttribute: (key: string, props: unknown) => void;\n };\n}\n\nexport const _updatePropsJS = (\n updates: StyleProps | AnimatedStyle,\n viewRef: { _component?: JSReanimatedComponent }\n): void => {\n if (viewRef._component) {\n const component = viewRef._component;\n const [rawStyles] = Object.keys(updates).reduce(\n (acc: [StyleProps, AnimatedStyle], key) => {\n const value = updates[key];\n const index = typeof value === 'function' ? 1 : 0;\n acc[index][key] = value;\n return acc;\n },\n [{}, {}]\n );\n\n if (typeof component.setNativeProps === 'function') {\n setNativeProps(component, rawStyles);\n } else if (Object.keys(component.props).length > 0) {\n Object.keys(component.props).forEach((key) => {\n if (!rawStyles[key]) {\n return;\n }\n const dashedKey = key.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());\n component._touchableNode.setAttribute(dashedKey, rawStyles[key]);\n });\n } else {\n console.warn('It is not possible to manipulate component');\n }\n }\n};\n\nconst setNativeProps = (\n component: JSReanimatedComponent,\n style: StyleProps\n): void => {\n const previousStyle = component.previousStyle ? component.previousStyle : {};\n const currentStyle = { ...previousStyle, ...style };\n component.previousStyle = currentStyle;\n component.setNativeProps({ style: currentStyle });\n};\n\nexport default reanimatedJS;\n","import MapperRegistry from './MapperRegistry';\nimport Mapper from './Mapper';\nimport MutableValue from './MutableValue';\nimport { NativeReanimated } from '../NativeReanimated/NativeReanimated';\nimport {\n Timestamp,\n NestedObjectValues,\n AnimatedKeyboardInfo,\n} from '../commonTypes';\nimport { isJest } from '../PlatformChecker';\n\nexport default class JSReanimated extends NativeReanimated {\n _valueSetter?: <T>(value: T) => void = undefined;\n\n _renderRequested = false;\n _mapperRegistry: MapperRegistry<any> = new MapperRegistry(this);\n _frames: ((timestamp: Timestamp) => void)[] = [];\n timeProvider: { now: () => number };\n\n constructor() {\n super(false);\n if (isJest()) {\n this.timeProvider = { now: () => global.ReanimatedDataMock.now() };\n } else {\n this.timeProvider = { now: () => window.performance.now() };\n }\n }\n\n pushFrame(frame: (timestamp: Timestamp) => void): void {\n this._frames.push(frame);\n this.maybeRequestRender();\n }\n\n getTimestamp(): number {\n return this.timeProvider.now();\n }\n\n maybeRequestRender(): void {\n if (!this._renderRequested) {\n this._renderRequested = true;\n\n requestAnimationFrame((_timestampMs) => {\n this._renderRequested = false;\n\n this._onRender(this.getTimestamp());\n });\n }\n }\n\n _onRender(timestampMs: number): void {\n this._mapperRegistry.execute();\n\n const frames = [...this._frames];\n this._frames = [];\n\n for (let i = 0, len = frames.length; i < len; ++i) {\n frames[i](timestampMs);\n }\n\n if (this._mapperRegistry.needRunOnRender) {\n this._mapperRegistry.execute();\n }\n }\n\n installCoreFunctions(valueSetter: <T>(value: T) => void): void {\n this._valueSetter = valueSetter;\n }\n\n makeShareable<T>(value: T): T {\n return value;\n }\n\n makeMutable<T>(value: T): MutableValue<T> {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return new MutableValue(value, this._valueSetter!);\n }\n\n makeRemote<T>(object = {}): T {\n return object as T;\n }\n\n startMapper(\n mapper: () => void,\n inputs: NestedObjectValues<MutableValue<unknown>>[] = [],\n outputs: NestedObjectValues<MutableValue<unknown>>[] = []\n ): number {\n const instance = new Mapper(this, mapper, inputs, outputs);\n const mapperId = this._mapperRegistry.startMapper(instance);\n this.maybeRequestRender();\n return mapperId;\n }\n\n stopMapper(mapperId: number): void {\n this._mapperRegistry.stopMapper(mapperId);\n }\n\n registerEventHandler<T>(_: string, __: (event: T) => void): string {\n // noop\n return '';\n }\n\n unregisterEventHandler(_: string): void {\n // noop\n }\n\n enableLayoutAnimations() {\n console.warn(\n '[Reanimated] enableLayoutAnimations is not available for WEB yet'\n );\n }\n\n registerSensor(): number {\n console.warn('[Reanimated] useAnimatedSensor is not available on web yet.');\n return -1;\n }\n\n unregisterSensor(): void {\n // noop\n }\n\n jestResetModule() {\n if (isJest()) {\n /**\n * If someone used timers to stop animation before the end,\n * then _renderRequested was set as true\n * and any new update from another test wasn't applied.\n */\n this._renderRequested = false;\n } else {\n throw Error('This method can be only use in Jest testing.');\n }\n }\n\n subscribeForKeyboardEvents(_: AnimatedKeyboardInfo): number {\n console.warn(\n '[Reanimated] useAnimatedKeyboard is not available on web yet.'\n );\n return -1;\n }\n\n unsubscribeFromKeyboardEvents(_: number): void {\n // noop\n }\n}\n","import { JSReanimated } from './commonTypes';\nimport Mapper from './Mapper';\n\nexport default class MapperRegistry<T> {\n sortedMappers: Mapper<T>[] = [];\n mappers: Map<number, Mapper<T>> = new Map();\n _module: JSReanimated;\n\n updatedSinceLastExecute = false;\n\n constructor(module: JSReanimated) {\n this._module = module;\n }\n\n startMapper(mapper: Mapper<T>): number {\n this.mappers.set(mapper.id, mapper);\n this.updatedSinceLastExecute = true;\n return mapper.id;\n }\n\n stopMapper(id: number): void {\n this.mappers.delete(id);\n this.updatedSinceLastExecute = true;\n }\n\n execute(): void {\n if (this.updatedSinceLastExecute) {\n this.updateOrder();\n this.updatedSinceLastExecute = false;\n }\n\n for (let i = 0, len = this.sortedMappers.length; i < len; ++i) {\n const mapper = this.sortedMappers[i];\n if (mapper.dirty) {\n mapper.execute();\n }\n }\n }\n\n updateOrder(): void {\n const nodes = [...this.mappers.values()].map((mapper) => new Node(mapper));\n\n const mappersById: Record<number, Mapper<T>> = {};\n this.mappers.forEach((mapper) => {\n mappersById[mapper.id] = mapper;\n });\n\n // create a graph from array of nodes\n for (let i = 0, nodesLen = nodes.length; i < nodesLen; ++i) {\n const node = nodes[i];\n if (node.mapper.outputs.length === 0) {\n continue;\n }\n for (let j = 0; j < nodesLen; ++j) {\n const restNode = nodes[j];\n if (i === j || restNode.mapper.inputs.length === 0) {\n continue;\n }\n for (\n let outi = 0, outputsLen = node.mapper.outputs.length;\n outi < outputsLen;\n ++outi\n ) {\n for (\n let resti = 0, restLen = restNode.mapper.inputs.length;\n resti < restLen;\n ++resti\n ) {\n if (\n node.mapper.outputs[outi]._id ===\n restNode.mapper.inputs[resti]._id\n ) {\n node.children.push(restNode);\n }\n }\n }\n }\n }\n\n const post: Record<number, number> = {};\n let postCounter = 1;\n const dfs = (node: Node<T>) => {\n const index = nodes.indexOf(node);\n if (index === -1) {\n // this node has already been handled\n return;\n }\n ++postCounter;\n nodes.splice(index, 1);\n if (node.children.length === 0 && nodes.length > 0) {\n post[node.mapper.id] = postCounter++;\n dfs(nodes[0]);\n return;\n }\n for (let i = 0, len = node.children.length; i < len; ++i) {\n dfs(node.children[i]);\n }\n post[node.mapper.id] = postCounter++;\n };\n\n while (nodes.length) dfs(nodes[0]);\n\n const postArray = Object.keys(post).map((key) => {\n const num = parseInt(key);\n return [num, post[num]];\n });\n postArray.sort((a, b) => {\n return b[1] - a[1];\n });\n\n // clear sorted mappers\n this.sortedMappers = [];\n\n for (let i = 0, len = postArray.length; i < len; ++i) {\n const [id] = postArray[i];\n this.sortedMappers.push(mappersById[id]);\n }\n }\n\n get needRunOnRender(): boolean {\n return this.updatedSinceLastExecute;\n }\n}\n\nclass Node<T> {\n mapper: Mapper<T>;\n children: Node<T>[];\n\n constructor(mapper: Mapper<T>, children = []) {\n this.mapper = mapper;\n this.children = children;\n }\n}\n","import { NestedObjectValues } from '../commonTypes';\nimport { JSReanimated } from './commonTypes';\nimport MutableValue from './MutableValue';\n\nexport default class Mapper<T> {\n static MAPPER_ID = 1;\n id: number;\n inputs: MutableValue<T>[];\n outputs: MutableValue<T>[];\n mapper: () => void;\n\n dirty = true;\n\n constructor(\n module: JSReanimated,\n mapper: () => void,\n inputs: NestedObjectValues<MutableValue<T>>[] = [],\n outputs: NestedObjectValues<MutableValue<T>>[] = []\n ) {\n this.id = Mapper.MAPPER_ID++;\n this.inputs = this.extractMutablesFromArray(inputs);\n this.outputs = this.extractMutablesFromArray(outputs);\n this.mapper = mapper;\n\n const markDirty = () => {\n this.dirty = true;\n module.maybeRequestRender();\n };\n\n this.inputs.forEach((input) => {\n input.addListener(markDirty);\n });\n }\n\n execute(): void {\n this.dirty = false;\n this.mapper();\n }\n\n extractMutablesFromArray<T>(\n array: NestedObjectValues<MutableValue<T>>\n ): MutableValue<T>[] {\n const res: MutableValue<T>[] = [];\n\n function extractMutables(value: NestedObjectValues<MutableValue<T>>) {\n if (value == null) {\n // return;\n } else if (value instanceof MutableValue) {\n res.push(value);\n } else if (Array.isArray(value)) {\n value.forEach((v) => extractMutables(v));\n } else if (typeof value === 'object') {\n Object.keys(value).forEach((key) => {\n extractMutables(value[key]);\n });\n }\n }\n\n extractMutables(array);\n return res;\n }\n}\n","export default class MutableValue<T> {\n static MUTABLE_ID = 1;\n _id: number;\n _value: T;\n _setter: (value: T) => void;\n _animation = null;\n _listeners: (() => void)[] = [];\n\n constructor(value: T, setter: (value: T) => void) {\n this._id = MutableValue.MUTABLE_ID++;\n this._value = value;\n this._setter = setter;\n }\n\n get value(): T {\n return this._value;\n }\n\n set value(nextValue: T) {\n this._setter(nextValue);\n }\n\n // this changes the value finally and is supposed to be called from this._setter\n _setValue(newValue: T): void {\n this._value = newValue;\n this._triggerListener();\n }\n\n addListener(listener: () => void): void {\n this._listeners.push(listener);\n }\n\n _triggerListener(): void {\n for (let i = 0, len = this._listeners.length; i < len; ++i) {\n this._listeners[i]();\n }\n }\n}\n","import { NativeModules } from 'react-native';\nimport {\n SharedValue,\n SensorValue3D,\n SensorValueRotation,\n AnimatedKeyboardInfo,\n} from '../commonTypes';\nimport { Descriptor } from '../hook/commonTypes';\nimport { checkVersion } from '../platform-specific/checkVersion';\n\nexport class NativeReanimated {\n native: boolean;\n private InnerNativeModule: any;\n\n constructor(native = true) {\n if (global.__reanimatedModuleProxy === undefined && native) {\n const { ReanimatedModule } = NativeModules;\n ReanimatedModule?.installTurboModule();\n }\n this.InnerNativeModule = global.__reanimatedModuleProxy;\n this.native = native;\n if (native) {\n checkVersion();\n }\n }\n\n installCoreFunctions(valueSetter: <T>(value: T) => void): void {\n return this.InnerNativeModule.installCoreFunctions(valueSetter);\n }\n\n makeShareable<T>(value: T): T {\n return this.InnerNativeModule.makeShareable(value);\n }\n\n makeMutable<T>(value: T): SharedValue<T> {\n return this.InnerNativeModule.makeMutable(value);\n }\n\n makeRemote<T>(object = {}): T {\n return this.InnerNativeModule.makeRemote(object);\n }\n\n registerSensor(\n sensorType: number,\n interval: number,\n sensorData: SensorValue3D | SensorValueRotation\n ) {\n return this.InnerNativeModule.registerSensor(\n sensorType,\n interval,\n sensorData\n );\n }\n\n unregisterSensor(sensorId: number) {\n return this.InnerNativeModule.unregisterSensor(sensorId);\n }\n\n startMapper(\n mapper: () => void,\n inputs: any[] = [],\n outputs: any[] = [],\n updater: () => void,\n viewDescriptors: Descriptor[] | SharedValue<Descriptor[]>\n ): number {\n return this.InnerNativeModule.startMapper(\n mapper,\n inputs,\n outputs,\n updater,\n viewDescriptors\n );\n }\n\n stopMapper(mapperId: number): void {\n return this.InnerNativeModule.stopMapper(mapperId);\n }\n\n registerEventHandler<T>(\n eventHash: string,\n eventHandler: (event: T) => void\n ): string {\n return this.InnerNativeModule.registerEventHandler(eventHash, eventHandler);\n }\n\n unregisterEventHandler(id: string): void {\n return this.InnerNativeModule.unregisterEventHandler(id);\n }\n\n getViewProp<T>(\n viewTag: string,\n propName: string,\n callback?: (result: T) => void\n ): Promise<T> {\n return this.InnerNativeModule.getViewProp(viewTag, propName, callback);\n }\n\n enableLayoutAnimations(flag: boolean): void {\n this.InnerNativeModule.enableLayoutAnimations(flag);\n }\n\n configureProps(uiProps: string[], nativeProps: string[]): void {\n this.InnerNativeModule.configureProps(uiProps, nativeProps);\n }\n\n subscribeForKeyboardEvents(keyboardEventData: AnimatedKeyboardInfo): number {\n return this.InnerNativeModule.subscribeForKeyboardEvents(keyboardEventData);\n }\n\n unsubscribeFromKeyboardEvents(listenerId: number): void {\n this.InnerNativeModule.unsubscribeFromKeyboardEvents(listenerId);\n }\n}\n","import { version as jsVersion } from '../../../package.json';\n\n/**\n * Checks that native and js versions of reanimated match.\n */\nexport function checkVersion(): void {\n const cppVersion = global._REANIMATED_VERSION_CPP;\n if (cppVersion === undefined) {\n console.error(\n `[Reanimated] Couldn't determine the version of the native part of Reanimated. Did you forget to re-build the app after upgrading react-native-reanimated? If you use Expo Go, you must use the exact version which is bundled into Expo SDK.`\n );\n return;\n }\n const ok = (() => {\n if (\n jsVersion.match(/^\\d+\\.\\d+\\.\\d+$/) &&\n cppVersion.match(/^\\d+\\.\\d+\\.\\d+$/)\n ) {\n // x.y.z, compare only major and minor, skip patch\n const [jsMajor, jsMinor] = jsVersion.split('.');\n const [cppMajor, cppMinor] = cppVersion.split('.');\n return jsMajor === cppMajor && jsMinor === cppMinor;\n } else {\n // alpha, beta or rc, compare everything\n return jsVersion === cppVersion;\n }\n })();\n if (!ok) {\n console.error(\n `[Reanimated] Mismatch between JavaScript part and native part of Reanimated (${jsVersion} vs. ${cppVersion}). Did you forget to re-build the app after upgrading react-native-reanimated? If you use Expo Go, you must downgrade to ${cppVersion} which is bundled into Expo SDK.`\n );\n // TODO: detect Expo managed workflow\n }\n}\n","/**\n * imported from react-native\n */\n\nimport { MutableRefObject } from 'react';\n\n/**\n * This is a helper function for when a component needs to be able to forward a ref\n * to a child component, but still needs to have access to that component as part of\n * its implementation.\n *\n * Its main use case is in wrappers for native components.\n *\n * Usage:\n *\n * class MyView extends React.Component {\n * _nativeRef = null;\n *\n * _setNativeRef = setAndForwardRef({\n * getForwardedRef: () => this.props.forwardedRef,\n * setLocalRef: ref => {\n * this._nativeRef = ref;\n * },\n * });\n *\n * render() {\n * return <View ref={this._setNativeRef} />;\n * }\n * }\n *\n * const MyViewWithRef = React.forwardRef((props, ref) => (\n * <MyView {...props} forwardedRef={ref} />\n * ));\n *\n * module.exports = MyViewWithRef;\n */\n\nexport type ForwardedRef<T> = () => MutableRefObject<T> | ((ref: T) => void);\n\nfunction setAndForwardRef<T>({\n getForwardedRef,\n setLocalRef,\n}: {\n getForwardedRef: ForwardedRef<T>;\n setLocalRef: (ref: T) => void;\n}): (ref: T) => void {\n return function forwardRef(ref: T) {\n const forwardedRef = getForwardedRef();\n\n setLocalRef(ref);\n\n // Forward to user ref prop (if one has been specified)\n if (typeof forwardedRef === 'function') {\n // Handle function-based refs. String-based refs are handled as functions.\n forwardedRef(ref);\n } else if (typeof forwardedRef === 'object' && forwardedRef != null) {\n // Handle createRef-based refs\n forwardedRef.current = ref;\n }\n };\n}\n\nexport default setAndForwardRef;\n","/* global _stopObservingProgress, _startObservingProgress */\nimport { runOnUI } from '../core';\nimport { withStyleAnimation } from '../animation/styleAnimation';\nimport { ColorProperties } from '../UpdateProps';\nimport { processColor } from '../Colors';\n\nrunOnUI(() => {\n 'worklet';\n\n const configs: Record<string, any> = Object.create(null);\n const enteringAnimationForTag: Record<string, any> = {};\n\n global.LayoutAnimationRepository = {\n configs,\n registerConfig(tag, config) {\n configs[tag] = config;\n enteringAnimationForTag[tag] = null;\n },\n removeConfig(tag) {\n delete configs[tag];\n delete enteringAnimationForTag[tag];\n },\n startAnimationForTag(tag, type, yogaValues) {\n if (configs[tag] == null) {\n return; // :(\n }\n const style = configs[tag][type](yogaValues);\n let currentAnimation = style.animations;\n if (type === 'entering') {\n enteringAnimationForTag[tag] = style;\n } else if (type === 'layout' && enteringAnimationForTag[tag] !== null) {\n const entryAniamtion = enteringAnimationForTag[tag].animations;\n const layoutAnimation = style.animations;\n currentAnimation = {};\n for (const key in entryAniamtion) {\n currentAnimation[key] = entryAniamtion[key];\n }\n for (const key in layoutAnimation) {\n currentAnimation[key] = layoutAnimation[key];\n }\n }\n\n const sv: { value: boolean; _value: boolean } = configs[tag].sv;\n _stopObservingProgress(tag, false);\n _startObservingProgress(tag, sv);\n\n const backupColor: Record<string, string> = {};\n for (const key in style.initialValues) {\n if (ColorProperties.includes(key)) {\n const value = style.initialValues[key];\n backupColor[key] = value;\n style.initialValues[key] = processColor(value);\n }\n }\n\n sv.value = Object.assign({}, sv._value, style.initialValues);\n _stopObservingProgress(tag, false);\n const animation = withStyleAnimation(currentAnimation);\n\n animation.callback = (finished?: boolean) => {\n if (finished) {\n _stopObservingProgress(tag, finished);\n }\n style.callback && style.callback(finished);\n };\n\n if (backupColor) {\n configs[tag].sv._value = { ...configs[tag].sv.value, ...backupColor };\n }\n\n configs[tag].sv.value = animation;\n _startObservingProgress(tag, sv);\n },\n };\n})();\n","/* global _WORKLET _getCurrentTime _frameTimestamp _eventTimestamp, _setGlobalConsole */\nimport NativeReanimatedModule from './NativeReanimated';\nimport { Platform } from 'react-native';\nimport { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';\nimport {\n BasicWorkletFunction,\n ComplexWorkletFunction,\n SharedValue,\n AnimationObject,\n AnimatableValue,\n Timestamp,\n} from './commonTypes';\nimport { Descriptor } from './hook/commonTypes';\nimport JSReanimated from './js-reanimated/JSReanimated';\n\nif (global._setGlobalConsole === undefined) {\n // it can happen when Reanimated plugin wasn't added, but the user uses the only API from version 1\n global._setGlobalConsole = () => {\n // noop\n };\n}\n\nexport type ReanimatedConsole = Pick<\n Console,\n 'debug' | 'log' | 'warn' | 'info' | 'error'\n>;\n\nexport type WorkletValue =\n | (() => AnimationObject)\n | AnimationObject\n | AnimatableValue\n | Descriptor;\ninterface WorkletValueSetterContext {\n _animation?: AnimationObject | null;\n _value?: AnimatableValue | Descriptor;\n value?: AnimatableValue;\n _setValue?: (val: AnimatableValue | Descriptor) => void;\n}\n\nconst testWorklet: BasicWorkletFunction<void> = () => {\n 'worklet';\n};\n\nconst throwUninitializedReanimatedException = () => {\n throw new Error(\n \"Failed to initialize react-native-reanimated library, make sure you followed installation steps here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/ \\n1) Make sure reanimated's babel plugin is installed in your babel.config.js (you should have 'react-native-reanimated/plugin' listed there - also see the above link for details) \\n2) Make sure you reset build cache after updating the config, run: yarn start --reset-cache\"\n );\n};\n\nexport const checkPluginState: (throwError: boolean) => boolean = (\n throwError = true\n) => {\n if (!testWorklet.__workletHash && !shouldBeUseWeb()) {\n if (throwError) {\n throwUninitializedReanimatedException();\n }\n return false;\n }\n return true;\n};\n\nexport const isConfigured: (throwError?: boolean) => boolean = (\n throwError = false\n) => {\n return checkPluginState(throwError);\n};\n\nexport const isConfiguredCheck: () => void = () => {\n checkPluginState(true);\n};\n\nfunction pushFrame(frame: (timestamp: Timestamp) => void): void {\n (NativeReanimatedModule as JSReanimated).pushFrame(frame);\n}\n\nexport function requestFrame(frame: (timestamp: Timestamp) => void): void {\n 'worklet';\n if (NativeReanimatedModule.native) {\n requestAnimationFrame(frame);\n } else {\n pushFrame(frame);\n }\n}\n\nglobal._WORKLET = false;\nglobal._log = function (s: string) {\n console.log(s);\n};\n\nexport function runOnUI<A extends any[], R>(\n worklet: ComplexWorkletFunction<A, R>\n): (...args: A) => void {\n return makeShareable(worklet);\n}\n\nexport function makeShareable<T>(value: T): T {\n isConfiguredCheck();\n return NativeReanimatedModule.makeShareable(value);\n}\n\nexport function getViewProp<T>(viewTag: string, propName: string): Promise<T> {\n return new Promise((resolve, reject) => {\n return NativeReanimatedModule.getViewProp(\n viewTag,\n propName,\n (result: T) => {\n if (typeof result === 'string' && result.substr(0, 6) === 'error:') {\n reject(result);\n } else {\n resolve(result);\n }\n }\n );\n });\n}\n\nlet _getTimestamp: () => number;\nif (nativeShouldBeMock()) {\n _getTimestamp = () => {\n return (NativeReanimatedModule as JSReanimated).getTimestamp();\n };\n} else {\n _getTimestamp = () => {\n 'worklet';\n if (_frameTimestamp) {\n return _frameTimestamp;\n }\n if (_eventTimestamp) {\n return _eventTimestamp;\n }\n return _getCurrentTime();\n };\n}\n\nexport function getTimestamp(): number {\n 'worklet';\n if (Platform.OS === 'web') {\n return (NativeReanimatedModule as JSReanimated).getTimestamp();\n }\n return _getTimestamp();\n}\n\nfunction workletValueSetter<T extends WorkletValue>(\n this: WorkletValueSetterContext,\n value: T\n): void {\n 'worklet';\n const previousAnimation = this._animation;\n if (previousAnimation) {\n previousAnimation.cancelled = true;\n this._animation = null;\n }\n if (\n typeof value === 'function' ||\n (value !== null &&\n typeof value === 'object' &&\n (value as AnimationObject).onFrame !== undefined)\n ) {\n const animation: AnimationObject =\n typeof value === 'function'\n ? (value as () => AnimationObject)()\n : (value as AnimationObject);\n // prevent setting again to the same value\n // and triggering the mappers that treat this value as an input\n // this happens when the animation's target value(stored in animation.current until animation.onStart is called) is set to the same value as a current one(this._value)\n // built in animations that are not higher order(withTiming, withSpring) hold target value in .current\n if (this._value === animation.current && !animation.isHigherOrder) {\n animation.callback && animation.callback(true);\n return;\n }\n // animated set\n const initializeAnimation = (timestamp: number) => {\n animation.onStart(animation, this.value, timestamp, previousAnimation);\n };\n initializeAnimation(getTimestamp());\n const step = (timestamp: number) => {\n if (animation.cancelled) {\n animation.callback && animation.callback(false /* finished */);\n return;\n }\n const finished = animation.onFrame(animation, timestamp);\n animation.finished = true;\n animation.timestamp = timestamp;\n this._value = animation.current;\n if (finished) {\n animation.callback && animation.callback(true /* finished */);\n } else {\n requestAnimationFrame(step);\n }\n };\n\n this._animation = animation;\n\n if (_frameTimestamp) {\n // frame\n step(_frameTimestamp);\n } else {\n requestAnimationFrame(step);\n }\n } else {\n // prevent setting again to the same value\n // and triggering the mappers that treat this value as an input\n if (this._value === value) {\n return;\n }\n this._value = value as Descriptor | AnimatableValue;\n }\n}\n\n// We cannot use pushFrame\n// so we use own implementation for js\nfunction workletValueSetterJS<T extends WorkletValue>(\n this: WorkletValueSetterContext,\n value: T\n): void {\n const previousAnimation = this._animation;\n if (previousAnimation) {\n previousAnimation.cancelled = true;\n this._animation = null;\n }\n if (\n typeof value === 'function' ||\n (value !== null &&\n typeof value === 'object' &&\n (value as AnimationObject).onFrame)\n ) {\n // animated set\n const animation: AnimationObject =\n typeof value === 'function'\n ? (value as () => AnimationObject)()\n : (value as AnimationObject);\n let initializeAnimation: ((timestamp: number) => void) | null = (\n timestamp: number\n ) => {\n animation.onStart(animation, this.value, timestamp, previousAnimation);\n };\n const step = (timestamp: number) => {\n if (animation.cancelled) {\n animation.callback && animation.callback(false /* finished */);\n return;\n }\n if (initializeAnimation) {\n initializeAnimation(timestamp);\n initializeAnimation = null; // prevent closure from keeping ref to previous animation\n }\n const finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n this._setValue && this._setValue(animation.current as AnimatableValue);\n if (finished) {\n animation.callback && animation.callback(true /* finished */);\n } else {\n requestFrame(step);\n }\n };\n\n this._animation = animation;\n\n requestFrame(step);\n } else {\n this._setValue && this._setValue(value as AnimatableValue | Descriptor);\n }\n}\n\nexport function makeMutable<T>(value: T): SharedValue<T> {\n isConfiguredCheck();\n return NativeReanimatedModule.makeMutable(value);\n}\n\nexport function makeRemote<T>(object = {}): T {\n isConfiguredCheck();\n return NativeReanimatedModule.makeRemote(object);\n}\n\nexport function startMapper(\n mapper: () => void,\n inputs: any[] = [],\n outputs: any[] = [],\n updater: () => void = () => {\n // noop\n },\n viewDescriptors: Descriptor[] | SharedValue<Descriptor[]> = []\n): number {\n isConfiguredCheck();\n return NativeReanimatedModule.startMapper(\n mapper,\n inputs,\n outputs,\n updater,\n viewDescriptors\n );\n}\n\nexport function stopMapper(mapperId: number): void {\n NativeReanimatedModule.stopMapper(mapperId);\n}\n\nexport interface RunOnJSFunction<A extends any[], R> {\n __callAsync?: (...args: A) => void;\n (...args: A): R;\n}\n\nexport function runOnJS<A extends any[], R>(\n fun: RunOnJSFunction<A, R>\n): () => void {\n 'worklet';\n if (!_WORKLET) {\n return fun;\n }\n if (!fun.__callAsync) {\n throw new Error(\n \"Attempting to call runOnJS with an object that is not a host function. Using runOnJS is only possible with methods that are defined on the main React-Native Javascript thread and that aren't marked as worklets\"\n );\n } else {\n return fun.__callAsync;\n }\n}\n\nNativeReanimatedModule.installCoreFunctions(\n NativeReanimatedModule.native\n ? (workletValueSetter as <T>(value: T) => void)\n : (workletValueSetterJS as <T>(value: T) => void)\n);\n\nif (!isWeb() && isConfigured()) {\n const capturableConsole = console;\n runOnUI(() => {\n 'worklet';\n const console = {\n debug: runOnJS(capturableConsole.debug),\n log: runOnJS(capturableConsole.log),\n warn: runOnJS(capturableConsole.warn),\n error: runOnJS(capturableConsole.error),\n info: runOnJS(capturableConsole.info),\n };\n _setGlobalConsole(console);\n })();\n}\n\ntype FeaturesConfig = {\n enableLayoutAnimations: boolean;\n setByUser: boolean;\n};\n\nlet featuresConfig: FeaturesConfig = {\n enableLayoutAnimations: false,\n setByUser: false,\n};\n\nexport function enableLayoutAnimations(\n flag: boolean,\n isCallByUser = true\n): void {\n if (isCallByUser) {\n featuresConfig = {\n enableLayoutAnimations: flag,\n setByUser: true,\n };\n NativeReanimatedModule.enableLayoutAnimations(flag);\n } else if (\n !featuresConfig.setByUser &&\n featuresConfig.enableLayoutAnimations !== flag\n ) {\n featuresConfig.enableLayoutAnimations = flag;\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n}\n\nexport function configureProps(uiProps: string[], nativeProps: string[]): void {\n if (!nativeShouldBeMock()) {\n NativeReanimatedModule.configureProps(uiProps, nativeProps);\n }\n}\n\nexport function jestResetJsReanimatedModule() {\n (NativeReanimatedModule as JSReanimated).jestResetModule();\n}\n","import { defineAnimation } from './util';\nimport {\n Timestamp,\n AnimatableValue,\n AnimationObject,\n Animation,\n AnimatedStyle,\n NestedObject,\n NestedObjectValues,\n} from '../commonTypes';\nimport { StyleLayoutAnimation } from './commonTypes';\nimport { withTiming } from './timing';\nimport { ColorProperties } from '../UpdateProps';\nimport { processColor } from '../Colors';\n\n// resolves path to value for nested objects\n// if path cannot be resolved returns undefined\nexport function resolvePath<T>(\n obj: NestedObject<T>,\n path: AnimatableValue[] | AnimatableValue\n): NestedObjectValues<T> | undefined {\n 'worklet';\n const keys: AnimatableValue[] = Array.isArray(path) ? path : [path];\n return keys.reduce<NestedObjectValues<T> | undefined>((acc, current) => {\n if (Array.isArray(acc) && typeof current === 'number') {\n return acc[current];\n } else if (typeof acc === 'object' && (current as number | string) in acc) {\n return (acc as { [key: string]: NestedObjectValues<T> })[\n current as number | string\n ];\n }\n return undefined;\n }, obj);\n}\n\n// set value at given path\ntype Path = Array<string | number> | string | number;\nexport function setPath<T>(\n obj: NestedObject<T>,\n path: Path,\n value: NestedObjectValues<T>\n): void {\n 'worklet';\n const keys: Path = Array.isArray(path) ? path : [path];\n let currObj: NestedObjectValues<T> = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n // creates entry if there isn't one\n currObj = currObj as { [key: string]: NestedObjectValues<T> };\n if (!(keys[i] in currObj)) {\n // if next key is a number create an array\n if (typeof keys[i + 1] === 'number') {\n currObj[keys[i]] = [];\n } else {\n currObj[keys[i]] = {};\n }\n }\n currObj = currObj[keys[i]];\n }\n\n (currObj as { [key: string]: NestedObjectValues<T> })[keys[keys.length - 1]] =\n value;\n}\n\ninterface NestedObjectEntry<T> {\n value: NestedObjectValues<T>;\n path: (string | number)[];\n}\n\nexport function withStyleAnimation(\n styleAnimations: AnimatedStyle\n): StyleLayoutAnimation {\n 'worklet';\n return defineAnimation<StyleLayoutAnimation>({}, () => {\n 'worklet';\n\n const onFrame = (\n animation: StyleLayoutAnimation,\n now: Timestamp\n ): boolean => {\n let stillGoing = false;\n const entriesToCheck: NestedObjectEntry<AnimationObject>[] = [\n { value: animation.styleAnimations, path: [] },\n ];\n while (entriesToCheck.length > 0) {\n const currentEntry: NestedObjectEntry<AnimationObject> =\n entriesToCheck.pop() as NestedObjectEntry<AnimationObject>;\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n } else if (\n typeof currentEntry.value === 'object' &&\n currentEntry.value.onFrame === undefined\n ) {\n // nested object\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n } else {\n const currentStyleAnimation: AnimationObject =\n currentEntry.value as AnimationObject;\n if (currentStyleAnimation.finished) {\n continue;\n }\n const finished = currentStyleAnimation.onFrame(\n currentStyleAnimation,\n now\n );\n if (finished) {\n currentStyleAnimation.finished = true;\n if (currentStyleAnimation.callback) {\n currentStyleAnimation.callback(true);\n }\n } else {\n stillGoing = true;\n }\n\n if (ColorProperties.includes(currentEntry.path[0] as string)) {\n currentStyleAnimation.current = processColor(\n currentStyleAnimation.current\n ) as number;\n }\n\n setPath(\n animation.current,\n currentEntry.path,\n currentStyleAnimation.current\n );\n }\n }\n return !stillGoing;\n };\n\n const onStart = (\n animation: StyleLayoutAnimation,\n value: AnimatedStyle,\n now: Timestamp,\n previousAnimation: StyleLayoutAnimation\n ): void => {\n const entriesToCheck: NestedObjectEntry<\n AnimationObject | AnimatableValue\n >[] = [{ value: styleAnimations, path: [] }];\n while (entriesToCheck.length > 0) {\n const currentEntry: NestedObjectEntry<\n AnimationObject | AnimatableValue\n > = entriesToCheck.pop() as NestedObjectEntry<\n AnimationObject | AnimatableValue\n >;\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n } else if (\n typeof currentEntry.value === 'object' &&\n currentEntry.value.onStart === undefined\n ) {\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n } else {\n const prevAnimation = resolvePath(\n previousAnimation?.styleAnimations,\n currentEntry.path\n );\n let prevVal = resolvePath(value, currentEntry.path);\n if (prevAnimation && !prevVal) {\n prevVal = prevAnimation.current;\n }\n if (prevVal === undefined) {\n console.warn(\n `Initial values for animation are missing for property ${currentEntry.path.join(\n '.'\n )}`\n );\n }\n setPath(animation.current, currentEntry.path, prevVal);\n let currentAnimation: AnimationObject;\n if (\n typeof currentEntry.value !== 'object' ||\n !currentEntry.value.onStart\n ) {\n currentAnimation = withTiming(\n currentEntry.value as AnimatableValue,\n { duration: 0 }\n );\n setPath(\n animation.styleAnimations,\n currentEntry.path,\n currentAnimation\n );\n } else {\n currentAnimation = currentEntry.value as Animation<AnimationObject>;\n }\n currentAnimation.onStart(\n currentAnimation,\n prevVal,\n now,\n prevAnimation\n );\n }\n }\n };\n\n const callback = (finished: boolean): void => {\n if (!finished) {\n const animationsToCheck: NestedObjectValues<AnimationObject>[] = [\n styleAnimations,\n ];\n while (animationsToCheck.length > 0) {\n const currentAnimation: NestedObjectValues<AnimationObject> =\n animationsToCheck.pop() as NestedObjectValues<AnimationObject>;\n if (Array.isArray(currentAnimation)) {\n for (const element of currentAnimation) {\n animationsToCheck.push(element);\n }\n } else if (\n typeof currentAnimation === 'object' &&\n currentAnimation.onStart === undefined\n ) {\n for (const value of Object.values(currentAnimation)) {\n animationsToCheck.push(value);\n }\n } else {\n const currentStyleAnimation: AnimationObject =\n currentAnimation as AnimationObject;\n if (\n !currentStyleAnimation.finished &&\n currentStyleAnimation.callback\n ) {\n currentStyleAnimation.callback(false);\n }\n }\n }\n }\n };\n\n return {\n isHigherOrder: true,\n onFrame,\n onStart,\n current: {},\n styleAnimations,\n callback,\n } as StyleLayoutAnimation;\n });\n}\n","import {\n HigherOrderAnimation,\n NextAnimation,\n DelayAnimation,\n RepeatAnimation,\n SequenceAnimation,\n StyleLayoutAnimation,\n} from './commonTypes';\n/* global _WORKLET */\nimport {\n ParsedColorArray,\n isColor,\n convertToRGBA,\n rgbaArrayToRGBAColor,\n toGammaSpace,\n toLinearSpace,\n} from '../Colors';\n\nimport {\n AnimatedStyle,\n SharedValue,\n AnimatableValue,\n Animation,\n AnimationObject,\n Timestamp,\n} from '../commonTypes';\nimport NativeReanimatedModule from '../NativeReanimated';\n\nlet IN_STYLE_UPDATER = false;\n\nexport type UserUpdater = () => AnimatedStyle;\n\nexport function initialUpdaterRun<T>(updater: () => T): T {\n IN_STYLE_UPDATER = true;\n const result = updater();\n IN_STYLE_UPDATER = false;\n return result;\n}\ninterface RecognizedPrefixSuffix {\n prefix?: string;\n suffix?: string;\n strippedValue: number;\n}\n\nfunction recognizePrefixSuffix(value: string | number): RecognizedPrefixSuffix {\n 'worklet';\n if (typeof value === 'string') {\n const match = value.match(\n /([A-Za-z]*)(-?\\d*\\.?\\d*)([eE][-+]?[0-9]+)?([A-Za-z%]*)/\n );\n if (!match) {\n throw Error(\n \"Couldn't parse animation value. Check if there isn't any typo.\"\n );\n }\n const prefix = match[1];\n const suffix = match[4];\n // number with scientific notation\n const number = match[2] + (match[3] ?? '');\n return { prefix, suffix, strippedValue: parseFloat(number) };\n } else {\n return { strippedValue: value };\n }\n}\n\nfunction decorateAnimation<T extends AnimationObject | StyleLayoutAnimation>(\n animation: T\n): void {\n 'worklet';\n if ((animation as HigherOrderAnimation).isHigherOrder) {\n return;\n }\n\n const baseOnStart = (animation as Animation<AnimationObject>).onStart;\n const baseOnFrame = (animation as Animation<AnimationObject>).onFrame;\n const animationCopy = Object.assign({}, animation);\n delete animationCopy.callback;\n\n const prefNumberSuffOnStart = (\n animation: Animation<AnimationObject>,\n value: string | number,\n timestamp: number,\n previousAnimation: Animation<AnimationObject>\n ) => {\n // recognize prefix, suffix, and updates stripped value on animation start\n const { prefix, suffix, strippedValue } = recognizePrefixSuffix(value);\n animation.__prefix = prefix;\n animation.__suffix = suffix;\n animation.strippedCurrent = strippedValue;\n const { strippedValue: strippedToValue } = recognizePrefixSuffix(\n animation.toValue as string | number\n );\n animation.current = strippedValue;\n animation.startValue = strippedValue;\n animation.toValue = strippedToValue;\n if (previousAnimation && previousAnimation !== animation) {\n const {\n prefix: paPrefix,\n suffix: paSuffix,\n strippedValue: paStrippedValue,\n } = recognizePrefixSuffix(previousAnimation.current as string | number);\n previousAnimation.current = paStrippedValue;\n previousAnimation.__prefix = paPrefix;\n previousAnimation.__suffix = paSuffix;\n }\n\n baseOnStart(animation, strippedValue, timestamp, previousAnimation);\n\n animation.current =\n (animation.__prefix ?? '') +\n animation.current +\n (animation.__suffix ?? '');\n\n if (previousAnimation && previousAnimation !== animation) {\n previousAnimation.current =\n (previousAnimation.__prefix ?? '') +\n previousAnimation.current +\n (previousAnimation.__suffix ?? '');\n }\n };\n const prefNumberSuffOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: number\n ) => {\n animation.current = animation.strippedCurrent;\n const res = baseOnFrame(animation, timestamp);\n animation.strippedCurrent = animation.current;\n animation.current =\n (animation.__prefix ?? '') +\n animation.current +\n (animation.__suffix ?? '');\n return res;\n };\n\n const tab = ['R', 'G', 'B', 'A'];\n const colorOnStart = (\n animation: Animation<AnimationObject>,\n value: string | number,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ): void => {\n let RGBAValue: ParsedColorArray;\n let RGBACurrent: ParsedColorArray;\n let RGBAToValue: ParsedColorArray;\n const res: Array<number> = [];\n if (isColor(value)) {\n RGBACurrent = toLinearSpace(convertToRGBA(animation.current));\n RGBAValue = toLinearSpace(convertToRGBA(value));\n if (animation.toValue) {\n RGBAToValue = toLinearSpace(convertToRGBA(animation.toValue));\n }\n }\n tab.forEach((i, index) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = RGBACurrent[index];\n animation[i].toValue = RGBAToValue ? RGBAToValue[index] : undefined;\n animation[i].onStart(\n animation[i],\n RGBAValue[index],\n timestamp,\n previousAnimation ? previousAnimation[i] : undefined\n );\n res.push(animation[i].current);\n });\n\n animation.current = rgbaArrayToRGBAColor(\n toGammaSpace(res as ParsedColorArray)\n );\n };\n\n const colorOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: Timestamp\n ): boolean => {\n const RGBACurrent = toLinearSpace(convertToRGBA(animation.current));\n const res: Array<number> = [];\n let finished = true;\n tab.forEach((i, index) => {\n animation[i].current = RGBACurrent[index];\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n res.push(animation[i].current);\n });\n\n animation.current = rgbaArrayToRGBAColor(\n toGammaSpace(res as ParsedColorArray)\n );\n return finished;\n };\n\n const arrayOnStart = (\n animation: Animation<AnimationObject>,\n value: Array<number>,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ): void => {\n value.forEach((v, i) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = v;\n animation[i].toValue = (animation.toValue as Array<number>)[i];\n animation[i].onStart(\n animation[i],\n v,\n timestamp,\n previousAnimation ? previousAnimation[i] : undefined\n );\n });\n\n animation.current = value;\n };\n\n const arrayOnFrame = (\n animation: Animation<AnimationObject>,\n timestamp: Timestamp\n ): boolean => {\n let finished = true;\n (animation.current as Array<number>).forEach((v, i) => {\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n (animation.current as Array<number>)[i] = animation[i].current;\n });\n\n return finished;\n };\n\n animation.onStart = (\n animation: Animation<AnimationObject>,\n value: number,\n timestamp: Timestamp,\n previousAnimation: Animation<AnimationObject>\n ) => {\n if (isColor(value)) {\n colorOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = colorOnFrame;\n return;\n } else if (Array.isArray(value)) {\n arrayOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = arrayOnFrame;\n return;\n } else if (typeof value === 'string') {\n prefNumberSuffOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = prefNumberSuffOnFrame;\n return;\n }\n baseOnStart(animation, value, timestamp, previousAnimation);\n };\n}\n\ntype AnimationToDecoration<T extends AnimationObject | StyleLayoutAnimation> =\n T extends StyleLayoutAnimation\n ? Record<string, unknown>\n : T extends DelayAnimation\n ? NextAnimation<DelayAnimation>\n : T extends RepeatAnimation\n ? NextAnimation<RepeatAnimation>\n : T extends SequenceAnimation\n ? NextAnimation<SequenceAnimation>\n : AnimatableValue | T;\n\nexport function defineAnimation<\n T extends AnimationObject | StyleLayoutAnimation\n>(starting: AnimationToDecoration<T>, factory: () => T): T {\n 'worklet';\n if (IN_STYLE_UPDATER) {\n return starting as T;\n }\n const create = () => {\n 'worklet';\n const animation = factory();\n decorateAnimation<T>(animation);\n return animation;\n };\n\n if (_WORKLET || !NativeReanimatedModule.native) {\n return create();\n }\n // @ts-ignore: eslint-disable-line\n return create;\n}\n\nexport function cancelAnimation<T>(sharedValue: SharedValue<T>): void {\n 'worklet';\n // setting the current value cancels the animation if one is currently running\n sharedValue.value = sharedValue.value; // eslint-disable-line no-self-assign\n}\n\n// TODO it should work only if there was no animation before.\nexport function withStartValue(\n startValue: AnimatableValue,\n animation: NextAnimation<AnimationObject>\n): Animation<AnimationObject> {\n 'worklet';\n return defineAnimation(startValue, () => {\n 'worklet';\n if (!_WORKLET && typeof animation === 'function') {\n animation = animation();\n }\n (animation as Animation<AnimationObject>).current = startValue;\n return animation as Animation<AnimationObject>;\n });\n}\n","/* global _WORKLET */\n/**\n * Copied from:\n * react-native/Libraries/StyleSheet/normalizeColor.js\n * react-native/Libraries/StyleSheet/processColor.js\n * https://github.com/wcandillon/react-native-redash/blob/master/src/Colors.ts\n */\n\n/* eslint no-bitwise: 0 */\nimport { Platform } from 'react-native';\nimport { makeRemote, makeShareable, isConfigured } from './core';\n\ninterface RGB {\n r: number;\n g: number;\n b: number;\n}\n\ninterface HSV {\n h: number;\n s: number;\n v: number;\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?(?:\\\\d+(?:\\\\.\\\\d*)?|\\\\.\\\\d+)';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args: unknown[]): string {\n 'worklet';\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\n// matchers use RegExp objects which needs to be created separately on JS and on\n// the UI thread. We keep separate cache of Regexes for UI and JS using the below\n// objects, then pick the right cache in getMatchers() method.\nconst jsCachedMatchers: Matchers = {};\nconst uiCachedMatchers: Matchers = !isConfigured() ? {} : makeRemote({});\ntype Matchers = {\n rgb?: RegExp;\n rgba?: RegExp;\n hsl?: RegExp;\n hsla?: RegExp;\n hex3?: RegExp;\n hex4?: RegExp;\n hex5?: RegExp;\n hex6?: RegExp;\n hex8?: RegExp;\n};\nfunction getMatchers(): Matchers {\n 'worklet';\n const cachedMatchers: Matchers = _WORKLET\n ? uiCachedMatchers\n : jsCachedMatchers;\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp(\n 'rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)\n );\n cachedMatchers.hsl = new RegExp(\n 'hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)\n );\n cachedMatchers.hsla = new RegExp(\n 'hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)\n );\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 =\n /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n }\n return cachedMatchers;\n}\n// cachedMatchers is lazy loaded and it is frozen when worklet is being created,\n// it is possible to call getMatchers() when the object is frozen, then cachedMatchers\n// has no assigned regexes\ngetMatchers();\n\nfunction hue2rgb(p: number, q: number, t: number): number {\n 'worklet';\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h: number, s: number, l: number): number {\n 'worklet';\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction parse255(str: string): number {\n 'worklet';\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str: string): number {\n 'worklet';\n const int = Number.parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str: string): number {\n 'worklet';\n const num = Number.parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str: string): number {\n 'worklet';\n // parseFloat conveniently ignores the final %\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nconst names: any = !isConfigured()\n ? null\n : makeShareable({\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n });\n\nfunction normalizeColor(color: unknown): number | null {\n 'worklet';\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n\n let match: RegExpExecArray | null | undefined;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers?.hex6?.exec(color))) {\n return Number.parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names[color] !== undefined) {\n return names[color];\n }\n\n if ((match = matchers?.rgb?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.rgba?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hex3?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers?.hex8?.exec(color))) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers?.hex4?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n );\n }\n\n if ((match = matchers?.hsl?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hsla?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nexport const opacity = (c: number): number => {\n 'worklet';\n return ((c >> 24) & 255) / 255;\n};\n\nexport const red = (c: number): number => {\n 'worklet';\n return (c >> 16) & 255;\n};\n\nexport const green = (c: number): number => {\n 'worklet';\n return (c >> 8) & 255;\n};\n\nexport const blue = (c: number): number => {\n 'worklet';\n return c & 255;\n};\n\nexport const rgbaColor = (\n r: number,\n g: number,\n b: number,\n alpha = 1\n): number | string => {\n 'worklet';\n if (Platform.OS === 'web' || !_WORKLET) {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n\n const c =\n Math.round(alpha * 255) * (1 << 24) +\n Math.round(r) * (1 << 16) +\n Math.round(g) * (1 << 8) +\n Math.round(b);\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return c < (1 << 31) >>> 0 ? c : c - 4294967296; // 4294967296 == Math.pow(2, 32);\n }\n return c;\n};\n\n/* accepts parameters\n * r Object = {r:x, g:y, b:z}\n * OR\n * r, g, b\n * 0 <= r, g, b <= 255\n * returns 0 <= h, s, v <= 1\n */\nexport function RGBtoHSV(rgb: RGB): HSV;\nexport function RGBtoHSV(r: number, g: number, b: number): HSV;\nexport function RGBtoHSV(r: any, g?: any, b?: any): HSV {\n 'worklet';\n /* eslint-disable */\n if (arguments.length === 1) {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max / 255;\n\n let h;\n\n switch (max) {\n default:\n /* fallthrough */\n case min:\n h = 0;\n break;\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n }\n\n return {\n h: h,\n s: s,\n v: v,\n };\n /* eslint-enable */\n}\n\n/* accepts parameters\n * h Object = {h:x, s:y, v:z}\n * OR\n * h, s, v\n * 0 <= h, s, v <= 1\n * returns 0 <= r, g, b <= 255\n */\nfunction HSVtoRGB(hsv: HSV): RGB;\nfunction HSVtoRGB(h: number, s: number, v: number): RGB;\nfunction HSVtoRGB(h: any, s?: any, v?: any) {\n 'worklet';\n /* eslint-disable */\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s;\n v = h.v;\n h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n (r = v), (g = t), (b = p);\n break;\n case 1:\n (r = q), (g = v), (b = p);\n break;\n case 2:\n (r = p), (g = v), (b = t);\n break;\n case 3:\n (r = p), (g = q), (b = v);\n break;\n case 4:\n (r = t), (g = p), (b = v);\n break;\n case 5:\n (r = v), (g = p), (b = q);\n break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n /* eslint-enable */\n}\n\nexport const hsvToColor = (\n h: number,\n s: number,\n v: number,\n a: number\n): number | string => {\n 'worklet';\n const { r, g, b } = HSVtoRGB(h, s, v);\n return rgbaColor(r, g, b, a);\n};\n\nexport function processColorInitially(\n color: unknown\n): number | null | undefined {\n 'worklet';\n if (color === null || color === undefined || typeof color === 'number') {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0; // argb\n return normalizedColor;\n}\n\nexport function isColor(value: unknown): boolean {\n 'worklet';\n if (typeof value !== 'string') {\n return false;\n }\n return processColorInitially(value) != null;\n}\n\nexport function processColor(color: unknown): number | null | undefined {\n 'worklet';\n let normalizedColor = processColorInitially(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n\n return normalizedColor;\n}\n\nexport type ParsedColorArray = [number, number, number, number];\n\nexport function convertToRGBA(color: unknown): ParsedColorArray {\n 'worklet';\n const processedColor = processColorInitially(color)!; // argb;\n const a = (processedColor >>> 24) / 255;\n const r = ((processedColor << 8) >>> 24) / 255;\n const g = ((processedColor << 16) >>> 24) / 255;\n const b = ((processedColor << 24) >>> 24) / 255;\n return [r, g, b, a];\n}\n\nexport function rgbaArrayToRGBAColor(RGBA: ParsedColorArray): string {\n 'worklet';\n return `rgba(${Math.round(RGBA[0] * 255)}, ${Math.round(\n RGBA[1] * 255\n )}, ${Math.round(RGBA[2] * 255)}, ${RGBA[3]})`;\n}\n\nexport function toLinearSpace(\n RGBA: ParsedColorArray,\n gamma = 2.2\n): ParsedColorArray {\n 'worklet';\n const res = [];\n for (let i = 0; i < 3; ++i) {\n res.push(Math.pow(RGBA[i], gamma));\n }\n res.push(RGBA[3]);\n return res as ParsedColorArray;\n}\n\nexport function toGammaSpace(\n RGBA: ParsedColorArray,\n gamma = 2.2\n): ParsedColorArray {\n 'worklet';\n const res = [];\n for (let i = 0; i < 3; ++i) {\n res.push(Math.pow(RGBA[i], 1 / gamma));\n }\n res.push(RGBA[3]);\n return res as ParsedColorArray;\n}\n","import { Easing, EasingFn, EasingFactoryFn } from '../Easing';\nimport { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n Timestamp,\n AnimatableValue,\n} from '../commonTypes';\n\ninterface TimingConfig {\n duration?: number;\n easing?: EasingFn | EasingFactoryFn;\n}\n\nexport interface TimingAnimation extends Animation<TimingAnimation> {\n type: string;\n easing: EasingFn;\n startValue: AnimatableValue;\n startTime: Timestamp;\n progress: number;\n toValue: AnimatableValue;\n current: AnimatableValue;\n}\n\nexport interface InnerTimingAnimation\n extends Omit<TimingAnimation, 'toValue' | 'current'> {\n toValue: number;\n current: number;\n}\n\nexport function withTiming(\n toValue: AnimatableValue,\n userConfig?: TimingConfig,\n callback?: AnimationCallback\n): Animation<TimingAnimation> {\n 'worklet';\n\n return defineAnimation<TimingAnimation>(toValue, () => {\n 'worklet';\n const config: Required<TimingConfig> = {\n duration: 300,\n easing: Easing.inOut(Easing.quad),\n };\n if (userConfig) {\n Object.keys(userConfig).forEach(\n (key) =>\n ((config as any)[key] = userConfig[key as keyof typeof userConfig])\n );\n }\n\n function timing(animation: InnerTimingAnimation, now: Timestamp): boolean {\n const { toValue, startTime, startValue } = animation;\n const runtime = now - startTime;\n\n if (runtime >= config.duration) {\n // reset startTime to avoid reusing finished animation config in `start` method\n animation.startTime = 0;\n animation.current = toValue;\n return true;\n }\n const progress = animation.easing(runtime / config.duration);\n animation.current =\n (startValue as number) + (toValue - (startValue as number)) * progress;\n return false;\n }\n\n function onStart(\n animation: TimingAnimation,\n value: number,\n now: Timestamp,\n previousAnimation: Animation<TimingAnimation>\n ): void {\n if (\n previousAnimation &&\n (previousAnimation as TimingAnimation).type === 'timing' &&\n (previousAnimation as TimingAnimation).toValue === toValue &&\n (previousAnimation as TimingAnimation).startTime\n ) {\n // to maintain continuity of timing animations we check if we are starting\n // new timing over the old one with the same parameters. If so, we want\n // to copy animation timeline properties\n animation.startTime = (previousAnimation as TimingAnimation).startTime;\n animation.startValue = (\n previousAnimation as TimingAnimation\n ).startValue;\n } else {\n animation.startTime = now;\n animation.startValue = value;\n }\n animation.current = value;\n if (typeof config.easing === 'object') {\n animation.easing = config.easing.factory();\n } else {\n animation.easing = config.easing;\n }\n }\n\n return {\n type: 'timing',\n onFrame: timing,\n onStart: onStart as (animation: TimingAnimation, now: number) => boolean,\n progress: 0,\n toValue,\n startValue: 0,\n startTime: 0,\n easing: () => 0,\n current: toValue,\n callback,\n } as TimingAnimation;\n });\n}\n","// spread and rest parameters can't be used in worklets right now\n/* eslint-disable prefer-rest-params */\n/* eslint-disable prefer-spread */\n\n/* global _WORKLET */\n\n// @ts-ignore reanimated1/Easing is JS file\nimport EasingNode from '../reanimated1/Easing';\nimport { Bezier } from './Bezier';\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\n\nexport type EasingFn = (t: number) => number;\n\nexport type EasingFactoryFn = { factory: () => EasingFn };\n/**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\nfunction linear(t: number): number {\n 'worklet';\n return t;\n}\n\n/**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\nfunction ease(t: number): number {\n 'worklet';\n return Bezier(0.42, 0, 1, 1)(t);\n}\n\n/**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\nfunction quad(t: number): number {\n 'worklet';\n return t * t;\n}\n\n/**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\nfunction cubic(t: number): number {\n 'worklet';\n return t * t * t;\n}\n\n/**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\nfunction poly(n: number): EasingFn {\n 'worklet';\n return (t) => {\n 'worklet';\n return Math.pow(t, n);\n };\n}\n\n/**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\nfunction sin(t: number): number {\n 'worklet';\n return 1 - Math.cos((t * Math.PI) / 2);\n}\n\n/**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\nfunction circle(t: number): number {\n 'worklet';\n return 1 - Math.sqrt(1 - t * t);\n}\n\n/**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\nfunction exp(t: number): number {\n 'worklet';\n return Math.pow(2, 10 * (t - 1));\n}\n\n/**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\nfunction elastic(bounciness = 1): EasingFn {\n 'worklet';\n const p = bounciness * Math.PI;\n return (t) => {\n 'worklet';\n return 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);\n };\n}\n\n/**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\nfunction back(s = 1.70158): (t: number) => number {\n 'worklet';\n return (t) => {\n 'worklet';\n return t * t * ((s + 1) * t - s);\n };\n}\n\n/**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\nfunction bounce(t: number): number {\n 'worklet';\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n}\n\n/**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\nfunction bezier(\n x1: number,\n y1: number,\n x2: number,\n y2: number\n): { factory: () => (x: number) => number } {\n 'worklet';\n return {\n factory: () => {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n },\n };\n}\n\nfunction bezierFn(\n x1: number,\n y1: number,\n x2: number,\n y2: number\n): (x: number) => number {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n}\n\n/**\n * Runs an easing function forwards.\n */\nfunction in_(easing: EasingFn): EasingFn {\n 'worklet';\n return easing;\n}\n\n/**\n * Runs an easing function backwards.\n */\nfunction out(easing: EasingFn): EasingFn {\n 'worklet';\n return (t) => {\n 'worklet';\n return 1 - easing(1 - t);\n };\n}\n\n/**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\nfunction inOut(easing: EasingFn): EasingFn {\n 'worklet';\n return (t) => {\n 'worklet';\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n}\n\nconst EasingObject = {\n linear,\n ease,\n quad,\n cubic,\n poly,\n sin,\n circle,\n exp,\n elastic,\n back,\n bounce,\n bezier,\n bezierFn,\n in: in_,\n out,\n inOut,\n};\n\n// TODO type worklets\nfunction createChecker(\n worklet: any,\n workletName: string,\n prevArgs?: unknown\n): any {\n /* should return Animated.Value or worklet */\n function checkIfReaOne(): any {\n 'worklet';\n if (arguments && !_WORKLET) {\n for (let i = 0; i < arguments.length; i++) {\n const arg = arguments[i];\n if (arg && arg.__nodeID) {\n console.warn(\n `Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`\n );\n if (prevArgs) {\n return EasingNode[workletName]\n .apply(undefined, prevArgs)\n .apply(undefined, arguments);\n }\n return EasingNode[workletName].apply(undefined, arguments);\n }\n }\n }\n // @ts-ignore this is implicitly any - TODO\n const res = worklet.apply(this, arguments);\n if (!_WORKLET && res && typeof res === 'function' && res.__workletHash) {\n return createChecker(res, workletName, arguments);\n }\n return res;\n }\n // use original worklet on UI side\n checkIfReaOne._closure = worklet._closure;\n checkIfReaOne.asString = worklet.asString;\n checkIfReaOne.__workletHash = worklet.__workletHash;\n checkIfReaOne.__location = worklet.__location;\n return checkIfReaOne;\n}\n\ntype EasingObjT = Array<keyof typeof EasingObject>;\n(Object.keys(EasingObject) as EasingObjT).forEach((key) => {\n EasingObject[key] = createChecker(EasingObject[key], key);\n});\n\nexport const Easing = EasingObject;\n","import {\n cond,\n lessThan,\n multiply,\n pow,\n cos,\n sqrt,\n sub,\n add,\n divide,\n} from './base';\nimport AnimatedBezier from './core/AnimatedBezier';\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\nexport default class Easing {\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n static linear(t) {\n return t;\n }\n\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n static ease(t) {\n return new AnimatedBezier(t, 0.42, 0, 1, 1);\n }\n\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n static quad(t) {\n return multiply(t, t);\n }\n\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n static cubic(t) {\n return multiply(t, t, t);\n }\n\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n static poly(n) {\n return (t) => pow(t, n);\n }\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n static sin(t) {\n return sub(1, cos(multiply(t, Math.PI, 0.5)));\n }\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n static circle(t) {\n return sub(1, sqrt(sub(1, multiply(t, t))));\n }\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n static exp(t) {\n return pow(2, multiply(10, sub(t, 1)));\n }\n\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n static elastic(bounciness = 1) {\n const p = bounciness * Math.PI;\n return (t) =>\n sub(\n 1,\n multiply(pow(cos(multiply(t, Math.PI, 0.5)), 3), cos(multiply(t, p)))\n );\n }\n\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n static back(s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return (t) => multiply(t, t, sub(multiply(add(s, 1), t), s));\n }\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n static bounce(t) {\n const sq = (v) => multiply(7.5625, v, v);\n return cond(\n lessThan(t, 1 / 2.75),\n sq(t),\n cond(\n lessThan(t, 2 / 2.75),\n add(0.75, sq(sub(t, 1.5 / 2.75))),\n cond(\n lessThan(t, 2.5 / 2.76),\n add(0.9375, sq(sub(t, 2.25 / 2.75))),\n add(0.984375, sq(sub(t, 2.625 / 2.75)))\n )\n )\n );\n }\n\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n static bezier(x1, y1, x2, y2) {\n return (t) => new AnimatedBezier(t, x1, y1, x2, y2);\n }\n\n /**\n * Runs an easing function forwards.\n */\n static in(easing) {\n return easing;\n }\n\n /**\n * Runs an easing function backwards.\n */\n static out(easing) {\n return (t) => sub(1, easing(sub(1, t)));\n }\n\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n static inOut(easing) {\n return (t) =>\n cond(\n lessThan(t, 0.5),\n divide(easing(multiply(t, 2)), 2),\n sub(1, divide(easing(multiply(sub(1, t), 2)), 2))\n );\n }\n}\n","export { createAnimatedCond as cond } from './core/AnimatedCond';\nexport { createAnimatedSet as set } from './core/AnimatedSet';\nexport { createAnimatedStartClock as startClock } from './core/AnimatedStartClock';\nexport { createAnimatedStopClock as stopClock } from './core/AnimatedStopClock';\nexport { createAnimatedClockTest as clockRunning } from './core/AnimatedClockTest';\nexport { createAnimatedDebug as debug } from './core/AnimatedDebug';\nexport { createAnimatedCall as call } from './core/AnimatedCall';\nexport { createAnimatedEvent as event } from './core/AnimatedEvent';\nexport { createAnimatedAlways as always } from './core/AnimatedAlways';\nexport { createAnimatedConcat as concat } from './core/AnimatedConcat';\nexport { createAnimatedBlock as block, adapt } from './core/AnimatedBlock';\nexport { createAnimatedFunction as proc } from './core/AnimatedFunction';\nexport * from './operators';\n","import AnimatedNode from './AnimatedNode';\nimport AnimatedClock from './AnimatedClock';\nimport { AnimatedParam } from './AnimatedParam';\nimport invariant from 'invariant';\n\nclass AnimatedStartClock extends AnimatedNode {\n _clockNode;\n\n constructor(clockNode) {\n invariant(\n clockNode instanceof AnimatedClock || clockNode instanceof AnimatedParam,\n `Reanimated: Animated.startClock argument should be of type AnimatedClock but got ${clockNode}`\n );\n super({ type: 'clockStart', clock: clockNode });\n this._clockNode = clockNode;\n }\n\n toString() {\n return `AnimatedStartClock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n this._clockNode.start();\n return 0;\n }\n}\n\nexport function createAnimatedStartClock(clock) {\n return new AnimatedStartClock(clock);\n}\n","import AnimatedNode from './AnimatedNode';\nimport AnimatedClock from './AnimatedClock';\nimport { AnimatedParam } from './AnimatedParam';\nimport invariant from 'invariant';\n\nclass AnimatedStopClock extends AnimatedNode {\n _clockNode;\n\n constructor(clockNode) {\n invariant(\n clockNode instanceof AnimatedClock || clockNode instanceof AnimatedParam,\n `Reanimated: Animated.stopClock argument should be of type AnimatedClock but got ${clockNode}`\n );\n super({ type: 'clockStop', clock: clockNode });\n this._clockNode = clockNode;\n }\n\n toString() {\n return `AnimatedStopClock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n this._clockNode.stop();\n return 0;\n }\n}\n\nexport function createAnimatedStopClock(clock) {\n return new AnimatedStopClock(clock);\n}\n","import AnimatedNode from './AnimatedNode';\n\nclass AnimatedClockTest extends AnimatedNode {\n _clockNode;\n\n constructor(clockNode) {\n super({ type: 'clockTest', clock: clockNode });\n this._clockNode = clockNode;\n }\n\n toString() {\n return `AnimatedClockTest, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return this._clockNode.isStarted() ? 1 : 0;\n }\n}\n\nexport function createAnimatedClockTest(clock) {\n return new AnimatedClockTest(clock);\n}\n","import invariant from 'invariant';\nimport { NativeModules } from 'react-native';\nimport { val } from '../val';\nimport { adapt, createAnimatedBlock as block } from './AnimatedBlock';\nimport { createAnimatedCall as call } from './AnimatedCall';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedDebug extends AnimatedNode {\n _message;\n _value;\n\n constructor(message, value) {\n invariant(\n typeof message === 'string',\n `Reanimated: Animated.debug node first argument should be of type string but got ${message}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.debug node second argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'debug', message, value }, [value]);\n this._message = message;\n this._value = value;\n }\n\n toString() {\n return `AnimatedDebug, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const value = val(this._value);\n console.log(this._message, value);\n return value;\n }\n}\n\nexport function createAnimatedDebug(message, value) {\n if (__DEV__) {\n // hack to detect if app is running in remote debugger\n // https://stackoverflow.com/questions/39022216\n const runningInRemoteDebugger = typeof atob !== 'undefined';\n\n // read the executionEnvironment off of expo-constants without explicitly\n // depending on the package\n const runningInExpoShell =\n NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants\n ?.executionEnvironment === 'storeClient';\n\n if (runningInRemoteDebugger || runningInExpoShell) {\n // When running in expo or remote debugger we use JS console.log to output variables\n // otherwise we output to the native console using native debug node\n return block([\n call([value], ([a]) => console.log(`${message} ${a}`)),\n value,\n ]);\n } else {\n return new AnimatedDebug(message, adapt(value));\n }\n }\n // Debugging is disabled in PROD\n return value;\n}\n","import invariant from 'invariant';\nimport { adapt } from '../core/AnimatedBlock';\nimport AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\n\nclass AnimatedConcat extends AnimatedNode {\n constructor(input) {\n invariant(\n input.every(\n (el) =>\n el instanceof AnimatedNode ||\n typeof el === 'number' ||\n typeof el === 'string'\n ),\n `Reanimated: Animated.concat node arguments should be of type AnimatedNode or String or Number. One or more of them are not of that type. Node: ${input}`\n );\n super({ type: 'concat', input }, input);\n this._input = input;\n }\n\n __onEvaluate() {\n return this._input.reduce((prev, current) => prev + val(current), '');\n }\n\n toString() {\n return `AnimatedConcat, id: ${this.__nodeID}`;\n }\n}\n\nexport function createAnimatedConcat(...args) {\n return new AnimatedConcat(args.map(adapt));\n}\n","import { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX = 0;\n var currentT = 0;\n var i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (\n Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS\n );\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction bezier(mX1, mY1, mX2, mY2) {\n // Precompute samples table\n var sampleValues = float32ArraySupported\n ? new Float32Array(kSplineTableSize)\n : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (\n ;\n currentSample !== lastSample && sampleValues[currentSample] <= aX;\n ++currentSample\n ) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist =\n (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(\n aX,\n intervalStart,\n intervalStart + kSampleStepSize,\n mX1,\n mX2\n );\n }\n }\n\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n\nexport default class AnimatedBezier extends AnimatedNode {\n _value;\n _bezier;\n\n constructor(value, mX1, mY1, mX2, mY2) {\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Bezier node argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'bezier', mX1, mY1, mX2, mY2, input: value }, [value]);\n this._value = value;\n this._bezier = bezier(mX1, mY1, mX2, mY2);\n }\n\n toString() {\n return `AnimatedBezier, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return this._bezier(val(this._value));\n }\n}\n","/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n */\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\n\nexport function Bezier(\n mX1: number,\n mY1: number,\n mX2: number,\n mY2: number\n): (x: number) => number {\n 'worklet';\n\n const NEWTON_ITERATIONS = 4;\n const NEWTON_MIN_SLOPE = 0.001;\n const SUBDIVISION_PRECISION = 0.0000001;\n const SUBDIVISION_MAX_ITERATIONS = 10;\n\n const kSplineTableSize = 11;\n const kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1: number, aA2: number): number {\n 'worklet';\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n function B(aA1: number, aA2: number): number {\n 'worklet';\n return 3.0 * aA2 - 6.0 * aA1;\n }\n function C(aA1: number) {\n 'worklet';\n return 3.0 * aA1;\n }\n\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n function calcBezier(aT: number, aA1: number, aA2: number): number {\n 'worklet';\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n function getSlope(aT: number, aA1: number, aA2: number): number {\n 'worklet';\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(\n aX: number,\n aA: number,\n aB: number,\n mX1: number,\n mX2: number\n ): number {\n 'worklet';\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (\n Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS\n );\n return currentT;\n }\n\n function newtonRaphsonIterate(\n aX: number,\n aGuessT: number,\n mX1: number,\n mX2: number\n ): number {\n 'worklet';\n for (let i = 0; i < NEWTON_ITERATIONS; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n function LinearEasing(x: number): number {\n 'worklet';\n return x;\n }\n\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n\n // FIXME: Float32Array is not available in Hermes right now\n //\n // var float32ArraySupported = typeof Float32Array === 'function';\n // const sampleValues = float32ArraySupported\n // ? new Float32Array(kSplineTableSize)\n // : new Array(kSplineTableSize);\n\n // Precompute samples table\n const sampleValues = new Array(kSplineTableSize);\n\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX(aX: number): number {\n 'worklet';\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n\n for (\n ;\n currentSample !== lastSample && sampleValues[currentSample] <= aX;\n ++currentSample\n ) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n const dist =\n (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(\n aX,\n intervalStart,\n intervalStart + kSampleStepSize,\n mX1,\n mX2\n );\n }\n }\n\n return function BezierEasing(x) {\n 'worklet';\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n","/* global _updateProps */\nimport { MutableRefObject } from 'react';\nimport { processColor } from './Colors';\nimport { AnimatedStyle, SharedValue, StyleProps } from './commonTypes';\nimport { makeShareable, isConfigured } from './core';\nimport { Descriptor } from './hook/commonTypes';\nimport { _updatePropsJS } from './js-reanimated';\nimport { shouldBeUseWeb } from './PlatformChecker';\nimport { ViewRefSet } from './ViewDescriptorsSet';\n\n// copied from react-native/Libraries/Components/View/ReactNativeStyleAttributes\nexport const colorProps = [\n 'backgroundColor',\n 'borderBottomColor',\n 'borderColor',\n 'borderLeftColor',\n 'borderRightColor',\n 'borderTopColor',\n 'borderStartColor',\n 'borderEndColor',\n 'color',\n 'shadowColor',\n 'textDecorationColor',\n 'tintColor',\n 'textShadowColor',\n 'overlayColor',\n];\n\nexport const ColorProperties = !isConfigured() ? [] : makeShareable(colorProps);\n\nlet updatePropsByPlatform;\nif (shouldBeUseWeb()) {\n updatePropsByPlatform = (\n _: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle,\n maybeViewRef: ViewRefSet<any> | undefined\n ): void => {\n 'worklet';\n if (maybeViewRef) {\n maybeViewRef.items.forEach((item, _) => {\n _updatePropsJS(updates, item);\n });\n }\n };\n} else {\n updatePropsByPlatform = (\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle,\n _: ViewRefSet<any> | undefined\n ): void => {\n 'worklet';\n\n for (const key in updates) {\n if (ColorProperties.indexOf(key) !== -1) {\n updates[key] = processColor(updates[key]);\n }\n }\n\n viewDescriptors.value.forEach((viewDescriptor) => {\n _updateProps(\n viewDescriptor.tag,\n viewDescriptor.name || 'RCTView',\n updates\n );\n });\n };\n}\n\nexport const updateProps: (\n viewDescriptor: SharedValue<Descriptor[]>,\n updates: StyleProps | AnimatedStyle,\n maybeViewRef: ViewRefSet<any> | undefined\n) => void = updatePropsByPlatform;\n\nexport const updatePropsJestWrapper = (\n viewDescriptors: SharedValue<Descriptor[]>,\n updates: AnimatedStyle,\n maybeViewRef: ViewRefSet<any> | undefined,\n animatedStyle: MutableRefObject<AnimatedStyle>,\n adapters: ((updates: AnimatedStyle) => void)[]\n): void => {\n adapters.forEach((adapter) => {\n adapter(updates);\n });\n animatedStyle.current.value = {\n ...animatedStyle.current.value,\n ...updates,\n };\n\n updateProps(viewDescriptors, updates, maybeViewRef);\n};\n\nexport default updateProps;\n","import { configureProps as jsiConfigureProps } from './reanimated2/core';\n\n/**\n * Styles allowed to be direcly updated in UI thread\n */\nlet UI_THREAD_PROPS_WHITELIST: Record<string, boolean> = {\n opacity: true,\n transform: true,\n /* colors */\n backgroundColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderStartColor: true,\n borderTopColor: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n};\n\n/**\n * Whitelist of view props that can be updated in native thread via UIManagerModule\n */\nlet NATIVE_THREAD_PROPS_WHITELIST: Record<string, boolean> = {\n borderBottomWidth: true,\n borderEndWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderStartWidth: true,\n borderTopWidth: true,\n borderWidth: true,\n bottom: true,\n flex: true,\n flexGrow: true,\n flexShrink: true,\n height: true,\n left: true,\n margin: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n maxHeight: true,\n maxWidth: true,\n minHeight: true,\n minWidth: true,\n padding: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n right: true,\n start: true,\n top: true,\n width: true,\n zIndex: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n fontSize: true,\n lineHeight: true,\n textShadowRadius: true,\n letterSpacing: true,\n /* strings */\n display: true,\n backfaceVisibility: true,\n overflow: true,\n resizeMode: true,\n fontStyle: true,\n fontWeight: true,\n textAlign: true,\n textDecorationLine: true,\n fontFamily: true,\n textAlignVertical: true,\n fontVariant: true,\n textDecorationStyle: true,\n textTransform: true,\n writingDirection: true,\n /* text color */\n color: true,\n tintColor: true,\n shadowColor: true,\n placeholderTextColor: true,\n};\n\nfunction configureProps(): void {\n jsiConfigureProps(\n Object.keys(UI_THREAD_PROPS_WHITELIST),\n Object.keys(NATIVE_THREAD_PROPS_WHITELIST)\n );\n}\n\nexport function addWhitelistedNativeProps(\n props: Record<string, boolean>\n): void {\n const oldSize = Object.keys(NATIVE_THREAD_PROPS_WHITELIST).length;\n NATIVE_THREAD_PROPS_WHITELIST = {\n ...NATIVE_THREAD_PROPS_WHITELIST,\n ...props,\n };\n if (oldSize !== Object.keys(NATIVE_THREAD_PROPS_WHITELIST).length) {\n configureProps();\n }\n}\n\nexport function addWhitelistedUIProps(props: Record<string, boolean>): void {\n const oldSize = Object.keys(UI_THREAD_PROPS_WHITELIST).length;\n UI_THREAD_PROPS_WHITELIST = { ...UI_THREAD_PROPS_WHITELIST, ...props };\n if (oldSize !== Object.keys(UI_THREAD_PROPS_WHITELIST).length) {\n configureProps();\n }\n}\n\nconst PROCESSED_VIEW_NAMES = new Set();\n\ninterface ViewConfig {\n uiViewClassName: string;\n validAttributes: Record<string, unknown>;\n}\n/**\n * updates UI props whitelist for given view host instance\n * this will work just once for every view name\n */\n\nexport function adaptViewConfig(viewConfig: ViewConfig): void {\n const viewName = viewConfig.uiViewClassName;\n const props = viewConfig.validAttributes;\n\n // update whitelist of UI props for this view name only once\n if (!PROCESSED_VIEW_NAMES.has(viewName)) {\n const propsToAdd: Record<string, boolean> = {};\n Object.keys(props).forEach((key) => {\n // we don't want to add native props as they affect layout\n // we also skip props which repeat here\n if (\n !(key in NATIVE_THREAD_PROPS_WHITELIST) &&\n !(key in UI_THREAD_PROPS_WHITELIST)\n ) {\n propsToAdd[key] = true;\n }\n });\n addWhitelistedUIProps(propsToAdd);\n\n PROCESSED_VIEW_NAMES.add(viewName);\n }\n}\n\nconfigureProps();\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nexport { default as RNRenderer } from 'react-native/Libraries/Renderer/shims/ReactNative';\n","import {\n LayoutAnimationFunction,\n EntryAnimationsValues,\n ExitAnimationsValues,\n AnimationConfigFunction,\n} from '../animationBuilder/commonTypes';\n\nexport const DefaultLayout: LayoutAnimationFunction = (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.targetOriginX,\n originY: values.targetOriginY,\n width: values.targetWidth,\n height: values.targetHeight,\n },\n animations: {},\n };\n};\n\nexport const DefaultEntering: AnimationConfigFunction<EntryAnimationsValues> = (\n values\n) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.targetOriginX,\n originY: values.targetOriginY,\n width: values.targetWidth,\n height: values.targetHeight,\n },\n animations: {},\n };\n};\n\nexport const DefaultExiting: AnimationConfigFunction<ExitAnimationsValues> = (\n values\n) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {},\n };\n};\n","export {\n HigherOrderAnimation,\n NextAnimation,\n DelayAnimation,\n RepeatAnimation,\n SequenceAnimation,\n StyleLayoutAnimation,\n} from './commonTypes';\nexport { cancelAnimation, defineAnimation, initialUpdaterRun } from './util';\nexport { withTiming, TimingAnimation } from './timing';\nexport { withSpring, SpringAnimation } from './spring';\nexport { withDecay, DecayAnimation } from './decay';\nexport { withDelay } from './delay';\nexport { withRepeat } from './repeat';\nexport { withSequence } from './sequence';\nexport { withStyleAnimation } from './styleAnimation';\n","import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\n\ninterface SpringConfig {\n mass?: number;\n stiffness?: number;\n overshootClamping?: boolean;\n restDisplacementThreshold?: number;\n restSpeedThreshold?: number;\n velocity?: number;\n damping?: number;\n}\n\nexport interface SpringAnimation extends Animation<SpringAnimation> {\n current: AnimatableValue;\n toValue: AnimatableValue;\n velocity: number;\n lastTimestamp: Timestamp;\n}\n\nexport interface InnerSpringAnimation\n extends Omit<SpringAnimation, 'toValue' | 'current'> {\n toValue: number;\n current: number;\n}\n\nexport function withSpring(\n toValue: AnimatableValue,\n userConfig?: SpringConfig,\n callback?: AnimationCallback\n): Animation<SpringAnimation> {\n 'worklet';\n\n return defineAnimation<SpringAnimation>(toValue, () => {\n 'worklet';\n\n // TODO: figure out why we can't use spread or Object.assign here\n // when user config is \"frozen object\" we can't enumerate it (perhaps\n // something is wrong with the object prototype).\n const config: Required<SpringConfig> = {\n damping: 10,\n mass: 1,\n stiffness: 100,\n overshootClamping: false,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 2,\n velocity: 0,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach(\n (key) =>\n ((config as any)[key] = userConfig[key as keyof typeof userConfig])\n );\n }\n\n function spring(animation: InnerSpringAnimation, now: Timestamp): boolean {\n const { toValue, lastTimestamp, current, velocity } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n animation.lastTimestamp = now;\n\n const c = config.damping;\n const m = config.mass;\n const k = config.stiffness;\n\n const v0 = -velocity;\n const x0 = toValue - current;\n\n const zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n const omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = omega0 * Math.sqrt(1 - zeta ** 2); // exponential decay\n\n const t = deltaTime / 1000;\n\n const sin1 = Math.sin(omega1 * t);\n const cos1 = Math.cos(omega1 * t);\n\n // under damped\n const underDampedEnvelope = Math.exp(-zeta * omega0 * t);\n const underDampedFrag1 =\n underDampedEnvelope *\n (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);\n\n const underDampedPosition = toValue - underDampedFrag1;\n // This looks crazy -- it's actually just the derivative of the oscillation function\n const underDampedVelocity =\n zeta * omega0 * underDampedFrag1 -\n underDampedEnvelope *\n (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);\n\n // critically damped\n const criticallyDampedEnvelope = Math.exp(-omega0 * t);\n const criticallyDampedPosition =\n toValue - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);\n\n const criticallyDampedVelocity =\n criticallyDampedEnvelope *\n (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);\n\n const isOvershooting = () => {\n if (config.overshootClamping && config.stiffness !== 0) {\n return current < toValue\n ? animation.current > toValue\n : animation.current < toValue;\n } else {\n return false;\n }\n };\n\n const isVelocity = Math.abs(velocity) < config.restSpeedThreshold;\n const isDisplacement =\n config.stiffness === 0 ||\n Math.abs(toValue - current) < config.restDisplacementThreshold;\n\n if (zeta < 1) {\n animation.current = underDampedPosition;\n animation.velocity = underDampedVelocity;\n } else {\n animation.current = criticallyDampedPosition;\n animation.velocity = criticallyDampedVelocity;\n }\n\n if (isOvershooting() || (isVelocity && isDisplacement)) {\n if (config.stiffness !== 0) {\n animation.velocity = 0;\n animation.current = toValue;\n }\n // clear lastTimestamp to avoid using stale value by the next spring animation that starts after this one\n animation.lastTimestamp = 0;\n return true;\n }\n return false;\n }\n\n function onStart(\n animation: SpringAnimation,\n value: number,\n now: Timestamp,\n previousAnimation: SpringAnimation\n ): void {\n animation.current = value;\n if (previousAnimation) {\n animation.velocity =\n previousAnimation.velocity || animation.velocity || 0;\n animation.lastTimestamp = previousAnimation.lastTimestamp || now;\n } else {\n animation.lastTimestamp = now;\n }\n }\n\n return {\n onFrame: spring,\n onStart,\n toValue,\n velocity: config.velocity || 0,\n current: toValue,\n callback,\n lastTimestamp: 0,\n } as SpringAnimation;\n });\n}\n","import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimationObject,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { Platform } from 'react-native';\n\ninterface DecayConfig {\n deceleration?: number;\n velocityFactor?: number;\n clamp?: number[];\n velocity?: number;\n}\n\ninterface DefaultDecayConfig {\n deceleration: number;\n velocityFactor: number;\n clamp?: number[];\n velocity: number;\n}\n\nexport interface DecayAnimation extends Animation<DecayAnimation> {\n lastTimestamp: Timestamp;\n startTimestamp: Timestamp;\n initialVelocity: number;\n velocity: number;\n current: AnimatableValue;\n}\n\nexport interface InnerDecayAnimation\n extends Omit<DecayAnimation, 'current'>,\n AnimationObject {\n current: number;\n}\n\nexport function withDecay(\n userConfig: DecayConfig,\n callback?: AnimationCallback\n): Animation<DecayAnimation> {\n 'worklet';\n\n return defineAnimation<DecayAnimation>(0, () => {\n 'worklet';\n const config: DefaultDecayConfig = {\n deceleration: 0.998,\n velocityFactor: Platform.OS !== 'web' ? 1 : 1000,\n velocity: 0,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach(\n (key) =>\n ((config as any)[key] = userConfig[key as keyof typeof userConfig])\n );\n }\n\n const VELOCITY_EPS = Platform.OS !== 'web' ? 1 : 1 / 20;\n const SLOPE_FACTOR = 0.1;\n\n function decay(animation: InnerDecayAnimation, now: number): boolean {\n const {\n lastTimestamp,\n startTimestamp,\n initialVelocity,\n current,\n velocity,\n } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n );\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000; // /1000 because time is in ms not in s\n animation.velocity = v;\n animation.lastTimestamp = now;\n\n if (config.clamp) {\n if (initialVelocity < 0 && animation.current <= config.clamp[0]) {\n animation.current = config.clamp[0];\n return true;\n } else if (\n initialVelocity > 0 &&\n animation.current >= config.clamp[1]\n ) {\n animation.current = config.clamp[1];\n return true;\n }\n }\n\n return Math.abs(v) < VELOCITY_EPS;\n }\n\n function validateConfig(): void {\n if (config.clamp) {\n if (!Array.isArray(config.clamp)) {\n throw Error(\n `config.clamp must be an array but is ${typeof config.clamp}`\n );\n }\n if (config.clamp.length !== 2) {\n throw Error(\n `clamp array must contain 2 items but is given ${config.clamp.length}`\n );\n }\n }\n if (config.velocityFactor <= 0) {\n throw Error(\n `config.velocityFactor must be greather then 0 but is ${config.velocityFactor}`\n );\n }\n }\n\n function onStart(\n animation: DecayAnimation,\n value: number,\n now: Timestamp\n ): void {\n animation.current = value;\n animation.lastTimestamp = now;\n animation.startTimestamp = now;\n animation.initialVelocity = config.velocity;\n validateConfig();\n }\n\n return {\n onFrame: decay,\n onStart,\n callback,\n velocity: config.velocity ?? 0,\n initialVelocity: 0,\n current: 0,\n lastTimestamp: 0,\n startTimestamp: 0,\n } as DecayAnimation;\n });\n}\n","import { defineAnimation } from './util';\nimport { Animation, Timestamp, AnimatableValue } from '../commonTypes';\nimport { NextAnimation, DelayAnimation } from './commonTypes';\n\nexport function withDelay(\n delayMs: number,\n _nextAnimation: NextAnimation<DelayAnimation>\n): Animation<DelayAnimation> {\n 'worklet';\n return defineAnimation<DelayAnimation>(_nextAnimation, () => {\n 'worklet';\n const nextAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function delay(animation: DelayAnimation, now: Timestamp): boolean {\n const { startTime, started, previousAnimation } = animation;\n\n if (now - startTime > delayMs) {\n if (!started) {\n nextAnimation.onStart(\n nextAnimation,\n animation.current,\n now,\n previousAnimation as DelayAnimation\n );\n animation.previousAnimation = null;\n animation.started = true;\n }\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n return finished;\n } else if (previousAnimation) {\n const finished =\n previousAnimation.finished ||\n previousAnimation.onFrame(previousAnimation, now);\n animation.current = previousAnimation.current;\n if (finished) {\n animation.previousAnimation = null;\n }\n }\n return false;\n }\n\n function onStart(\n animation: DelayAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: DelayAnimation\n ): void {\n animation.startTime = now;\n animation.started = false;\n animation.current = value;\n if (previousAnimation === animation) {\n animation.previousAnimation = previousAnimation.previousAnimation;\n } else {\n animation.previousAnimation = previousAnimation;\n }\n }\n\n const callback = (finished?: boolean): void => {\n if (nextAnimation.callback) {\n nextAnimation.callback(finished);\n }\n };\n\n return {\n isHigherOrder: true,\n onFrame: delay,\n onStart,\n current: nextAnimation.current,\n callback,\n previousAnimation: null,\n startTime: 0,\n started: false,\n };\n });\n}\n\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function delay(\n delayMs: number,\n _nextAnimation: NextAnimation<DelayAnimation>\n): Animation<DelayAnimation> {\n 'worklet';\n console.warn('Method `delay` is deprecated. Please use `withDelay` instead');\n return withDelay(delayMs, _nextAnimation);\n}\n","import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { NextAnimation, RepeatAnimation } from './commonTypes';\n\nexport interface InnerRepeatAnimation\n extends Omit<RepeatAnimation, 'toValue' | 'startValue'> {\n toValue: number;\n startValue: number;\n}\n\nexport function withRepeat(\n _nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfReps = 2,\n reverse = false,\n callback?: AnimationCallback\n): Animation<RepeatAnimation> {\n 'worklet';\n\n return defineAnimation<RepeatAnimation>(_nextAnimation, () => {\n 'worklet';\n\n const nextAnimation: RepeatAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function repeat(animation: InnerRepeatAnimation, now: Timestamp): boolean {\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n if (finished) {\n animation.reps += 1;\n // call inner animation's callback on every repetition\n // as the second argument the animation's current value is passed\n if (nextAnimation.callback) {\n nextAnimation.callback(true /* finished */, animation.current);\n }\n if (numberOfReps > 0 && animation.reps >= numberOfReps) {\n return true;\n }\n\n const startValue = reverse\n ? (nextAnimation.current as number)\n : animation.startValue;\n if (reverse) {\n nextAnimation.toValue = animation.startValue;\n animation.startValue = startValue;\n }\n nextAnimation.onStart(\n nextAnimation,\n startValue,\n now,\n nextAnimation.previousAnimation as RepeatAnimation\n );\n return false;\n }\n return false;\n }\n\n const repCallback = (finished: boolean): void => {\n if (callback) {\n callback(finished);\n }\n // when cancelled call inner animation's callback\n if (!finished && nextAnimation.callback) {\n nextAnimation.callback(false /* finished */);\n }\n };\n\n function onStart(\n animation: RepeatAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: RepeatAnimation\n ): void {\n animation.startValue = value;\n animation.reps = 0;\n nextAnimation.onStart(nextAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: repeat,\n onStart,\n reps: 0,\n current: nextAnimation.current,\n callback: repCallback,\n startValue: 0,\n } as RepeatAnimation;\n });\n}\n\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function repeat(\n _nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfReps = 2,\n reverse = false,\n callback?: AnimationCallback\n): Animation<RepeatAnimation> {\n 'worklet';\n console.warn(\n 'Method `repeat` is deprecated. Please use `withRepeat` instead'\n );\n return withRepeat(_nextAnimation, numberOfReps, reverse, callback);\n}\n\nexport function loop(\n nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfLoops = 1\n): Animation<RepeatAnimation> {\n 'worklet';\n console.warn('Method `loop` is deprecated. Please use `withRepeat` instead');\n return repeat(nextAnimation, Math.round(numberOfLoops * 2), true);\n}\n","import { defineAnimation } from './util';\nimport { NextAnimation, SequenceAnimation } from './commonTypes';\nimport {\n Animation,\n AnimatableValue,\n AnimationObject,\n Timestamp,\n} from '../commonTypes';\n\nexport function withSequence(\n ..._animations: NextAnimation<AnimationObject>[]\n): Animation<SequenceAnimation> {\n 'worklet';\n return defineAnimation<SequenceAnimation>(\n _animations[0] as SequenceAnimation,\n () => {\n 'worklet';\n const animations = _animations.map((a) => {\n const result = typeof a === 'function' ? a() : a;\n result.finished = false;\n return result;\n });\n const firstAnimation = animations[0];\n\n const callback = (finished: boolean): void => {\n if (finished) {\n // we want to call the callback after every single animation\n // not after all of them\n return;\n }\n // this is going to be called only if sequence has been cancelled\n animations.forEach((animation) => {\n if (typeof animation.callback === 'function' && !animation.finished) {\n animation.callback(finished);\n }\n });\n };\n\n function sequence(animation: SequenceAnimation, now: Timestamp): boolean {\n const currentAnim = animations[animation.animationIndex];\n const finished = currentAnim.onFrame(currentAnim, now);\n animation.current = currentAnim.current;\n if (finished) {\n // we want to call the callback after every single animation\n if (currentAnim.callback) {\n currentAnim.callback(true /* finished */);\n }\n currentAnim.finished = true;\n animation.animationIndex += 1;\n if (animation.animationIndex < animations.length) {\n const nextAnim = animations[animation.animationIndex];\n nextAnim.onStart(nextAnim, currentAnim.current, now, currentAnim);\n return false;\n }\n return true;\n }\n return false;\n }\n\n function onStart(\n animation: SequenceAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: SequenceAnimation\n ): void {\n animation.animationIndex = 0;\n if (previousAnimation === undefined) {\n previousAnimation = animations[\n animations.length - 1\n ] as SequenceAnimation;\n }\n firstAnimation.onStart(firstAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: sequence,\n onStart,\n animationIndex: 0,\n current: firstAnimation.current,\n callback,\n } as SequenceAnimation;\n }\n );\n}\n\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function sequence(\n ..._animations: NextAnimation<SequenceAnimation>[]\n): Animation<SequenceAnimation> {\n 'worklet';\n console.warn(\n 'Method `sequence` is deprecated. Please use `withSequence` instead'\n );\n return withSequence(..._animations);\n}\n","import { Text } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\n\nconst AnimatedText = createAnimatedComponent(Text as any);\n\nexport default AnimatedText;\n","import { View } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\n\nconst AnimatedView = createAnimatedComponent(View);\n\nexport default AnimatedView;\n","import { ScrollView } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\n\nconst AnimatedScrollView = createAnimatedComponent(ScrollView);\n\nexport default AnimatedScrollView;\n","import { Image } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\n\nconst AnimatedImage = createAnimatedComponent(Image as any);\n\nexport default AnimatedImage;\n","import React, { ForwardedRef, forwardRef } from 'react';\nimport { FlatList, FlatListProps, LayoutChangeEvent } from 'react-native';\nimport ReanimatedView from './View';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nimport { ILayoutAnimationBuilder } from '../layoutReanimation/animationBuilder/commonTypes';\n\nconst AnimatedFlatList = createAnimatedComponent(FlatList as any) as any;\n\ninterface AnimatedFlatListProps {\n onLayout: (event: LayoutChangeEvent) => void;\n // implicit `children` prop has been removed in @types/react^18.0.0\n children: React.ReactNode;\n}\n\nconst createCellRenderer = (itemLayoutAnimation?: ILayoutAnimationBuilder) => {\n const cellRenderer = (props: AnimatedFlatListProps) => {\n return (\n <ReanimatedView layout={itemLayoutAnimation} onLayout={props.onLayout}>\n {props.children}\n </ReanimatedView>\n );\n };\n\n return cellRenderer;\n};\n\nexport interface ReanimatedFlatListProps<ItemT> extends FlatListProps<ItemT> {\n itemLayoutAnimation?: ILayoutAnimationBuilder;\n}\n\ntype ReanimatedFlatListFC<T = any> = React.FC<ReanimatedFlatListProps<T>>;\n\nconst ReanimatedFlatlist: ReanimatedFlatListFC = forwardRef(\n (props: ReanimatedFlatListProps<any>, ref: ForwardedRef<FlatList>) => {\n const { itemLayoutAnimation, ...restProps } = props;\n\n const cellRenderer = React.useMemo(\n () => createCellRenderer(itemLayoutAnimation),\n []\n );\n\n return (\n <AnimatedFlatList\n ref={ref}\n {...restProps}\n CellRendererComponent={cellRenderer}\n />\n );\n }\n);\n\nexport default ReanimatedFlatlist;\n","import EasingNode from './Easing';\nimport AnimatedClock from './core/AnimatedClock';\nimport AnimatedValue from './core/AnimatedValue';\nimport AnimatedNode from './core/AnimatedNode';\nimport AnimatedCode from './core/AnimatedCode';\nimport decay from './animations/decay';\nimport timing from './animations/timing';\nimport spring from './animations/spring';\nimport Animation from './animations/Animation';\nimport {\n Transition,\n Transitioning,\n createTransitioningComponent,\n} from './Transitioning';\nimport SpringUtils from './animations/SpringUtils';\nimport useValue from './useValue';\nimport backwardCompatibleAnimWrapper from './animations/backwardCompatibleAnimWrapper';\n\nconst decayWrapper = backwardCompatibleAnimWrapper(\n decay,\n Animation.decayDefaultState\n);\nconst timingWrapper = backwardCompatibleAnimWrapper(\n timing,\n Animation.timingDefaultState\n);\nconst springWrapper = backwardCompatibleAnimWrapper(\n spring,\n Animation.springDefaultState\n);\n\n// operations\nexport * from './base';\nexport * from './derived';\nexport {\n AnimatedCode as Code,\n // transitions\n EasingNode,\n Transitioning,\n Transition,\n createTransitioningComponent,\n // nodes\n AnimatedClock as Clock,\n AnimatedValue as Value,\n AnimatedNode as Node,\n // animations\n decayWrapper as decay,\n timingWrapper as timing,\n springWrapper as spring,\n SpringUtils,\n // hooks\n useValue,\n};\n","import useCode from '../derived/useCode';\nimport AnimatedNode from './AnimatedNode';\n\nfunction assertNodesNotNull(code, children, exec) {\n if (!code) {\n const error = !children\n ? `Got \"${typeof children}\" type passed to children`\n : `Got \"${typeof exec}\" type passed to exec`;\n\n throw new Error(\n `<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node. ${error}`\n );\n }\n}\n\nfunction Code({ exec, children, dependencies }) {\n const nodes = children || exec;\n\n let code = null;\n if (nodes instanceof AnimatedNode) {\n code = () => nodes;\n } else if (typeof nodes === 'function') {\n code = nodes;\n }\n\n assertNodesNotNull(code, children, exec);\n\n useCode(code, dependencies);\n return null;\n}\n\nexport default Code;\n","import React from 'react';\nimport { always, block } from '../base';\n\n/**\n * @callback NodeFactory\n * Function to create a node or an array of nodes.\n * @returns {(Node[] | Node | null | undefined | Boolean)}\n */\n\n/**\n * React hook to run a node.\n * @param {NodeFactory} nodeFactory Function to build the node to run.\n * @param dependencies Array of dependencies. Refresh the node on changes.\n */\nexport default function useCode(nodeFactory, dependencies) {\n if (!(React.useEffect instanceof Function)) return;\n\n React.useEffect(() => {\n // check and correct 1st parameter\n if (!(nodeFactory instanceof Function)) {\n console.warn(\n 'useCode() first argument should be a function that returns an animation node.'\n );\n\n const node = nodeFactory;\n nodeFactory = () => node;\n }\n\n let node = nodeFactory();\n if (node) {\n // allow factory to return array\n if (node instanceof Array) node = block(node);\n\n const animatedAlways = always(node);\n animatedAlways.__attach();\n\n // return undo function\n return () => animatedAlways.__detach();\n }\n }, dependencies);\n}\n","import {\n cond,\n sub,\n pow,\n divide,\n multiply,\n add,\n block,\n set,\n lessThan,\n proc,\n abs,\n} from '../base';\n\nconst VELOCITY_EPS = 5;\n\nfunction decay(clock, state, config) {\n const lastTime = cond(state.time, state.time, clock);\n const deltaTime = sub(clock, lastTime);\n\n // v0 = v / 1000\n // v = v0 * powf(deceleration, dt);\n // v = v * 1000;\n\n // x0 = x;\n // x = x0 + v0 * deceleration * (1 - powf(deceleration, dt)) / (1 - deceleration)\n const kv = pow(config.deceleration, deltaTime);\n const kx = divide(\n multiply(config.deceleration, sub(1, kv)),\n sub(1, config.deceleration)\n );\n const v0 = divide(state.velocity, 1000);\n const v = multiply(v0, kv, 1000);\n const x = add(state.position, multiply(v0, kx));\n return block([\n set(state.position, x),\n set(state.velocity, v),\n set(state.time, clock),\n cond(lessThan(abs(v), VELOCITY_EPS), set(state.finished, 1)),\n ]);\n}\n\nconst procDecay = proc(\n (clock, time, velocity, position, finished, deceleration) =>\n decay(clock, { time, velocity, position, finished }, { deceleration })\n);\n\nexport default function decayAnimation(\n clock,\n { time, velocity, position, finished },\n { deceleration }\n) {\n return procDecay(clock, time, velocity, position, finished, deceleration);\n}\n","import {\n cond,\n sub,\n divide,\n multiply,\n add,\n block,\n set,\n greaterOrEq,\n proc,\n} from '../base';\n\nconst internalTiming = proc(function (\n clock,\n time,\n frameTime,\n position,\n finished,\n toValue,\n duration,\n nextProgress,\n progress,\n newFrameTime\n) {\n const state = {\n time,\n finished,\n frameTime,\n position,\n };\n\n const config = {\n duration,\n toValue,\n };\n\n const distanceLeft = sub(config.toValue, state.position);\n const fullDistance = divide(distanceLeft, sub(1, progress));\n const startPosition = sub(config.toValue, fullDistance);\n const nextPosition = add(startPosition, multiply(fullDistance, nextProgress));\n\n return block([\n cond(\n greaterOrEq(newFrameTime, config.duration),\n [set(state.position, config.toValue), set(state.finished, 1)],\n set(state.position, nextPosition)\n ),\n set(state.frameTime, newFrameTime),\n set(state.time, clock),\n ]);\n});\n\nexport default function timing(clock, state, config) {\n if (config.duration === 0) {\n // when duration is zero we end the timing immediately\n return block([set(state.position, config.toValue), set(state.finished, 1)]);\n }\n const lastTime = cond(state.time, state.time, clock);\n const newFrameTime = add(state.frameTime, sub(clock, lastTime));\n const nextProgress = config.easing(divide(newFrameTime, config.duration));\n const progress = config.easing(divide(state.frameTime, config.duration));\n return internalTiming(\n clock,\n state.time,\n state.frameTime,\n state.position,\n state.finished,\n config.toValue,\n config.duration,\n nextProgress,\n progress,\n newFrameTime\n );\n}\n","import {\n cond,\n sub,\n divide,\n multiply,\n sqrt,\n add,\n block,\n set,\n exp,\n sin,\n cos,\n eq,\n or,\n neq,\n and,\n lessThan,\n greaterThan,\n proc,\n min,\n abs,\n} from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst MAX_STEPS_MS = 64;\n\nfunction spring(clock, state, config) {\n const lastTime = cond(state.time, state.time, clock);\n\n const deltaTime = min(sub(clock, lastTime), MAX_STEPS_MS);\n\n const c = config.damping;\n const m = config.mass;\n const k = config.stiffness;\n\n const v0 = multiply(-1, state.velocity);\n const x0 = sub(config.toValue, state.position);\n\n const zeta = divide(c, multiply(2, sqrt(multiply(k, m)))); // damping ratio\n const omega0 = sqrt(divide(k, m)); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = multiply(omega0, sqrt(sub(1, multiply(zeta, zeta)))); // exponential decay\n\n const t = divide(deltaTime, 1000); // in seconds\n\n const sin1 = sin(multiply(omega1, t));\n const cos1 = cos(multiply(omega1, t));\n\n // under damped\n const underDampedEnvelope = exp(multiply(-1, zeta, omega0, t));\n const underDampedFrag1 = multiply(\n underDampedEnvelope,\n add(\n multiply(sin1, divide(add(v0, multiply(zeta, omega0, x0)), omega1)),\n multiply(x0, cos1)\n )\n );\n const underDampedPosition = sub(config.toValue, underDampedFrag1);\n // This looks crazy -- it's actually just the derivative of the oscillation function\n const underDampedVelocity = sub(\n multiply(zeta, omega0, underDampedFrag1),\n multiply(\n underDampedEnvelope,\n sub(\n multiply(cos1, add(v0, multiply(zeta, omega0, x0))),\n multiply(omega1, x0, sin1)\n )\n )\n );\n\n // critically damped\n const criticallyDampedEnvelope = exp(multiply(-1, omega0, t));\n const criticallyDampedPosition = sub(\n config.toValue,\n multiply(\n criticallyDampedEnvelope,\n add(x0, multiply(add(v0, multiply(omega0, x0)), t))\n )\n );\n const criticallyDampedVelocity = multiply(\n criticallyDampedEnvelope,\n add(\n multiply(v0, sub(multiply(t, omega0), 1)),\n multiply(t, x0, omega0, omega0)\n )\n );\n\n // conditions for stopping the spring animations\n const prevPosition = state.prevPosition\n ? state.prevPosition\n : new AnimatedValue(0);\n\n const isOvershooting = cond(\n and(config.overshootClamping, neq(config.stiffness, 0)),\n cond(\n lessThan(prevPosition, config.toValue),\n greaterThan(state.position, config.toValue),\n lessThan(state.position, config.toValue)\n )\n );\n const isVelocity = lessThan(abs(state.velocity), config.restSpeedThreshold);\n const isDisplacement = or(\n eq(config.stiffness, 0),\n lessThan(\n abs(sub(config.toValue, state.position)),\n config.restDisplacementThreshold\n )\n );\n\n return block([\n set(prevPosition, state.position),\n cond(\n lessThan(zeta, 1),\n [\n set(state.position, underDampedPosition),\n set(state.velocity, underDampedVelocity),\n ],\n [\n set(state.position, criticallyDampedPosition),\n set(state.velocity, criticallyDampedVelocity),\n ]\n ),\n set(state.time, clock),\n cond(or(isOvershooting, and(isVelocity, isDisplacement)), [\n cond(neq(config.stiffness, 0), [\n set(state.velocity, 0),\n set(state.position, config.toValue),\n ]),\n set(state.finished, 1),\n ]),\n ]);\n}\n\nconst procSpring = proc(\n (\n finished,\n velocity,\n position,\n time,\n prevPosition,\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restSpeedThreshold,\n restDisplacementThreshold,\n clock\n ) =>\n spring(\n clock,\n {\n finished,\n velocity,\n position,\n time,\n prevPosition,\n },\n {\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restDisplacementThreshold,\n restSpeedThreshold,\n }\n )\n);\n\nexport default function springAnimation(\n clock,\n { finished, velocity, position, time, prevPosition },\n {\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restDisplacementThreshold,\n restSpeedThreshold,\n }\n) {\n return procSpring(\n finished,\n velocity,\n position,\n time,\n prevPosition,\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restSpeedThreshold,\n restDisplacementThreshold,\n clock\n );\n}\n","import AnimatedValue from '../core/InternalAnimatedValue';\n\nclass Animation {\n static springDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n velocity: new AnimatedValue(0),\n time: new AnimatedValue(0),\n };\n }\n\n static decayDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n velocity: new AnimatedValue(0),\n time: new AnimatedValue(0),\n };\n }\n\n static timingDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n time: new AnimatedValue(0),\n frameTime: new AnimatedValue(0),\n };\n }\n}\n\nexport default Animation;\n","import React from 'react';\nimport { View, findNodeHandle } from 'react-native';\nimport ReanimatedModule from '../ReanimatedModule';\n\nconst TransitioningContext = React.createContext();\n\nfunction configFromProps(type, props) {\n const config = { type };\n if ('durationMs' in props) {\n config.durationMs = props.durationMs;\n }\n if ('interpolation' in props) {\n config.interpolation = props.interpolation;\n }\n if ('type' in props) {\n config.animation = props.type;\n }\n if ('delayMs' in props) {\n config.delayMs = props.delayMs;\n }\n if ('propagation' in props) {\n config.propagation = props.propagation;\n }\n return config;\n}\n\n/**\n * The below wrapper is used to support legacy context API with Context.Consumer\n * render prop. We need it as we want to access `context` from within\n * `componentDidMount` callback. If we decided to drop support for older\n * react native we could rewrite it using hooks or `static contextType` API.\n */\nfunction wrapTransitioningContext(Comp) {\n return (props) => {\n return (\n <TransitioningContext.Consumer>\n {(context) => <Comp context={context} {...props} />}\n </TransitioningContext.Consumer>\n );\n };\n}\n\nclass In extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('in', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Change extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('change', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Out extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('out', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Together extends React.Component {\n transitions = [];\n componentDidMount() {\n const config = configFromProps('group', this.props);\n config.transitions = this.transitions;\n this.props.context.push(config);\n }\n\n render() {\n return (\n <TransitioningContext.Provider value={this.transitions}>\n {this.props.children}\n </TransitioningContext.Provider>\n );\n }\n}\n\nclass Sequence extends React.Component {\n transitions = [];\n componentDidMount() {\n const config = configFromProps('group', this.props);\n config.sequence = true;\n config.transitions = this.transitions;\n this.props.context.push(config);\n }\n\n render() {\n return (\n <TransitioningContext.Provider value={this.transitions}>\n {this.props.children}\n </TransitioningContext.Provider>\n );\n }\n}\n\nfunction createTransitioningComponent(Component) {\n class Wrapped extends React.Component {\n propTypes = Component.propTypes;\n transitions = [];\n viewRef = React.createRef();\n\n componentDidMount() {\n if (this.props.animateMount) {\n this.animateNextTransition();\n }\n }\n\n setNativeProps(props) {\n this.viewRef.current.setNativeProps(props);\n }\n\n animateNextTransition() {\n const viewTag = findNodeHandle(this.viewRef.current);\n ReanimatedModule.animateNextTransition(viewTag, {\n transitions: this.transitions,\n });\n }\n\n render() {\n const { transition, ...rest } = this.props;\n return (\n <React.Fragment>\n <TransitioningContext.Provider value={this.transitions}>\n {transition}\n </TransitioningContext.Provider>\n <Component {...rest} ref={this.viewRef} collapsable={false} />\n </React.Fragment>\n );\n }\n }\n return Wrapped;\n}\n\nconst Transitioning = {\n View: createTransitioningComponent(View),\n};\n\nconst Transition = {\n Sequence: wrapTransitioningContext(Sequence),\n Together: wrapTransitioningContext(Together),\n In: wrapTransitioningContext(In),\n Out: wrapTransitioningContext(Out),\n Change: wrapTransitioningContext(Change),\n};\n\nexport { Transitioning, Transition, createTransitioningComponent };\n","import {\n cond,\n sub,\n divide,\n multiply,\n add,\n pow,\n lessOrEq,\n and,\n greaterThan,\n} from './../base';\nimport AnimatedValue from './../core/InternalAnimatedValue';\n\nfunction stiffnessFromOrigamiValue(oValue) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue) {\n return (oValue - 8) * 3 + 25;\n}\n\nfunction stiffnessFromOrigamiNode(oValue) {\n return add(multiply(sub(oValue, 30), 3.62), 194);\n}\n\nfunction dampingFromOrigamiNode(oValue) {\n return add(multiply(sub(oValue, 8), 3), 25);\n}\n\nfunction makeConfigFromOrigamiTensionAndFriction(prevConfig) {\n const { tension, friction, ...rest } = prevConfig;\n return {\n ...rest,\n stiffness:\n typeof tension === 'number'\n ? stiffnessFromOrigamiValue(tension)\n : stiffnessFromOrigamiNode(tension),\n damping:\n typeof friction === 'number'\n ? dampingFromOrigamiValue(friction)\n : dampingFromOrigamiNode(friction),\n };\n}\n\nfunction makeConfigFromBouncinessAndSpeed(prevConfig) {\n const { bounciness, speed, ...rest } = prevConfig;\n if (typeof bounciness === 'number' && typeof speed === 'number') {\n return fromBouncinessAndSpeedNumbers(bounciness, speed, rest);\n }\n return fromBouncinessAndSpeedNodes(bounciness, speed, rest);\n}\n\nfunction fromBouncinessAndSpeedNodes(bounciness, speed, rest) {\n function normalize(value, startValue, endValue) {\n return divide(sub(value, startValue), sub(endValue, startValue));\n }\n\n function projectNormal(n, start, end) {\n return add(start, multiply(n, sub(end, start)));\n }\n\n function linearInterpolation(t, start, end) {\n return add(multiply(t, end), multiply(sub(1, t), start));\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(sub(multiply(2, t), multiply(t, t)), start, end);\n }\n\n function b3Friction1(x) {\n return add(\n sub(multiply(0.0007, pow(x, 3)), multiply(0.031, pow(x, 2))),\n multiply(0.64, x),\n 1.28\n );\n }\n\n function b3Friction2(x) {\n return add(\n sub(multiply(0.000044, pow(x, 3)), multiply(0.006, pow(x, 2))),\n multiply(0.36, x),\n 2\n );\n }\n\n function b3Friction3(x) {\n return add(\n sub(multiply(0.00000045, pow(x, 3)), multiply(0.000332, pow(x, 2))),\n multiply(0.1078, x),\n 5.84\n );\n }\n\n function b3Nobounce(tension) {\n return cond(\n lessOrEq(tension, 18),\n b3Friction1(tension),\n cond(\n and(greaterThan(tension, 18), lessOrEq(tension, 44)),\n b3Friction2(tension),\n b3Friction3(tension)\n )\n );\n }\n\n let b = normalize(divide(bounciness, 1.7), 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(divide(speed, 1.7), 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01\n );\n return {\n ...rest,\n stiffness: stiffnessFromOrigamiNode(bouncyTension),\n damping: dampingFromOrigamiNode(bouncyFriction),\n };\n}\n\nfunction fromBouncinessAndSpeedNumbers(bounciness, speed, rest) {\n function normalize(value, startValue, endValue) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n, start, end) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t, start, end) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x) {\n return (\n 0.00000045 * Math.pow(x, 3) -\n 0.000332 * Math.pow(x, 2) +\n 0.1078 * x +\n 5.84\n );\n }\n\n function b3Nobounce(tension) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n let b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(speed / 1.7, 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01\n );\n\n return {\n ...rest,\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction),\n };\n}\n\nfunction makeDefaultConfig() {\n return {\n stiffness: new AnimatedValue(100),\n mass: new AnimatedValue(1),\n damping: new AnimatedValue(10),\n overshootClamping: false,\n restSpeedThreshold: 0.001,\n restDisplacementThreshold: 0.001,\n toValue: new AnimatedValue(0),\n };\n}\n\nexport default {\n makeDefaultConfig,\n makeConfigFromBouncinessAndSpeed,\n makeConfigFromOrigamiTensionAndFriction,\n};\n","import React from 'react';\nimport AnimatedValue from './core/AnimatedValue';\n\nexport default function useValue(initialValue) {\n const ref = React.useRef(null);\n if (ref.current === null) {\n ref.current = new AnimatedValue(initialValue);\n }\n return ref.current;\n}\n","import {\n always,\n block,\n call,\n clockRunning,\n cond,\n set,\n startClock,\n stopClock,\n} from '../base';\nimport Clock from '../core/AnimatedClock';\nimport { evaluateOnce } from '../derived/evaluateOnce';\n\nfunction createOldAnimationObject(node, animationStateDefaults, value, config) {\n const newClock = new Clock();\n const currentState = animationStateDefaults();\n let alwaysNode;\n let isStarted = false;\n let isDone = false;\n let wasStopped = false;\n let animationCallback;\n const animation = {\n start: (currentAnimationCallback) => {\n animationCallback = currentAnimationCallback;\n if (isStarted) {\n animationCallback && animationCallback({ finished: false });\n return;\n }\n if (isDone) {\n console.warn('Animation has been finished before');\n // inconsistent with React Native\n return;\n }\n\n if (!value.isNativelyInitialized()) {\n return;\n }\n\n isStarted = true;\n evaluateOnce(\n set(currentState.position, value),\n currentState.position,\n () => {\n alwaysNode = always(\n set(\n value,\n block([\n cond(clockRunning(newClock), 0, startClock(newClock)),\n node(newClock, currentState, config),\n cond(currentState.finished, [\n call([], () => {\n isStarted = false;\n if (!wasStopped) {\n isDone = true;\n }\n value.__detachAnimation(animation);\n isDone = true;\n if (!wasStopped) {\n wasStopped = false;\n }\n }),\n stopClock(newClock),\n ]),\n currentState.position,\n ])\n )\n );\n value.__attachAnimation(animation);\n alwaysNode.__addChild(value);\n }\n );\n },\n __detach: () => {\n animationCallback && animationCallback({ finished: isDone });\n animationCallback = null;\n value.__initialized && alwaysNode.__removeChild(value);\n },\n stop: () => {\n if (isDone) {\n console.warn(\n 'Calling stop has no effect as the animation has already completed'\n );\n return;\n }\n if (!isStarted) {\n console.warn(\n \"Calling stop has no effect as the animation hasn't been started\"\n );\n return;\n }\n wasStopped = true;\n evaluateOnce(set(currentState.finished, 1), currentState.finished);\n },\n __stopImmediately_testOnly: (result) => {\n animation.stop();\n isDone = result;\n value.__detachAnimation(animation);\n },\n };\n return animation;\n}\n\n/**\n * Depending on the arguments list we either return animation node or return an\n * animation object that is compatible with the original Animated API\n */\nexport default function backwardsCompatibleAnimWrapper(\n node,\n animationStateDefaults\n) {\n return (clock, state, config) => {\n if (config !== undefined) {\n return node(clock, state, config);\n }\n return createOldAnimationObject(node, animationStateDefaults, clock, state);\n };\n}\n","export { default as acc } from './acc';\nexport { default as color } from './color';\nexport { default as diff } from './diff';\nexport { default as diffClamp } from './diffClamp';\nexport { default as interpolateNode, Extrapolate } from './interpolate';\nexport { default as interpolateColors } from './interpolateColors';\nexport { default as onChange } from './onChange';\nexport { default as useCode } from './useCode';\n","import { set, add, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procAcc = proc(function (v, acc) {\n return set(acc, add(acc, v));\n});\n\nexport default function acc(v) {\n const acc = new AnimatedValue(0);\n return procAcc(v, acc);\n}\n","import { Platform } from 'react-native';\n\nimport {\n add,\n cond,\n concat,\n lessThan,\n multiply,\n round,\n sub,\n proc,\n} from '../base';\nimport AnimatedNode from '../core/AnimatedNode';\n\nconst procColor = proc(function (r, g, b, a) {\n const color = add(\n multiply(a, 1 << 24),\n multiply(round(r), 1 << 16),\n multiply(round(g), 1 << 8),\n round(b)\n );\n\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return cond(\n lessThan(color, (1 << 31) >>> 0),\n color,\n sub(color, Math.pow(2, 32))\n );\n }\n return color;\n});\n\nexport default function color(r, g, b, a = 1) {\n if (Platform.OS === 'web') {\n // doesn't support bit shifting\n return concat('rgba(', r, ',', g, ',', b, ',', a, ')');\n }\n\n if (a instanceof AnimatedNode) {\n a = round(multiply(a, 255));\n } else {\n a = Math.round(a * 255);\n }\n\n return procColor(r, g, b, a);\n}\n","import { cond, block, defined, sub, set, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procDiff = proc(function (v, stash, prev) {\n return block([\n set(stash, cond(defined(prev), sub(v, prev), 0)),\n set(prev, v),\n stash,\n ]);\n});\n\nexport default function diff(v) {\n const stash = new AnimatedValue(0);\n const prev = new AnimatedValue();\n return procDiff(v, stash, prev);\n}\n","import { cond, defined, set, add, min, max } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\nimport diff from './diff';\n\nexport default function diffClamp(a, minVal, maxVal) {\n const value = new AnimatedValue();\n return set(\n value,\n min(max(add(cond(defined(value), value, a), diff(a)), minVal), maxVal)\n );\n}\n","import { processColor } from 'react-native';\nimport { round } from '../base';\nimport color from './color';\nimport interpolate, { Extrapolate } from './interpolate';\n\nfunction red(c) {\n return (c >> 16) & 255;\n}\nfunction green(c) {\n return (c >> 8) & 255;\n}\nfunction blue(c) {\n return c & 255;\n}\nfunction opacity(c) {\n return ((c >> 24) & 255) / 255;\n}\n\n/**\n * Use this if you want to interpolate an `Animated.Value` into color values.\n *\n * #### Why is this needed?\n *\n * Unfortunately, if you'll pass color values directly into the `outputRange` option\n * of `interpolate()` function, that won't really work (at least at the moment).\n * See https://github.com/software-mansion/react-native-reanimated/issues/181 .\n *\n * So, for now you can just use this helper instead.\n */\nexport default function interpolateColors(animationValue, options) {\n const { inputRange, outputColorRange } = options;\n const colors = outputColorRange.map(processColor);\n\n const r = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(red),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const g = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(green),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const b = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(blue),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const a = interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(opacity),\n extrapolate: Extrapolate.CLAMP,\n });\n\n return color(r, g, b, a);\n}\n","import { block, cond, defined, neq, not, set, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procOnChange = proc(function (value, action, prevValue) {\n return block([\n cond(not(defined(prevValue)), set(prevValue, value)),\n cond(neq(value, prevValue), [set(prevValue, value), action]),\n ]);\n});\n\nexport default function onChange(value, action) {\n const prevValue = new AnimatedValue();\n return procOnChange(value, action, prevValue);\n}\n","// In order to keep bundle size down, we treat this file as a polyfill for Web.\n\nimport { shouldBeUseWeb } from '../PlatformChecker';\nconst initializeGlobalsForWeb = () => {\n if (shouldBeUseWeb()) {\n global._frameTimestamp = null;\n global._setGlobalConsole = (_val) => {\n // noop\n };\n global._measure = () => {\n console.warn(\n \"[Reanimated] You can't use `measure` with Chrome Debugger or with web version\"\n );\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n pageX: 0,\n pageY: 0,\n };\n };\n global._scrollTo = () => {\n console.warn(\n \"[Reanimated] You can't use `scrollTo` with Chrome Debugger or with web version\"\n );\n };\n global._setGestureState = () => {\n console.warn(\n \"[Reanimated] You can't use `setGestureState` with Chrome Debugger or with web version\"\n );\n };\n }\n return true;\n};\n\n/*\n If a file doesn't export anything, tree shaking doesn't pack \n it into the JS bundle. In effect, the code inside of this file \n will never execute. That is why we wrapped initialization code \n into a function, and we call this one during creating \n the module export object.\n*/\n\nexport default initializeGlobalsForWeb();\n","export * from './core';\nexport * from './hook';\nexport * from './animation';\nexport * from './interpolation';\nexport * from './interpolateColor';\nexport * from './Easing';\nexport * from './NativeMethods';\nexport * from './Colors';\nexport * from './PropAdapters';\nexport * from './layoutReanimation';\nexport * from './utils';\nexport * from './commonTypes';\n","export { DependencyList, Context } from './commonTypes';\nexport {\n useAnimatedProps,\n useEvent,\n useHandler,\n useWorkletCallback,\n} from './Hooks';\nexport { useSharedValue } from './useSharedValue';\nexport { useAnimatedStyle, AnimatedStyleResult } from './useAnimatedStyle';\nexport {\n useAnimatedGestureHandler,\n GestureHandlerEvent,\n GestureHandlers,\n} from './useAnimatedGestureHandler';\nexport {\n useAnimatedReaction,\n AnimatedReactionWorkletFunction,\n} from './useAnimatedReaction';\nexport { useAnimatedRef } from './useAnimatedRef';\nexport {\n useAnimatedScrollHandler,\n ScrollHandler,\n ScrollHandlers,\n} from './useAnimatedScrollHandler';\nexport { useDerivedValue, DerivedValue } from './useDerivedValue';\nexport { useAnimatedSensor, SensorType } from './useAnimatedSensor';\nexport { useFrameCallback } from './useFrameCallback';\nexport type { FrameCallback } from './useFrameCallback';\nexport { useAnimatedKeyboard } from './useAnimatedKeyboard';\nexport { useScrollViewOffset } from './useScrollViewOffset';\n","import { useCallback } from 'react';\nimport { DependencyList } from './commonTypes';\nimport { useAnimatedStyle } from './useAnimatedStyle';\n\n// TODO: we should make sure that when useAP is used we are not assigning styles\n// when you need styles to animated you should always use useAS\nexport const useAnimatedProps = useAnimatedStyle;\n\nexport function useWorkletCallback<A extends unknown[], R>(\n fun: (...args: A) => R,\n deps?: DependencyList\n): (...args: Parameters<typeof fun>) => R {\n return useCallback(fun, deps ?? []);\n}\n\nexport { useEvent, useHandler } from './utils';\n","/* global _frameTimestamp */\nimport { MutableRefObject, useEffect, useRef } from 'react';\n\nimport {\n startMapper,\n stopMapper,\n makeRemote,\n requestFrame,\n getTimestamp,\n makeMutable,\n} from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport NativeReanimatedModule from '../NativeReanimated';\nimport { useSharedValue } from './useSharedValue';\nimport {\n buildWorkletsHash,\n canApplyOptimalisation,\n getStyleWithoutAnimations,\n hasColorProps,\n isAnimated,\n parseColors,\n styleDiff,\n validateAnimatedStyles,\n} from './utils';\nimport { DependencyList, Descriptor } from './commonTypes';\nimport {\n makeViewDescriptorsSet,\n makeViewsRefSet,\n ViewDescriptorsSet,\n ViewRefSet,\n} from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nimport {\n AnimationObject,\n Timestamp,\n AdapterWorkletFunction,\n AnimatedStyle,\n BasicWorkletFunction,\n BasicWorkletFunctionOptional,\n NestedObjectValues,\n SharedValue,\n} from '../commonTypes';\nexport interface AnimatedStyleResult {\n viewDescriptors: ViewDescriptorsSet;\n initial: AnimatedStyle;\n viewsRef: ViewRefSet<any>;\n animatedStyle?: MutableRefObject<AnimatedStyle>;\n}\n\ninterface AnimatedState {\n last: AnimatedStyle;\n animations: AnimatedStyle;\n isAnimationRunning: boolean;\n isAnimationCancelled: boolean;\n}\n\ninterface AnimationRef {\n initial: {\n value: AnimatedStyle;\n updater: () => AnimatedStyle;\n };\n remoteState: AnimatedState;\n sharableViewDescriptors: SharedValue<Descriptor[]>;\n}\n\nfunction prepareAnimation(\n animatedProp: AnimatedStyle,\n lastAnimation: AnimatedStyle,\n lastValue: AnimatedStyle\n): void {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) =>\n prepareAnimation(\n prop,\n lastAnimation && lastAnimation[index],\n lastValue && lastValue[index]\n )\n );\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n\n let value = animation.current;\n if (lastValue !== undefined) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n } else if (lastValue.onFrame !== undefined) {\n if (lastAnimation?.current !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n } else if (lastValue?.current !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n } else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n\n animation.callStart = (timestamp: Timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(getTimestamp());\n animation.callStart = null;\n } else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) =>\n prepareAnimation(\n animatedProp[key],\n lastAnimation && lastAnimation[key],\n lastValue && lastValue[key]\n )\n );\n }\n}\n\nfunction runAnimations(\n animation: AnimatedStyle,\n timestamp: Timestamp,\n key: number | string,\n result: AnimatedStyle,\n animationsActive: SharedValue<boolean>\n): boolean {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (\n !runAnimations(entry, timestamp, index, result[key], animationsActive)\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n } else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (\n !runAnimations(\n animation[k],\n timestamp,\n k,\n result[key],\n animationsActive\n )\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else {\n result[key] = animation;\n return true;\n }\n}\n\nfunction styleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>\n): void {\n 'worklet';\n const animations = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n\n let hasAnimations = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n prepareAnimation(value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n } else {\n delete animations[key];\n }\n }\n\n if (hasAnimations) {\n const frame = (timestamp: Timestamp) => {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n }\n\n if (updates) {\n updateProps(viewDescriptors, updates, maybeViewRef);\n }\n\n if (!allFinished) {\n requestFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n };\n\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n if (_frameTimestamp) {\n frame(_frameTimestamp);\n } else {\n requestFrame(frame);\n }\n }\n state.last = Object.assign({}, oldValues, newValues);\n const style = getStyleWithoutAnimations(state.last);\n if (style) {\n updateProps(viewDescriptors, style, maybeViewRef);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n\n const diff = styleDiff(oldValues, newValues);\n state.last = Object.assign({}, oldValues, diff);\n if (diff) {\n updateProps(viewDescriptors, newValues, maybeViewRef);\n }\n }\n}\n\nfunction jestStyleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>,\n animatedStyle: MutableRefObject<AnimatedStyle>,\n adapters: AdapterWorkletFunction[] = []\n): void {\n 'worklet';\n const animations: AnimatedStyle = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n\n // extract animated props\n let hasAnimations = false;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n prepareAnimation(value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n\n function frame(timestamp: Timestamp) {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n });\n\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(\n viewDescriptors,\n updates,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n\n if (!allFinished) {\n requestFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n }\n\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n if (_frameTimestamp) {\n frame(_frameTimestamp);\n } else {\n requestFrame(frame);\n }\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n\n // calculate diff\n const diff = styleDiff(oldValues, newValues);\n state.last = Object.assign({}, oldValues, diff);\n\n if (Object.keys(diff).length !== 0) {\n updatePropsJestWrapper(\n viewDescriptors,\n diff,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n}\n\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(\n prop: NestedObjectValues<AnimationObject>,\n currentKey?: string\n): void {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n } else if (typeof prop === 'object' && prop.value === undefined) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n } else if (\n currentKey !== undefined &&\n typeof prop === 'object' &&\n prop.value !== undefined\n ) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(\n `invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`\n );\n }\n}\n\nexport function useAnimatedStyle<T extends AnimatedStyle>(\n updater: BasicWorkletFunction<T>,\n dependencies?: DependencyList,\n adapters?: AdapterWorkletFunction | AdapterWorkletFunction[]\n): AnimatedStyleResult {\n const viewsRef: ViewRefSet<any> = makeViewsRefSet();\n const viewDescriptors: ViewDescriptorsSet = makeViewDescriptorsSet();\n const initRef = useRef<AnimationRef>();\n const inputs = Object.values(updater._closure ?? {});\n const adaptersArray: AdapterWorkletFunction[] = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const animationsActive = useSharedValue<boolean>(true);\n const animatedStyle: MutableRefObject<AnimatedStyle> = useRef<AnimatedStyle>(\n {}\n );\n\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n } else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n\n if (!initRef.current) {\n const initialStyle: AnimatedStyle = initialUpdaterRun(updater);\n validateAnimatedStyles(initialStyle);\n initRef.current = {\n initial: {\n value: initialStyle,\n updater: updater,\n },\n remoteState: makeRemote({ last: initialStyle }),\n sharableViewDescriptors: makeMutable([]),\n };\n viewDescriptors.rebuildsharableViewDescriptors(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n initRef.current!.sharableViewDescriptors\n );\n }\n dependencies.push(initRef.current?.sharableViewDescriptors.value);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { initial, remoteState, sharableViewDescriptors } = initRef.current!;\n const maybeViewRef = NativeReanimatedModule.native ? undefined : viewsRef;\n\n useEffect(() => {\n let fun;\n let updaterFn = updater as BasicWorkletFunctionOptional<T>;\n let optimalization = updater.__optimalization;\n if (adapters) {\n updaterFn = () => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues);\n });\n return newValues;\n };\n }\n\n if (canApplyOptimalisation(updaterFn) && !shouldBeUseWeb()) {\n if (hasColorProps(updaterFn())) {\n updaterFn = () => {\n 'worklet';\n const newValues = updaterFn();\n const oldValues = remoteState.last;\n const diff = styleDiff<T>(oldValues, newValues);\n remoteState.last = Object.assign({}, oldValues, newValues);\n parseColors(diff);\n return diff;\n };\n } else {\n updaterFn = () => {\n 'worklet';\n const newValues = updaterFn();\n const oldValues = remoteState.last;\n const diff = styleDiff<T>(oldValues, newValues);\n remoteState.last = Object.assign({}, oldValues, newValues);\n return diff;\n };\n }\n } else if (!shouldBeUseWeb()) {\n optimalization = 0;\n updaterFn = () => {\n 'worklet';\n const style = updaterFn();\n parseColors(style);\n return style;\n };\n }\n if (typeof updater.__optimalization !== undefined) {\n updaterFn.__optimalization = optimalization;\n }\n\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(\n sharableViewDescriptors,\n updater,\n remoteState,\n maybeViewRef,\n animationsActive,\n animatedStyle,\n adaptersArray\n );\n };\n } else {\n fun = () => {\n 'worklet';\n styleUpdater(\n sharableViewDescriptors,\n updaterFn,\n remoteState,\n maybeViewRef,\n animationsActive\n );\n };\n }\n const mapperId = startMapper(\n fun,\n inputs,\n [],\n updaterFn,\n // TODO fix this\n sharableViewDescriptors\n );\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n animationsActive.value = true;\n return () => {\n // initRef.current = null;\n // viewsRef = null;\n animationsActive.value = false;\n };\n }, []);\n\n checkSharedValueUsage(initial.value);\n\n if (process.env.JEST_WORKER_ID) {\n return { viewDescriptors, initial: initial, viewsRef, animatedStyle };\n } else {\n return { viewDescriptors, initial: initial, viewsRef };\n }\n}\n","import { useEffect, useRef } from 'react';\nimport { cancelAnimation } from '../animation';\nimport { SharedValue } from '../commonTypes';\nimport { makeMutable } from '../core';\n\nexport function useSharedValue<T>(init: T): SharedValue<T> {\n const ref = useRef<SharedValue<T>>(makeMutable(init));\n\n if (ref.current === null) {\n ref.current = makeMutable(init);\n }\n\n useEffect(() => {\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n cancelAnimation(ref.current!);\n };\n }, []);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return ref.current!;\n}\n","import { MutableRefObject, useEffect, useRef } from 'react';\nimport { processColor } from '../Colors';\nimport {\n AnimatedStyle,\n NativeEvent,\n NestedObjectValues,\n StyleProps,\n WorkletFunction,\n AnimationObject,\n} from '../commonTypes';\nimport { makeRemote } from '../core';\nimport { isWeb, isJest } from '../PlatformChecker';\nimport { colorProps } from '../UpdateProps';\nimport WorkletEventHandler from '../WorkletEventHandler';\nimport {\n Context,\n ContextWithDependencies,\n DependencyList,\n} from './commonTypes';\n\ninterface Handler<T, TContext extends Context> extends WorkletFunction {\n (event: T, context: TContext): void;\n}\n\ninterface Handlers<T, TContext extends Context> {\n [key: string]: Handler<T, TContext> | undefined;\n}\n\nexport interface UseHandlerContext<TContext extends Context> {\n context: TContext;\n doDependenciesDiffer: boolean;\n useWeb: boolean;\n}\n\nexport function useEvent<T extends NativeEvent<T>>(\n handler: (event: T) => void,\n eventNames: string[] = [],\n rebuild = false\n): MutableRefObject<WorkletEventHandler<T> | null> {\n const initRef = useRef<WorkletEventHandler<T> | null>(null);\n if (initRef.current === null) {\n initRef.current = new WorkletEventHandler(handler, eventNames);\n } else if (rebuild) {\n initRef.current.updateWorklet(handler);\n }\n\n return initRef;\n}\n\nexport function useHandler<T, TContext extends Context>(\n handlers: Handlers<T, TContext>,\n dependencies?: DependencyList\n): UseHandlerContext<TContext> {\n const initRef = useRef<ContextWithDependencies<TContext> | null>(null);\n if (initRef.current === null) {\n initRef.current = {\n context: makeRemote({}),\n savedDependencies: [],\n };\n }\n\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n\n const { context, savedDependencies } = initRef.current;\n\n dependencies = buildDependencies(dependencies, handlers);\n\n const doDependenciesDiffer = !areDependenciesEqual(\n dependencies,\n savedDependencies\n );\n initRef.current.savedDependencies = dependencies;\n const useWeb = isWeb() || isJest();\n\n return { context, doDependenciesDiffer, useWeb };\n}\n\n// builds one big hash from multiple worklets' hashes\nexport function buildWorkletsHash(\n handlers: Record<string, WorkletFunction> | Array<WorkletFunction>\n): string {\n return Object.values(handlers).reduce(\n (acc: string, worklet: WorkletFunction) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n acc + worklet.__workletHash!.toString(),\n ''\n );\n}\n\n// builds dependencies array for gesture handlers\nexport function buildDependencies(\n dependencies: DependencyList,\n handlers: Record<string, WorkletFunction | undefined>\n): Array<unknown> {\n const handlersList: WorkletFunction[] = Object.values(handlers).filter(\n (handler) => handler !== undefined\n ) as WorkletFunction[];\n if (!dependencies) {\n dependencies = handlersList.map((handler) => {\n return {\n workletHash: handler.__workletHash,\n closure: handler._closure,\n };\n });\n } else {\n dependencies.push(buildWorkletsHash(handlersList));\n }\n return dependencies;\n}\n\n// this is supposed to work as useEffect comparison\nexport function areDependenciesEqual(\n nextDeps: DependencyList,\n prevDeps: DependencyList\n): boolean {\n function is(x: number, y: number) {\n /* eslint-disable no-self-compare */\n return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n /* eslint-enable no-self-compare */\n }\n const objectIs: (nextDeps: unknown, prevDeps: unknown) => boolean =\n typeof Object.is === 'function' ? Object.is : is;\n\n function areHookInputsEqual(\n nextDeps: DependencyList,\n prevDeps: DependencyList\n ): boolean {\n if (!nextDeps || !prevDeps || prevDeps.length !== nextDeps.length) {\n return false;\n }\n for (let i = 0; i < prevDeps.length; ++i) {\n if (!objectIs(nextDeps[i], prevDeps[i])) {\n return false;\n }\n }\n return true;\n }\n\n return areHookInputsEqual(nextDeps, prevDeps);\n}\n\nexport function hasColorProps(updates: AnimatedStyle): boolean {\n const colorPropsSet = new Set(colorProps);\n for (const key in updates) {\n if (colorPropsSet.has(key)) {\n return true;\n }\n }\n return false;\n}\n\nexport function parseColors(updates: AnimatedStyle): void {\n 'worklet';\n for (const key in updates) {\n if (colorProps.indexOf(key) !== -1) {\n // value could be an animation in which case processColor will recognize it and will return undefined\n // -> in such a case we don't want to override style of that key\n const processedColor = processColor(updates[key]);\n if (processedColor !== undefined) {\n updates[key] = processedColor;\n }\n }\n }\n}\n\nexport function canApplyOptimalisation(upadterFn: WorkletFunction): number {\n const FUNCTIONLESS_FLAG = 0b00000001;\n const STATEMENTLESS_FLAG = 0b00000010;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const optimalization = upadterFn.__optimalization!;\n return (\n optimalization & FUNCTIONLESS_FLAG && optimalization & STATEMENTLESS_FLAG\n );\n}\n\nexport function isAnimated(prop: NestedObjectValues<AnimationObject>): boolean {\n 'worklet';\n if (Array.isArray(prop)) {\n return prop.some(isAnimated);\n } else if (typeof prop === 'object') {\n if (prop.onFrame !== undefined) {\n return true;\n } else {\n return Object.values(prop).some(isAnimated);\n }\n }\n return false;\n}\n\nexport function styleDiff<T extends AnimatedStyle>(\n oldStyle: AnimatedStyle,\n newStyle: AnimatedStyle\n): Partial<T> {\n 'worklet';\n const diff: any = {};\n for (const key in oldStyle) {\n if (newStyle[key] === undefined) {\n diff[key] = null;\n }\n }\n for (const key in newStyle) {\n const value = newStyle[key];\n const oldValue = oldStyle[key];\n\n if (isAnimated(value)) {\n // do nothing\n continue;\n }\n if (oldValue !== value) {\n diff[key] = value;\n }\n }\n return diff;\n}\n\nexport function getStyleWithoutAnimations(newStyle: AnimatedStyle): StyleProps {\n 'worklet';\n const diff: StyleProps = {};\n\n for (const key in newStyle) {\n const value = newStyle[key];\n if (isAnimated(value)) {\n continue;\n }\n diff[key] = value;\n }\n return diff;\n}\n\nexport const validateAnimatedStyles = (styles: AnimatedStyle): void => {\n 'worklet';\n if (typeof styles !== 'object') {\n throw new Error(\n `useAnimatedStyle has to return an object, found ${typeof styles} instead`\n );\n } else if (Array.isArray(styles)) {\n throw new Error(\n 'useAnimatedStyle has to return an object and cannot return static styles combined with dynamic ones. Please do merging where a component receives props.'\n );\n }\n};\n","import { useRef } from 'react';\nimport { makeMutable } from './core';\nimport { SharedValue } from './commonTypes';\nimport { Descriptor } from './hook/commonTypes';\nimport { shouldBeUseWeb } from './PlatformChecker';\n\nexport interface ViewRefSet<T> {\n items: Set<T>;\n add: (item: T) => void;\n remove: (item: T) => void;\n}\n\nexport interface ViewDescriptorsSet {\n batchToRemove: Set<number>;\n tags: Set<number>;\n waitForInsertSync: boolean;\n waitForRemoveSync: boolean;\n sharableViewDescriptors: SharedValue<Descriptor[]>;\n items: Descriptor[];\n add: (item: Descriptor) => void;\n remove: (viewTag: number) => void;\n rebuildsharableViewDescriptors: (\n sharableViewDescriptor: SharedValue<Descriptor[]>\n ) => void;\n}\n\nconst scheduleUpdates = shouldBeUseWeb() ? requestAnimationFrame : setImmediate;\n\nexport function makeViewDescriptorsSet(): ViewDescriptorsSet {\n const ref = useRef<ViewDescriptorsSet | null>(null);\n if (ref.current === null) {\n const data: ViewDescriptorsSet = {\n batchToRemove: new Set(),\n tags: new Set(),\n waitForInsertSync: false,\n waitForRemoveSync: false,\n sharableViewDescriptors: makeMutable([]),\n items: [],\n\n add: (item: Descriptor) => {\n if (data.tags.has(item.tag)) {\n return;\n }\n data.tags.add(item.tag);\n data.items.push(item);\n\n if (!data.waitForInsertSync) {\n data.waitForInsertSync = true;\n\n scheduleUpdates(() => {\n data.sharableViewDescriptors.value = data.items;\n data.waitForInsertSync = false;\n });\n }\n },\n\n remove: (viewTag: number) => {\n data.batchToRemove.add(viewTag);\n\n if (!data.waitForRemoveSync) {\n data.waitForRemoveSync = true;\n\n scheduleUpdates(() => {\n const items = [];\n for (const item of data.items) {\n if (data.batchToRemove.has(item.tag)) {\n data.tags.delete(item.tag);\n } else {\n items.push(item);\n }\n }\n data.items = items;\n data.sharableViewDescriptors.value = items;\n data.batchToRemove = new Set();\n data.waitForRemoveSync = false;\n });\n }\n },\n\n rebuildsharableViewDescriptors: (\n sharableViewDescriptors: SharedValue<Descriptor[]>\n ) => {\n data.sharableViewDescriptors = sharableViewDescriptors;\n },\n };\n ref.current = data;\n }\n\n return ref.current;\n}\n\nexport function makeViewsRefSet<T>(): ViewRefSet<T> {\n const ref = useRef<ViewRefSet<T> | null>(null);\n if (ref.current === null) {\n const data: ViewRefSet<T> = {\n items: new Set(),\n\n add: (item: T) => {\n if (data.items.has(item)) return;\n data.items.add(item);\n },\n\n remove: (item: T) => {\n data.items.delete(item);\n },\n };\n ref.current = data;\n }\n\n return ref.current;\n}\n","import { MutableRefObject } from 'react';\nimport { WorkletFunction } from '../commonTypes';\nimport WorkletEventHandler from '../WorkletEventHandler';\nimport { Context, DependencyList } from './commonTypes';\nimport { useEvent, useHandler } from './Hooks';\n\ninterface Handler<T, TContext extends Context> extends WorkletFunction {\n (event: T, context: TContext, isCanceledOrFailed?: boolean): void;\n}\n\nexport interface GestureHandlers<T, TContext extends Context> {\n [key: string]: Handler<T, TContext> | undefined;\n onStart?: Handler<T, TContext>;\n onActive?: Handler<T, TContext>;\n onEnd?: Handler<T, TContext>;\n onFail?: Handler<T, TContext>;\n onCancel?: Handler<T, TContext>;\n onFinish?: Handler<T, TContext>;\n}\n\nexport enum EventType {\n UNDETERMINED = 0,\n FAILED,\n BEGAN,\n CANCELLED,\n ACTIVE,\n END,\n}\n\nexport interface GestureHandlerStateChangeNativeEvent {\n handlerTag: number;\n numberOfPointers: number;\n state: EventType;\n oldState: EventType;\n}\n\nexport interface GestureHandlerEvent<T>\n extends GestureHandlerStateChangeNativeEvent {\n nativeEvent: T;\n}\n\nexport function useAnimatedGestureHandler<\n T extends GestureHandlerEvent<T>,\n TContext extends Context\n>(\n handlers: GestureHandlers<T, TContext>,\n dependencies?: DependencyList\n): MutableRefObject<WorkletEventHandler<T> | null> | ((e: T) => void) {\n const { context, doDependenciesDiffer, useWeb } = useHandler<T, TContext>(\n handlers,\n dependencies\n );\n\n const handler = (e: T) => {\n 'worklet';\n const event = useWeb ? e.nativeEvent : e;\n\n if (event.state === EventType.BEGAN && handlers.onStart) {\n handlers.onStart(event, context);\n }\n if (event.state === EventType.ACTIVE && handlers.onActive) {\n handlers.onActive(event, context);\n }\n if (\n event.oldState === EventType.ACTIVE &&\n event.state === EventType.END &&\n handlers.onEnd\n ) {\n handlers.onEnd(event, context);\n }\n if (\n event.oldState === EventType.BEGAN &&\n event.state === EventType.FAILED &&\n handlers.onFail\n ) {\n handlers.onFail(event, context);\n }\n if (\n event.oldState === EventType.ACTIVE &&\n event.state === EventType.CANCELLED &&\n handlers.onCancel\n ) {\n handlers.onCancel(event, context);\n }\n if (\n (event.oldState === EventType.BEGAN ||\n event.oldState === EventType.ACTIVE) &&\n event.state !== EventType.BEGAN &&\n event.state !== EventType.ACTIVE &&\n handlers.onFinish\n ) {\n handlers.onFinish(\n event,\n context,\n event.state === EventType.CANCELLED || event.state === EventType.FAILED\n );\n }\n };\n\n if (useWeb) {\n return handler;\n }\n\n return useEvent<T>(\n handler,\n ['onGestureHandlerStateChange', 'onGestureHandlerEvent'],\n doDependenciesDiffer\n );\n}\n","import { useEffect } from 'react';\nimport { BasicWorkletFunction, WorkletFunction } from '../commonTypes';\nimport { startMapper, stopMapper } from '../core';\nimport { DependencyList } from './commonTypes';\nimport { useSharedValue } from './useSharedValue';\n\nexport interface AnimatedReactionWorkletFunction<T> extends WorkletFunction {\n (prepared: T, previous: T | null): void;\n}\n/**\n * @param prepare - worklet used for data preparation for the second parameter\n * @param react - worklet which takes data prepared by the one in the first parameter and performs certain actions\n * the first worklet defines the inputs, in other words on which shared values change will it be called.\n * the second one can modify any shared values but those which are mentioned in the first worklet. Beware of that, because this may result in endless loop and high cpu usage.\n */\nexport function useAnimatedReaction<T>(\n prepare: BasicWorkletFunction<T>,\n react: AnimatedReactionWorkletFunction<T>,\n dependencies: DependencyList\n): void {\n const previous = useSharedValue<T | null>(null);\n if (dependencies === undefined) {\n dependencies = [\n Object.values(prepare._closure ?? {}),\n Object.values(react._closure ?? {}),\n prepare.__workletHash,\n react.__workletHash,\n ];\n } else {\n dependencies.push(prepare.__workletHash, react.__workletHash);\n }\n\n useEffect(() => {\n const fun = () => {\n 'worklet';\n const input = prepare();\n react(input, previous.value);\n previous.value = input;\n };\n const mapperId = startMapper(\n fun,\n Object.values(prepare._closure ?? {}),\n []\n );\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n}\n","import { Component, useRef } from 'react';\nimport { getTag } from '../NativeMethods';\nimport { useSharedValue } from './useSharedValue';\nimport { RefObjectFunction } from './commonTypes';\n\nexport function useAnimatedRef<T extends Component>(): RefObjectFunction<T> {\n const tag = useSharedValue<number | null>(-1);\n const ref = useRef<RefObjectFunction<T>>();\n\n if (!ref.current) {\n const fun: RefObjectFunction<T> = <RefObjectFunction<T>>((component) => {\n 'worklet';\n // enters when ref is set by attaching to a component\n if (component) {\n tag.value = getTag(component);\n fun.current = component;\n }\n return tag.value;\n });\n\n Object.defineProperty(fun, 'current', {\n value: null,\n writable: true,\n enumerable: false,\n });\n ref.current = fun;\n }\n\n return ref.current;\n}\n","/* global _WORKLET _measure _scrollTo _setGestureState */\nimport { Component } from 'react';\nimport { findNodeHandle } from 'react-native';\nimport { MeasuredDimensions } from './commonTypes';\nimport { RefObjectFunction } from './hook/commonTypes';\nimport { isChromeDebugger, isWeb, shouldBeUseWeb } from './PlatformChecker';\n\nexport function getTag(\n view: null | number | React.Component<any, any> | React.ComponentClass<any>\n): null | number {\n return findNodeHandle(view);\n}\n\nconst isNative = !shouldBeUseWeb();\n\nexport let measure: (\n animatedRef: RefObjectFunction<Component>\n) => MeasuredDimensions | null;\n\nif (isWeb()) {\n measure = (animatedRef: RefObjectFunction<Component>) => {\n const element = animatedRef() as unknown as HTMLElement; // TODO: fix typing of animated refs on web\n const viewportOffset = element.getBoundingClientRect();\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n x: element.offsetLeft,\n y: element.offsetTop,\n pageX: viewportOffset.left,\n pageY: viewportOffset.top,\n };\n };\n} else if (isChromeDebugger()) {\n measure = (_animatedRef: RefObjectFunction<Component>) => {\n console.warn('[Reanimated] measure() cannot be used with Chrome Debugger.');\n return null;\n };\n} else {\n measure = (animatedRef: RefObjectFunction<Component>) => {\n 'worklet';\n if (!_WORKLET) {\n console.warn(\n '[Reanimated] measure() was called from the main JS context. Measure is ' +\n 'only available in the UI runtime. This may also happen if measure() ' +\n 'was called by a worklet in the useAnimatedStyle hook, because useAnimatedStyle ' +\n 'calls the given worklet on the JS runtime during render. If you want to ' +\n 'prevent this warning then wrap the call with `if (_WORKLET)`. Then it will ' +\n 'only be called on the UI runtime after the render has been completed.'\n );\n return null;\n }\n\n const viewTag = animatedRef();\n if (viewTag === -1) {\n console.warn(\n `[Reanimated] The view with tag ${viewTag} is not a valid argument for measure(). This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`\n );\n return null;\n }\n\n const measured = _measure(viewTag);\n if (measured === null) {\n console.warn(\n `[Reanimated] The view with tag ${viewTag} has some undefined, not-yet-computed or meaningless value of \\`LayoutMetrics\\` type. This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`\n );\n return null;\n } else if (measured.x === -1234567) {\n console.warn(\n `[Reanimated] The view with tag ${viewTag} returned an invalid measurement response.`\n );\n return null;\n } else if (isNaN(measured.x)) {\n console.warn(\n `[Reanimated] The view with tag ${viewTag} gets view-flattened on Android. To disable view-flattening, set \\`collapsable={false}\\` on this component.`\n );\n return null;\n } else {\n return measured;\n }\n };\n}\n\nexport let scrollTo: (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n) => void;\n\nif (isWeb()) {\n scrollTo = (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n ) => {\n 'worklet';\n const element = animatedRef() as unknown as HTMLElement;\n // @ts-ignore same call as in react-native-web\n element.scrollTo({ x, y, animated });\n };\n} else if (isNative) {\n scrollTo = (\n animatedRef: RefObjectFunction<Component>,\n x: number,\n y: number,\n animated: boolean\n ) => {\n 'worklet';\n if (!_WORKLET) {\n return;\n }\n const viewTag = animatedRef();\n _scrollTo(viewTag, x, y, animated);\n };\n} else {\n scrollTo = (\n _animatedRef: RefObjectFunction<Component>,\n _x: number,\n _y: number\n ) => {\n // no-op\n };\n}\n\nexport function setGestureState(handlerTag: number, newState: number): void {\n 'worklet';\n if (!_WORKLET || !isNative) {\n console.warn(\n '[Reanimated] You can not use setGestureState in non-worklet function.'\n );\n return;\n }\n _setGestureState(handlerTag, newState);\n}\n","import { RefObject } from 'react';\nimport { NativeScrollEvent } from 'react-native';\nimport { NativeEvent, WorkletFunction } from '../commonTypes';\nimport WorkletEventHandler from '../WorkletEventHandler';\nimport { Context, DependencyList } from './commonTypes';\nimport { useEvent, useHandler } from './Hooks';\n\nexport interface ScrollHandler<TContext extends Context>\n extends WorkletFunction {\n (event: NativeScrollEvent, context?: TContext): void;\n}\n\nexport interface ScrollEvent\n extends NativeScrollEvent,\n NativeEvent<ScrollEvent> {\n eventName: string;\n}\nexport interface ScrollHandlers<TContext extends Context> {\n [key: string]: ScrollHandler<TContext> | undefined;\n onScroll?: ScrollHandler<TContext>;\n onBeginDrag?: ScrollHandler<TContext>;\n onEndDrag?: ScrollHandler<TContext>;\n onMomentumBegin?: ScrollHandler<TContext>;\n onMomentumEnd?: ScrollHandler<TContext>;\n}\n\nexport function useAnimatedScrollHandler<TContext extends Context>(\n handlers: ScrollHandlers<TContext> | ScrollHandler<TContext>,\n dependencies?: DependencyList\n): RefObject<WorkletEventHandler<ScrollEvent>> {\n // case when handlers is a function\n const scrollHandlers: ScrollHandlers<TContext> =\n typeof handlers === 'function' ? { onScroll: handlers } : handlers;\n const { context, doDependenciesDiffer } = useHandler<ScrollEvent, TContext>(\n scrollHandlers,\n dependencies\n );\n\n // build event subscription array\n const subscribeForEvents = ['onScroll'];\n if (scrollHandlers.onBeginDrag !== undefined) {\n subscribeForEvents.push('onScrollBeginDrag');\n }\n if (scrollHandlers.onEndDrag !== undefined) {\n subscribeForEvents.push('onScrollEndDrag');\n }\n if (scrollHandlers.onMomentumBegin !== undefined) {\n subscribeForEvents.push('onMomentumScrollBegin');\n }\n if (scrollHandlers.onMomentumEnd !== undefined) {\n subscribeForEvents.push('onMomentumScrollEnd');\n }\n\n return useEvent<ScrollEvent>(\n (event: ScrollEvent) => {\n 'worklet';\n const {\n onScroll,\n onBeginDrag,\n onEndDrag,\n onMomentumBegin,\n onMomentumEnd,\n } = scrollHandlers;\n if (onScroll && event.eventName.endsWith('onScroll')) {\n onScroll(event, context);\n } else if (onBeginDrag && event.eventName.endsWith('onScrollBeginDrag')) {\n onBeginDrag(event, context);\n } else if (onEndDrag && event.eventName.endsWith('onScrollEndDrag')) {\n onEndDrag(event, context);\n } else if (\n onMomentumBegin &&\n event.eventName.endsWith('onMomentumScrollBegin')\n ) {\n onMomentumBegin(event, context);\n } else if (\n onMomentumEnd &&\n event.eventName.endsWith('onMomentumScrollEnd')\n ) {\n onMomentumEnd(event, context);\n }\n },\n subscribeForEvents,\n doDependenciesDiffer\n );\n}\n","import { useEffect, useRef } from 'react';\nimport { initialUpdaterRun } from '../animation';\nimport { BasicWorkletFunction, SharedValue } from '../commonTypes';\nimport { makeMutable, startMapper, stopMapper } from '../core';\nimport { DependencyList } from './commonTypes';\n\nexport type DerivedValue<T> = Readonly<SharedValue<T>>;\n\nexport function useDerivedValue<T>(\n processor: BasicWorkletFunction<T>,\n dependencies: DependencyList\n): DerivedValue<T> {\n const initRef = useRef<SharedValue<T> | null>(null);\n const inputs = Object.values(processor._closure ?? {});\n\n // build dependencies\n if (dependencies === undefined) {\n dependencies = [...inputs, processor.__workletHash];\n } else {\n dependencies.push(processor.__workletHash);\n }\n\n if (initRef.current === null) {\n initRef.current = makeMutable(initialUpdaterRun(processor));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sharedValue: SharedValue<T> = initRef.current!;\n\n useEffect(() => {\n const fun = () => {\n 'worklet';\n sharedValue.value = processor();\n };\n const mapperId = startMapper(fun, inputs, [sharedValue]);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n\n return sharedValue;\n}\n","import { useEffect, useRef } from 'react';\nimport { makeMutable } from '../core';\nimport NativeReanimated from '../NativeReanimated';\nimport { SensorValue3D, SensorValueRotation } from '../commonTypes';\n\nexport enum SensorType {\n ACCELEROMETER = 1,\n GYROSCOPE = 2,\n GRAVITY = 3,\n MAGNETIC_FIELD = 4,\n ROTATION = 5,\n}\n\nexport type SensorConfig = {\n interval: number | 'auto';\n};\n\nexport type AnimatedSensor = {\n sensor: SensorValue3D | SensorValueRotation | null;\n unregister: () => void;\n isAvailable: boolean;\n config: SensorConfig;\n};\n\nexport function useAnimatedSensor(\n sensorType: SensorType,\n userConfig?: SensorConfig\n): AnimatedSensor {\n const ref = useRef<AnimatedSensor>({\n sensor: null,\n unregister: () => {\n // NOOP\n },\n isAvailable: false,\n config: {\n interval: 0,\n },\n });\n\n if (ref.current.sensor === null) {\n ref.current.config = { interval: 'auto', ...userConfig };\n let sensorData;\n if (sensorType === SensorType.ROTATION) {\n sensorData = {\n qw: 0,\n qx: 0,\n qy: 0,\n qz: 0,\n yaw: 0,\n pitch: 0,\n roll: 0,\n };\n } else {\n sensorData = {\n x: 0,\n y: 0,\n z: 0,\n };\n }\n ref.current.sensor = makeMutable(sensorData) as any;\n }\n\n useEffect(() => {\n ref.current.config = { interval: 'auto', ...userConfig };\n const id = NativeReanimated.registerSensor(\n sensorType,\n ref.current.config.interval === 'auto' ? -1 : ref.current.config.interval,\n ref.current.sensor as any\n );\n\n if (id !== -1) {\n // if sensor is available\n ref.current.unregister = () => NativeReanimated.unregisterSensor(id);\n ref.current.isAvailable = true;\n } else {\n // if sensor is unavailable\n ref.current.unregister = () => {\n // NOOP\n };\n ref.current.isAvailable = false;\n }\n\n return () => {\n ref.current.unregister();\n };\n }, [sensorType, userConfig]);\n\n return ref.current;\n}\n","import { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\nimport { FrameInfo } from '../frameCallback/FrameCallbackRegistryUI';\n\nexport type FrameCallback = {\n setActive: (isActive: boolean) => void;\n isActive: boolean;\n callbackId: number;\n};\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\n\nexport function useFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n autostart = true\n): FrameCallback {\n const ref = useRef<FrameCallback>({\n setActive: (isActive: boolean) => {\n frameCallbackRegistry.manageStateFrameCallback(\n ref.current.callbackId,\n isActive\n );\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n ref.current.setActive(ref.current.isActive);\n\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);\n ref.current.callbackId = -1;\n };\n }, [callback, autostart]);\n\n return ref.current;\n}\n","import { runOnUI } from '../core';\nimport { FrameInfo, prepareUIRegistry } from './FrameCallbackRegistryUI';\n\nexport default class FrameCallbackRegistryJS {\n private nextCallbackId = 0;\n\n constructor() {\n prepareUIRegistry();\n }\n\n registerFrameCallback(callback: (frameInfo: FrameInfo) => void): number {\n if (!callback) {\n return -1;\n }\n\n const callbackId = this.nextCallbackId;\n this.nextCallbackId++;\n\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.registerFrameCallback(callback, callbackId);\n })();\n\n return callbackId;\n }\n\n unregisterFrameCallback(callbackId: number): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.unregisterFrameCallback(callbackId);\n })();\n }\n\n manageStateFrameCallback(callbackId: number, state: boolean): void {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.manageStateFrameCallback(callbackId, state);\n })();\n }\n}\n","import { runOnUI } from '../core';\n\ntype CallbackDetails = {\n callback: (frameInfo: FrameInfo) => void;\n startTime: number | null;\n};\n\nexport type FrameInfo = {\n timestamp: number;\n timeSincePreviousFrame: number | null;\n timeSinceFirstFrame: number;\n};\n\nexport interface FrameCallbackRegistryUI {\n frameCallbackRegistry: Map<number, CallbackDetails>;\n activeFrameCallbacks: Set<number>;\n previousFrameTimestamp: number | null;\n runCallbacks: () => void;\n registerFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) => void;\n unregisterFrameCallback: (callbackId: number) => void;\n manageStateFrameCallback: (callbackId: number, state: boolean) => void;\n}\n\nexport const prepareUIRegistry = runOnUI(() => {\n 'worklet';\n\n const frameCallbackRegistry: FrameCallbackRegistryUI = {\n frameCallbackRegistry: new Map<number, CallbackDetails>(),\n activeFrameCallbacks: new Set<number>(),\n previousFrameTimestamp: null,\n\n runCallbacks() {\n const loop = (timestamp: number) => {\n if (this.previousFrameTimestamp === null) {\n this.previousFrameTimestamp = timestamp;\n }\n\n const delta = timestamp - this.previousFrameTimestamp;\n\n this.activeFrameCallbacks.forEach((callbackId: number) => {\n const callbackDetails = this.frameCallbackRegistry.get(callbackId)!;\n\n const { startTime } = callbackDetails;\n\n if (startTime === null) {\n // First frame\n callbackDetails.startTime = timestamp;\n\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: null,\n timeSinceFirstFrame: 0,\n });\n } else {\n // Next frame\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: delta,\n timeSinceFirstFrame: timestamp - startTime,\n });\n }\n });\n\n if (this.activeFrameCallbacks.size > 0) {\n this.previousFrameTimestamp = timestamp;\n requestAnimationFrame(loop);\n } else {\n this.previousFrameTimestamp = null;\n }\n };\n\n // runCallback() should only be called after registering a callback,\n // so if there is only one active callback, then it means that there were\n // zero previously and the loop isn't running yet.\n if (this.activeFrameCallbacks.size === 1) {\n requestAnimationFrame(loop);\n }\n },\n\n registerFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n callbackId: number\n ) {\n this.frameCallbackRegistry.set(callbackId, {\n callback: callback,\n startTime: null,\n });\n },\n\n unregisterFrameCallback(callbackId: number) {\n this.manageStateFrameCallback(callbackId, false);\n this.frameCallbackRegistry.delete(callbackId);\n },\n\n manageStateFrameCallback(callbackId: number, state: boolean) {\n if (callbackId === -1) {\n return;\n }\n if (state) {\n this.activeFrameCallbacks.add(callbackId);\n this.runCallbacks();\n } else {\n const callback = this.frameCallbackRegistry.get(callbackId)!;\n callback.startTime = null;\n\n this.activeFrameCallbacks.delete(callbackId);\n }\n },\n };\n\n global._frameCallbackRegistry = frameCallbackRegistry;\n});\n","import { useEffect, useRef } from 'react';\nimport NativeReanimated from '../NativeReanimated';\nimport { makeMutable } from '../core';\nimport { AnimatedKeyboardInfo, KeyboardState } from '../commonTypes';\n\nexport function useAnimatedKeyboard(): AnimatedKeyboardInfo {\n const ref = useRef<AnimatedKeyboardInfo | null>(null);\n const listenerId = useRef<number>(-1);\n const isSubscribed = useRef<boolean>(false);\n\n if (ref.current === null) {\n const keyboardEventData: AnimatedKeyboardInfo = {\n state: makeMutable(KeyboardState.UNKNOWN),\n height: makeMutable(0),\n };\n listenerId.current =\n NativeReanimated.subscribeForKeyboardEvents(keyboardEventData);\n ref.current = keyboardEventData;\n isSubscribed.current = true;\n }\n useEffect(() => {\n if (isSubscribed.current === false && ref.current !== null) {\n // subscribe again after Fast Refresh\n listenerId.current = NativeReanimated.subscribeForKeyboardEvents(\n ref.current\n );\n isSubscribed.current = true;\n }\n return () => {\n NativeReanimated.unsubscribeFromKeyboardEvents(listenerId.current);\n isSubscribed.current = false;\n };\n }, []);\n return ref.current;\n}\n","import {\n PerpectiveTransform,\n RotateTransform,\n RotateXTransform,\n RotateYTransform,\n RotateZTransform,\n ScaleTransform,\n ScaleXTransform,\n ScaleYTransform,\n TranslateXTransform,\n TranslateYTransform,\n SkewXTransform,\n SkewYTransform,\n MatrixTransform,\n ViewStyle,\n TextStyle,\n} from 'react-native';\nimport { Context } from './hook/commonTypes';\n\nexport type TransformProperty =\n | PerpectiveTransform\n | RotateTransform\n | RotateXTransform\n | RotateYTransform\n | RotateZTransform\n | ScaleTransform\n | ScaleXTransform\n | ScaleYTransform\n | TranslateXTransform\n | TranslateYTransform\n | SkewXTransform\n | SkewYTransform\n | MatrixTransform;\n\nexport interface StyleProps extends ViewStyle, TextStyle {\n originX?: number;\n originY?: number;\n [key: string]: any;\n}\n\nexport interface AnimatedStyle\n extends Record<string, Animation<AnimationObject>> {\n [key: string]: any;\n transform?: Array<Record<string, Animation<AnimationObject>>>;\n}\nexport interface SharedValue<T> {\n value: T;\n}\n\nexport interface WorkletFunction {\n _closure?: Context;\n __workletHash?: number;\n __optimalization?: number;\n}\n\nexport interface BasicWorkletFunction<T> extends WorkletFunction {\n (): T;\n}\n\nexport interface BasicWorkletFunctionOptional<T> extends WorkletFunction {\n (): Partial<T>;\n}\n\nexport interface NativeEvent<T> {\n nativeEvent: T;\n}\nexport interface ComplexWorkletFunction<A extends any[], R>\n extends WorkletFunction {\n (...args: A): R;\n}\n\nexport interface NestedObject<T> {\n [key: string]: NestedObjectValues<T>;\n}\n\nexport type NestedObjectValues<T> =\n | T\n | Array<NestedObjectValues<T>>\n | NestedObject<T>;\n\nexport interface AdapterWorkletFunction extends WorkletFunction {\n (value: NestedObject<string | number | AnimationObject>): void;\n}\n\nexport type AnimatableValue = number | string | Array<number>;\n\nexport interface AnimationObject {\n [key: string]: any;\n callback: AnimationCallback;\n current?: AnimatableValue;\n toValue?: AnimationObject['current'];\n startValue?: AnimationObject['current'];\n finished?: boolean;\n strippedCurrent?: number;\n cancelled?: boolean;\n\n __prefix?: string;\n __suffix?: string;\n onFrame: (animation: any, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: any,\n current: any,\n timestamp: Timestamp,\n previousAnimation: any\n ) => void;\n}\n\nexport interface Animation<T extends AnimationObject> extends AnimationObject {\n onFrame: (animation: T, timestamp: Timestamp) => boolean;\n onStart: (\n nextAnimation: T,\n current: T extends NumericAnimation ? number : AnimatableValue,\n timestamp: Timestamp,\n previousAnimation: T\n ) => void;\n}\n\nexport interface NumericAnimation {\n current?: number;\n}\n\nexport type AnimationCallback = (\n finished?: boolean,\n current?: AnimatableValue\n) => void;\n\nexport type Timestamp = number;\n\nexport type Value3D = {\n x: number;\n y: number;\n z: number;\n};\n\nexport type SensorValue3D = SharedValue<Value3D>;\n\nexport type ValueRotation = {\n qw: number;\n qx: number;\n qy: number;\n qz: number;\n yaw: number;\n pitch: number;\n roll: number;\n};\n\nexport type SensorValueRotation = SharedValue<ValueRotation>;\n\nexport type ShadowNodeWrapper = object;\n\nexport enum KeyboardState {\n UNKNOWN = 0,\n OPENING = 1,\n OPEN = 2,\n CLOSING = 3,\n CLOSED = 4,\n}\n\nexport type AnimatedKeyboardInfo = {\n height: SharedValue<number>;\n state: SharedValue<KeyboardState>;\n};\n\nexport interface MeasuredDimensions {\n x: number;\n y: number;\n width: number;\n height: number;\n pageX: number;\n pageY: number;\n}\n","import { RefObject, useEffect, useRef } from 'react';\n\nimport type Animated from 'react-native-reanimated';\nimport { ScrollEvent } from './useAnimatedScrollHandler';\nimport { SharedValue } from '../commonTypes';\nimport { findNodeHandle } from 'react-native';\nimport { useEvent } from './utils';\nimport { useSharedValue } from './useSharedValue';\n\nconst subscribeForEvents = [\n 'onScroll',\n 'onScrollBeginDrag',\n 'onScrollEndDrag',\n 'onMomentumScrollBegin',\n 'onMomentumScrollEnd',\n];\n\nexport function useScrollViewOffset(\n aref: RefObject<Animated.ScrollView>\n): SharedValue<number> {\n const offsetRef = useRef(useSharedValue(0));\n\n const event = useEvent<ScrollEvent>((event: ScrollEvent) => {\n 'worklet';\n offsetRef.current.value =\n event.contentOffset.x === 0\n ? event.contentOffset.y\n : event.contentOffset.x;\n }, subscribeForEvents);\n\n useEffect(() => {\n const viewTag = findNodeHandle(aref.current);\n event.current?.registerForEvents(viewTag as number);\n }, [aref.current]);\n\n return offsetRef.current;\n}\n","// @ts-ignore JS file\nimport interpolateNode from '../reanimated1/derived/interpolate';\n\nexport enum Extrapolation {\n IDENTITY = 'identity',\n CLAMP = 'clamp',\n EXTEND = 'extend',\n}\n\nexport interface InterpolatedNode {\n __nodeId: number;\n}\n\ninterface InterpolationNarrowedInput {\n leftEdgeInput: number;\n rightEdgeInput: number;\n leftEdgeOutput: number;\n rightEdgeOutput: number;\n}\n\nexport interface ExtrapolationConfig {\n extrapolateLeft?: Extrapolation | string;\n extrapolateRight?: Extrapolation | string;\n}\n\ninterface RequiredExtrapolationConfig {\n extrapolateLeft: Extrapolation;\n extrapolateRight: Extrapolation;\n}\n\nexport type ExtrapolationType =\n | ExtrapolationConfig\n | Extrapolation\n | string\n | undefined;\n\nfunction isNode(x: number | InterpolatedNode): x is InterpolatedNode {\n 'worklet';\n return (x as InterpolatedNode).__nodeId !== undefined;\n}\n\nfunction getVal(\n type: Extrapolation,\n coef: number,\n val: number,\n leftEdgeOutput: number,\n rightEdgeOutput: number,\n x: number\n): number {\n 'worklet';\n\n switch (type) {\n case Extrapolation.IDENTITY:\n return x;\n case Extrapolation.CLAMP:\n if (coef * val < coef * leftEdgeOutput) {\n return leftEdgeOutput;\n }\n return rightEdgeOutput;\n case Extrapolation.EXTEND:\n default:\n return val;\n }\n}\n\nfunction isExtrapolate(value: string): value is Extrapolation {\n 'worklet';\n\n return (\n value === Extrapolation.EXTEND ||\n value === Extrapolation.CLAMP ||\n value === Extrapolation.IDENTITY\n );\n}\n\n// validates extrapolations type\n// if type is correct, converts it to ExtrapolationConfig\nfunction validateType(type: ExtrapolationType): RequiredExtrapolationConfig {\n 'worklet';\n // initialize extrapolationConfig with default extrapolation\n const extrapolationConfig: RequiredExtrapolationConfig = {\n extrapolateLeft: Extrapolation.EXTEND,\n extrapolateRight: Extrapolation.EXTEND,\n };\n\n if (!type) {\n return extrapolationConfig;\n }\n\n if (typeof type === 'string') {\n if (!isExtrapolate(type)) {\n throw new Error(\n `Reanimated: not supported value for \"interpolate\" \\nSupported values: [\"extend\", \"clamp\", \"identity\", Extrapolatation.CLAMP, Extrapolatation.EXTEND, Extrapolatation.IDENTITY]\\n Valid example:\n interpolate(value, [inputRange], [outputRange], \"clamp\")`\n );\n }\n extrapolationConfig.extrapolateLeft = type;\n extrapolationConfig.extrapolateRight = type;\n return extrapolationConfig;\n }\n\n // otherwise type is extrapolation config object\n if (\n (type.extrapolateLeft && !isExtrapolate(type.extrapolateLeft)) ||\n (type.extrapolateRight && !isExtrapolate(type.extrapolateRight))\n ) {\n throw new Error(\n `Reanimated: not supported value for \"interpolate\" \\nSupported values: [\"extend\", \"clamp\", \"identity\", Extrapolatation.CLAMP, Extrapolatation.EXTEND, Extrapolatation.IDENTITY]\\n Valid example:\n interpolate(value, [inputRange], [outputRange], {\n extrapolateLeft: Extrapolation.CLAMP,\n extrapolateRight: Extrapolation.IDENTITY\n }})`\n );\n }\n\n Object.assign(extrapolationConfig, type);\n return extrapolationConfig;\n}\n\nfunction internalInterpolate(\n x: number,\n narrowedInput: InterpolationNarrowedInput,\n extrapolationConfig: RequiredExtrapolationConfig\n) {\n 'worklet';\n const { leftEdgeInput, rightEdgeInput, leftEdgeOutput, rightEdgeOutput } =\n narrowedInput;\n if (rightEdgeInput - leftEdgeInput === 0) return leftEdgeOutput;\n const progress = (x - leftEdgeInput) / (rightEdgeInput - leftEdgeInput);\n const val = leftEdgeOutput + progress * (rightEdgeOutput - leftEdgeOutput);\n const coef = rightEdgeOutput >= leftEdgeOutput ? 1 : -1;\n\n if (coef * val < coef * leftEdgeOutput) {\n return getVal(\n extrapolationConfig.extrapolateLeft,\n coef,\n val,\n leftEdgeOutput,\n rightEdgeOutput,\n x\n );\n } else if (coef * val > coef * rightEdgeOutput) {\n return getVal(\n extrapolationConfig.extrapolateRight,\n coef,\n val,\n leftEdgeOutput,\n rightEdgeOutput,\n x\n );\n }\n\n return val;\n}\n\n// TODO: support default values in worklets:\n// e.g. function interpolate(x, input, output, type = Extrapolatation.CLAMP)\nexport function interpolate(\n x: number | InterpolatedNode,\n input: readonly number[],\n output: readonly number[],\n type?: ExtrapolationType\n): number {\n 'worklet';\n if (input.length < 2 || output.length < 2) {\n throw Error(\n 'Interpolation input and output should contain at least two values.'\n );\n }\n\n const extrapolationConfig = validateType(type);\n\n if (isNode(x)) {\n console.warn(\n `interpolate() was renamed to interpolateNode() in Reanimated 2. Please use interpolateNode() instead`\n );\n return interpolateNode(x, {\n inputRange: input,\n outputRange: output,\n extrapolateLeft: extrapolationConfig.extrapolateLeft,\n extrapolateRight: extrapolationConfig.extrapolateRight,\n });\n }\n\n const length = input.length;\n const narrowedInput: InterpolationNarrowedInput = {\n leftEdgeInput: input[0],\n rightEdgeInput: input[1],\n leftEdgeOutput: output[0],\n rightEdgeOutput: output[1],\n };\n if (length > 2) {\n if (x > input[length - 1]) {\n narrowedInput.leftEdgeInput = input[length - 2];\n narrowedInput.rightEdgeInput = input[length - 1];\n narrowedInput.leftEdgeOutput = output[length - 2];\n narrowedInput.rightEdgeOutput = output[length - 1];\n } else {\n for (let i = 1; i < length; ++i) {\n if (x <= input[i]) {\n narrowedInput.leftEdgeInput = input[i - 1];\n narrowedInput.rightEdgeInput = input[i];\n narrowedInput.leftEdgeOutput = output[i - 1];\n narrowedInput.rightEdgeOutput = output[i];\n break;\n }\n }\n }\n }\n\n return internalInterpolate(x, narrowedInput, extrapolationConfig);\n}\n","import {\n hsvToColor,\n RGBtoHSV,\n rgbaColor,\n processColor,\n red,\n green,\n blue,\n opacity,\n} from './Colors';\nimport { makeMutable } from './core';\nimport { interpolate } from './interpolation';\n// @ts-ignore JS file\nimport { Extrapolate } from '../reanimated1/derived';\nimport { SharedValue } from './commonTypes';\nimport { useSharedValue } from './hook/useSharedValue';\n\nexport type InterpolationOptions = {\n gamma?: number;\n useCorrectedHSVInterpolation?: boolean;\n};\n\nconst interpolateColorsHSV = (\n value: number,\n inputRange: readonly number[],\n colors: InterpolateHSV,\n options: InterpolationOptions\n) => {\n 'worklet';\n let h = 0;\n const { useCorrectedHSVInterpolation = true } = options;\n if (useCorrectedHSVInterpolation) {\n // if the difference between hues in a range is > 180 deg\n // then move the hue at the right end of the range +/- 360 deg\n // and add the next point in the original place + 0.00001 with original hue\n // to not break the next range\n const correctedInputRange = [inputRange[0]];\n const originalH = colors.h;\n const correctedH = [originalH[0]];\n\n for (let i = 1; i < originalH.length; ++i) {\n const d = originalH[i] - originalH[i - 1];\n if (originalH[i] > originalH[i - 1] && d > 0.5) {\n correctedInputRange.push(inputRange[i]);\n correctedInputRange.push(inputRange[i] + 0.00001);\n correctedH.push(originalH[i] - 1);\n correctedH.push(originalH[i]);\n } else if (originalH[i] < originalH[i - 1] && d < -0.5) {\n correctedInputRange.push(inputRange[i]);\n correctedInputRange.push(inputRange[i] + 0.00001);\n correctedH.push(originalH[i] + 1);\n correctedH.push(originalH[i]);\n } else {\n correctedInputRange.push(inputRange[i]);\n correctedH.push(originalH[i]);\n }\n }\n h =\n (interpolate(value, correctedInputRange, correctedH, Extrapolate.CLAMP) +\n 1) %\n 1;\n } else {\n h = interpolate(value, inputRange, colors.h, Extrapolate.CLAMP);\n }\n const s = interpolate(value, inputRange, colors.s, Extrapolate.CLAMP);\n const v = interpolate(value, inputRange, colors.v, Extrapolate.CLAMP);\n const a = interpolate(value, inputRange, colors.a, Extrapolate.CLAMP);\n return hsvToColor(h, s, v, a);\n};\n\nconst toLinearSpace = (x: number[], gamma: number): number[] => {\n 'worklet';\n return x.map((v) => Math.pow(v / 255, gamma));\n};\n\nconst toGammaSpace = (x: number, gamma: number): number => {\n 'worklet';\n return Math.round(Math.pow(x, 1 / gamma) * 255);\n};\n\nconst interpolateColorsRGB = (\n value: number,\n inputRange: readonly number[],\n colors: InterpolateRGB,\n options: InterpolationOptions\n) => {\n 'worklet';\n const { gamma = 2.2 } = options;\n let { r: outputR, g: outputG, b: outputB } = colors;\n if (gamma !== 1) {\n outputR = toLinearSpace(outputR, gamma);\n outputG = toLinearSpace(outputG, gamma);\n outputB = toLinearSpace(outputB, gamma);\n }\n const r = interpolate(value, inputRange, outputR, Extrapolate.CLAMP);\n const g = interpolate(value, inputRange, outputG, Extrapolate.CLAMP);\n const b = interpolate(value, inputRange, outputB, Extrapolate.CLAMP);\n const a = interpolate(value, inputRange, colors.a, Extrapolate.CLAMP);\n if (gamma === 1) {\n return rgbaColor(r, g, b, a);\n }\n return rgbaColor(\n toGammaSpace(r, gamma),\n toGammaSpace(g, gamma),\n toGammaSpace(b, gamma),\n a\n );\n};\n\ninterface InterpolateRGB {\n r: number[];\n g: number[];\n b: number[];\n a: number[];\n}\n\nconst getInterpolateRGB = (\n colors: readonly (string | number)[]\n): InterpolateRGB => {\n 'worklet';\n\n const r = [];\n const g = [];\n const b = [];\n const a = [];\n for (let i = 0; i < colors.length; ++i) {\n const color = colors[i];\n const processedColor = processColor(color);\n // explicit check in case if processedColor is 0\n if (processedColor !== null && processedColor !== undefined) {\n r.push(red(processedColor));\n g.push(green(processedColor));\n b.push(blue(processedColor));\n a.push(opacity(processedColor));\n }\n }\n return { r, g, b, a };\n};\n\ninterface InterpolateHSV {\n h: number[];\n s: number[];\n v: number[];\n a: number[];\n}\n\nconst getInterpolateHSV = (\n colors: readonly (string | number)[]\n): InterpolateHSV => {\n 'worklet';\n const h = [];\n const s = [];\n const v = [];\n const a = [];\n for (let i = 0; i < colors.length; ++i) {\n const color = colors[i];\n const processedColor = processColor(color) as any;\n if (typeof processedColor === 'number') {\n const processedHSVColor = RGBtoHSV(\n red(processedColor),\n green(processedColor),\n blue(processedColor)\n );\n\n h.push(processedHSVColor.h);\n s.push(processedHSVColor.s);\n v.push(processedHSVColor.v);\n a.push(opacity(processedColor));\n }\n }\n return { h, s, v, a };\n};\n\nexport const interpolateColor = (\n value: number,\n inputRange: readonly number[],\n outputRange: readonly (string | number)[],\n colorSpace: 'RGB' | 'HSV' = 'RGB',\n options: InterpolationOptions = {}\n): string | number => {\n 'worklet';\n if (colorSpace === 'HSV') {\n return interpolateColorsHSV(\n value,\n inputRange,\n getInterpolateHSV(outputRange),\n options\n );\n } else if (colorSpace === 'RGB') {\n return interpolateColorsRGB(\n value,\n inputRange,\n getInterpolateRGB(outputRange),\n options\n );\n }\n throw new Error(\n `Invalid color space provided: ${colorSpace}. Supported values are: ['RGB', 'HSV']`\n );\n};\n\nexport enum ColorSpace {\n RGB = 0,\n HSV = 1,\n}\n\nexport interface InterpolateConfig {\n inputRange: readonly number[];\n outputRange: readonly (string | number)[];\n colorSpace: ColorSpace;\n cache: SharedValue<InterpolateRGB | InterpolateHSV | null>;\n options: InterpolationOptions;\n}\n\nexport function useInterpolateConfig(\n inputRange: readonly number[],\n outputRange: readonly (string | number)[],\n colorSpace = ColorSpace.RGB,\n options: InterpolationOptions = {}\n): SharedValue<InterpolateConfig> {\n return useSharedValue({\n inputRange,\n outputRange,\n colorSpace,\n cache: makeMutable<InterpolateRGB | InterpolateHSV | null>(null),\n options,\n });\n}\n\nexport const interpolateSharableColor = (\n value: number,\n interpolateConfig: SharedValue<InterpolateConfig>\n): string | number => {\n 'worklet';\n let colors = interpolateConfig.value.cache.value;\n if (interpolateConfig.value.colorSpace === ColorSpace.RGB) {\n if (!colors) {\n colors = getInterpolateRGB(interpolateConfig.value.outputRange);\n interpolateConfig.value.cache.value = colors;\n }\n return interpolateColorsRGB(\n value,\n interpolateConfig.value.inputRange,\n colors as InterpolateRGB,\n interpolateConfig.value.options\n );\n } else if (interpolateConfig.value.colorSpace === ColorSpace.HSV) {\n if (!colors) {\n colors = getInterpolateHSV(interpolateConfig.value.outputRange);\n interpolateConfig.value.cache.value = colors;\n }\n return interpolateColorsHSV(\n value,\n interpolateConfig.value.inputRange,\n colors as InterpolateHSV,\n interpolateConfig.value.options\n );\n }\n throw new Error(\n `Invalid color space provided: ${interpolateConfig.value.colorSpace}. Supported values are: ['RGB', 'HSV']`\n );\n};\n","import { addWhitelistedNativeProps } from '../ConfigHelper';\nimport { AdapterWorkletFunction } from './commonTypes';\n\nexport function createAnimatedPropAdapter(\n adapter: AdapterWorkletFunction,\n nativeProps?: string[]\n): AdapterWorkletFunction {\n const nativePropsToAdd: { [key: string]: boolean } = {};\n // eslint-disable-next-line no-unused-expressions\n nativeProps?.forEach((prop) => {\n nativePropsToAdd[prop] = true;\n });\n addWhitelistedNativeProps(nativePropsToAdd);\n return adapter;\n}\n\n// ADAPTERS\n\nexport const SVGAdapter: AdapterWorkletFunction = createAnimatedPropAdapter(\n (props) => {\n 'worklet';\n const keys = Object.keys(props);\n // transform\n if (keys.includes('transform')) {\n if (Array.isArray(props.transform)) {\n // case of array with 6 values => https://github.com/react-native-svg/react-native-svg/blob/b2e2c355204ff4b10973d3afce1495f7e4167ff7/src/elements/Shape.tsx#L200\n if (props.transform.length !== 6) {\n throw new Error(\n `invalid transform length of ${props.transform.length}, should be 6`\n );\n }\n const transform: number[] = props.transform as number[];\n const x: number = (props.x as number) ?? 0;\n const y: number = (props.y as number) ?? 0;\n props.transform = [\n { translateX: transform[0] * x + transform[2] * y + transform[4] },\n { translateY: transform[1] * x + transform[3] * y + transform[5] },\n ];\n } else if (typeof props.transform === 'string') {\n // case of string 'translate(translateX translateY)'\n // todo: handle other cases of transform string like here https://github.com/react-native-svg/react-native-svg/blob/b2e2c355204ff4b10973d3afce1495f7e4167ff7/src/lib/extract/extractTransform.ts#L184\n const transform: string = props.transform as string;\n const arr = transform\n .replace('translate(', '')\n .replace(')', '')\n .split(' ');\n props.transform = [\n { translateX: parseFloat(arr[0]) },\n { translateY: parseFloat(arr[1]) },\n ];\n }\n }\n // todo: other props\n }\n);\n\nexport const TextInputAdapter = createAnimatedPropAdapter(\n (props) => {\n 'worklet';\n const keys = Object.keys(props);\n // convert text to value like RN does here: https://github.com/facebook/react-native/blob/f2c6279ca497b34d5a2bfbb6f2d33dc7a7bea02a/Libraries/Components/TextInput/TextInput.js#L878\n if (keys.includes('value')) {\n props.text = props.value;\n delete props.value;\n }\n },\n ['text']\n);\n","import './LayoutAnimationRepository';\nexport * from './animationBuilder';\nexport * from './defaultAnimations';\nexport * from './defaultTransitions';\n","export { BaseAnimationBuilder } from './BaseAnimationBuilder';\nexport { ComplexAnimationBuilder } from './ComplexAnimationBuilder';\nexport { Keyframe } from './Keyframe';\nexport {\n LayoutAnimation,\n AnimationFunction,\n EntryAnimationsValues,\n ExitAnimationsValues,\n EntryExitAnimationFunction,\n AnimationConfigFunction,\n IEntryAnimationBuilder,\n IExitAnimationBuilder,\n LayoutAnimationsValues,\n LayoutAnimationFunction,\n ILayoutAnimationBuilder,\n BaseLayoutAnimationConfig,\n BaseBuilderAnimationConfig,\n LayoutAnimationAndConfig,\n IEntryExitAnimationBuilder,\n} from './commonTypes';\n","import { withDelay } from '../../animation';\nimport {\n EntryExitAnimationFunction,\n AnimationFunction,\n LayoutAnimationFunction,\n} from './commonTypes';\n\nexport class BaseAnimationBuilder {\n durationV?: number;\n delayV?: number;\n randomizeDelay = false;\n callbackV?: (finished: boolean) => void;\n\n static createInstance: () => BaseAnimationBuilder;\n build = (): EntryExitAnimationFunction | LayoutAnimationFunction => {\n throw Error('Unimplemented method in child class.');\n };\n\n static duration(durationMs: number): BaseAnimationBuilder {\n const instance = this.createInstance();\n return instance.duration(durationMs);\n }\n\n duration(durationMs: number): BaseAnimationBuilder {\n this.durationV = durationMs;\n return this;\n }\n\n static delay(delayMs: number): BaseAnimationBuilder {\n const instance = this.createInstance();\n return instance.delay(delayMs);\n }\n\n delay(delayMs: number): BaseAnimationBuilder {\n this.delayV = delayMs;\n return this;\n }\n\n static withCallback(\n callback: (finished: boolean) => void\n ): BaseAnimationBuilder {\n const instance = this.createInstance();\n return instance.withCallback(callback);\n }\n\n withCallback(callback: (finsihed: boolean) => void): BaseAnimationBuilder {\n this.callbackV = callback;\n return this;\n }\n\n // 300ms is the default animation duration. If any animation has different default has to override this method.\n static getDuration(): number {\n return 300;\n }\n\n getDuration(): number {\n return this.durationV ?? 300;\n }\n\n static randomDelay(): BaseAnimationBuilder {\n const instance = this.createInstance();\n return instance.randomDelay();\n }\n\n randomDelay(): BaseAnimationBuilder {\n this.randomizeDelay = true;\n return this;\n }\n\n // when randomizeDelay is set to true, randomize delay between 0 and provided value (or 1000ms if delay is not provided)\n getDelay(): number {\n return this.randomizeDelay\n ? Math.random() * (this.delayV ?? 1000)\n : this.delayV ?? 0;\n }\n\n getDelayFunction(): AnimationFunction {\n const isDelayProvided = this.randomizeDelay || this.delayV;\n return isDelayProvided\n ? withDelay\n : (_, animation) => {\n 'worklet';\n return animation;\n };\n }\n\n static build(): EntryExitAnimationFunction | LayoutAnimationFunction {\n const instance = this.createInstance();\n return instance.build();\n }\n}\n","import { withTiming, withSpring } from '../../animation';\nimport {\n AnimationFunction,\n BaseBuilderAnimationConfig,\n LayoutAnimationAndConfig,\n} from './commonTypes';\nimport { EasingFn } from '../../Easing';\nimport { BaseAnimationBuilder } from './BaseAnimationBuilder';\nimport { StyleProps } from '../../commonTypes';\n\nexport class ComplexAnimationBuilder extends BaseAnimationBuilder {\n easingV?: EasingFn;\n rotateV?: string;\n type?: AnimationFunction;\n dampingV?: number;\n massV?: number;\n stiffnessV?: number;\n overshootClampingV?: number;\n restDisplacementThresholdV?: number;\n restSpeedThresholdV?: number;\n initialValues?: StyleProps;\n\n static createInstance: () => ComplexAnimationBuilder;\n\n static easing(easingFunction: EasingFn): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.easing(easingFunction);\n }\n\n easing(easingFunction: EasingFn): ComplexAnimationBuilder {\n this.easingV = easingFunction;\n return this;\n }\n\n static rotate(degree: string): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.rotate(degree);\n }\n\n rotate(degree: string): ComplexAnimationBuilder {\n this.rotateV = degree;\n return this;\n }\n\n static springify(): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.springify();\n }\n\n springify(): ComplexAnimationBuilder {\n this.type = withSpring as AnimationFunction;\n return this;\n }\n\n static damping(damping: number): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.damping(damping);\n }\n\n damping(damping: number): ComplexAnimationBuilder {\n this.dampingV = damping;\n return this;\n }\n\n static mass(mass: number): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.mass(mass);\n }\n\n mass(mass: number): ComplexAnimationBuilder {\n this.massV = mass;\n return this;\n }\n\n static stiffness(stiffness: number): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.stiffness(stiffness);\n }\n\n stiffness(stiffness: number): ComplexAnimationBuilder {\n this.stiffnessV = stiffness;\n return this;\n }\n\n static overshootClamping(overshootClamping: number): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.overshootClamping(overshootClamping);\n }\n\n overshootClamping(overshootClamping: number): ComplexAnimationBuilder {\n this.overshootClampingV = overshootClamping;\n return this;\n }\n\n static restDisplacementThreshold(\n restDisplacementThreshold: number\n ): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.restDisplacementThreshold(restDisplacementThreshold);\n }\n\n restDisplacementThreshold(\n restDisplacementThreshold: number\n ): ComplexAnimationBuilder {\n this.restDisplacementThresholdV = restDisplacementThreshold;\n return this;\n }\n\n static restSpeedThreshold(\n restSpeedThreshold: number\n ): ComplexAnimationBuilder {\n const instance = this.createInstance();\n return instance.restSpeedThreshold(restSpeedThreshold);\n }\n\n restSpeedThreshold(restSpeedThreshold: number): ComplexAnimationBuilder {\n this.restSpeedThresholdV = restSpeedThreshold;\n return this;\n }\n\n static withInitialValues(values: StyleProps): BaseAnimationBuilder {\n const instance = this.createInstance();\n return instance.withInitialValues(values);\n }\n\n withInitialValues(values: StyleProps): BaseAnimationBuilder {\n this.initialValues = values;\n return this;\n }\n\n getAnimationAndConfig(): LayoutAnimationAndConfig {\n const duration = this.durationV;\n const easing = this.easingV;\n const rotate = this.rotateV;\n const type = this.type ? this.type : (withTiming as AnimationFunction);\n const damping = this.dampingV;\n const mass = this.massV;\n const stiffness = this.stiffnessV;\n const overshootClamping = this.overshootClampingV;\n const restDisplacementThreshold = this.restDisplacementThresholdV;\n const restSpeedThreshold = this.restSpeedThresholdV;\n\n const animation = type;\n\n const config: BaseBuilderAnimationConfig = {};\n\n if (type === withTiming) {\n if (easing) {\n config.easing = easing;\n }\n if (duration) {\n config.duration = duration;\n }\n if (rotate) {\n config.rotate = rotate;\n }\n } else {\n if (damping) {\n config.damping = damping;\n }\n if (mass) {\n config.mass = mass;\n }\n if (stiffness) {\n config.stiffness = stiffness;\n }\n if (overshootClamping) {\n config.overshootClamping = overshootClamping;\n }\n if (restDisplacementThreshold) {\n config.restDisplacementThreshold = restDisplacementThreshold;\n }\n if (restSpeedThreshold) {\n config.restSpeedThreshold = restSpeedThreshold;\n }\n if (rotate) {\n config.rotate = rotate;\n }\n }\n return [animation, config];\n }\n}\n","import { Easing, EasingFn } from '../../Easing';\nimport { withDelay, withSequence, withTiming } from '../../animation';\nimport {\n AnimationFunction,\n EntryExitAnimationFunction,\n IEntryExitAnimationBuilder,\n KeyframeProps,\n} from './commonTypes';\nimport { TransformProperty, StyleProps } from '../../commonTypes';\nexport interface KeyframePoint {\n duration: number;\n value: number | string;\n easing?: EasingFn;\n}\nexport interface ParsedKeyframesDefinition {\n initialValues: StyleProps;\n keyframes: Record<string, KeyframePoint[]>;\n}\nexport class Keyframe implements IEntryExitAnimationBuilder {\n durationV?: number;\n delayV?: number;\n callbackV?: (finished: boolean) => void;\n definitions: Record<string, KeyframeProps>;\n\n /*\n Keyframe definition should be passed in the constructor as the map\n which keys are between range 0 - 100 (%) and correspond to the point in the animation progress.\n */\n constructor(definitions: Record<string, KeyframeProps>) {\n this.definitions = definitions;\n }\n\n private parseDefinitions(): ParsedKeyframesDefinition {\n /* \n Each style property contain an array with all their key points: \n value, duration of transition to that value, and optional easing function (defaults to Linear)\n */\n const parsedKeyframes: Record<string, KeyframePoint[]> = {};\n /*\n Parsing keyframes 'from' and 'to'.\n */\n if (this.definitions.from) {\n if (this.definitions['0']) {\n throw Error(\n \"You cannot provide both keyframe 0 and 'from' as they both specified initial values\"\n );\n }\n this.definitions['0'] = this.definitions.from;\n delete this.definitions.from;\n }\n if (this.definitions.to) {\n if (this.definitions['100']) {\n throw Error(\n \"You cannot provide both keyframe 100 and 'to' as they both specified values at the end of the animation.\"\n );\n }\n this.definitions['100'] = this.definitions.to;\n delete this.definitions.to;\n }\n /* \n One of the assumptions is that keyframe 0 is required to properly set initial values.\n Every other keyframe should contain properties from the set provided as initial values.\n */\n if (!this.definitions['0']) {\n throw Error(\n \"Please provide 0, or 'from' keyframe with initial state of your object.\"\n );\n }\n const initialValues: StyleProps = this.definitions['0'] as StyleProps;\n /*\n Initialize parsedKeyframes for properties provided in initial keyframe\n */\n Object.keys(initialValues).forEach((styleProp: string) => {\n if (styleProp === 'transform') {\n initialValues[styleProp]?.forEach((transformStyle, index) => {\n Object.keys(transformStyle).forEach((transformProp: string) => {\n parsedKeyframes[index.toString() + '_transform:' + transformProp] =\n [];\n });\n });\n } else {\n parsedKeyframes[styleProp] = [];\n }\n });\n\n const duration: number = this.durationV ? this.durationV : 500;\n const animationKeyPoints: Array<string> = Array.from(\n Object.keys(this.definitions)\n );\n\n const getAnimationDuration = (\n key: string,\n currentKeyPoint: number\n ): number => {\n const maxDuration = (currentKeyPoint / 100) * duration;\n const currentDuration = parsedKeyframes[key].reduce(\n (acc: number, value: KeyframePoint) => acc + value.duration,\n 0\n );\n return maxDuration - currentDuration;\n };\n\n /* \n Other keyframes can't contain properties that were not specified in initial keyframe.\n */\n const addKeyPoint = ({\n key,\n value,\n currentKeyPoint,\n easing,\n }: {\n key: string;\n value: string | number;\n currentKeyPoint: number;\n easing?: EasingFn;\n }): void => {\n if (!(key in parsedKeyframes)) {\n throw Error(\n \"Keyframe can contain only that set of properties that were provide with initial values (keyframe 0 or 'from')\"\n );\n }\n parsedKeyframes[key].push({\n duration: getAnimationDuration(key, currentKeyPoint),\n value: value,\n easing: easing,\n });\n };\n animationKeyPoints\n .filter((value: string) => parseInt(value) !== 0)\n .sort((a: string, b: string) => parseInt(a) - parseInt(b))\n .forEach((keyPoint: string) => {\n if (parseInt(keyPoint) < 0 || parseInt(keyPoint) > 100) {\n throw Error('Keyframe should be in between range 0 - 100.');\n }\n const keyframe: KeyframeProps = this.definitions[keyPoint];\n const easing = keyframe.easing;\n delete keyframe.easing;\n const addKeyPointWith = (key: string, value: string | number) =>\n addKeyPoint({\n key,\n value,\n currentKeyPoint: parseInt(keyPoint),\n easing,\n });\n Object.keys(keyframe).forEach((key: string) => {\n if (key === 'transform') {\n keyframe[key]?.forEach(\n (transformStyle: { [key: string]: any }, index) => {\n Object.keys(transformStyle).forEach((transformProp: string) => {\n addKeyPointWith(\n index.toString() + '_transform:' + transformProp,\n transformStyle[transformProp]\n );\n });\n }\n );\n } else {\n addKeyPointWith(key, keyframe[key]);\n }\n });\n });\n return { initialValues: initialValues, keyframes: parsedKeyframes };\n }\n\n duration(durationMs: number): Keyframe {\n this.durationV = durationMs;\n return this;\n }\n\n delay(delayMs: number): Keyframe {\n this.delayV = delayMs;\n return this;\n }\n\n withCallback(callback: (finsihed: boolean) => void): Keyframe {\n this.callbackV = callback;\n return this;\n }\n\n private getDelayFunction(): AnimationFunction {\n const delay = this.delayV;\n return delay\n ? withDelay\n : (_, animation) => {\n 'worklet';\n return animation;\n };\n }\n\n build = (): EntryExitAnimationFunction => {\n const delay = this.delayV;\n const delayFunction = this.getDelayFunction();\n const { keyframes, initialValues } = this.parseDefinitions();\n const callback = this.callbackV;\n\n return (_targetValues) => {\n 'worklet';\n const animations: StyleProps = {};\n\n /* \n For each style property, an animations sequence is created that corresponds with its key points.\n Transform style properties require special handling because of their nested structure.\n */\n const addAnimation = (key: string) => {\n const keyframePoints = keyframes[key];\n // in case if property was only passed as initial value\n if (keyframePoints.length === 0) return;\n const animation = delayFunction(\n delay,\n keyframePoints.length === 1\n ? withTiming(keyframePoints[0].value, {\n duration: keyframePoints[0].duration,\n easing: keyframePoints[0].easing\n ? keyframePoints[0].easing\n : Easing.linear,\n })\n : withSequence.apply(\n this,\n keyframePoints.map((keyframePoint: KeyframePoint) =>\n withTiming(keyframePoint.value, {\n duration: keyframePoint.duration,\n easing: keyframePoint.easing\n ? keyframePoint.easing\n : Easing.linear,\n })\n )\n )\n );\n if (key.includes('transform')) {\n if (!('transform' in animations)) {\n animations.transform = [];\n }\n animations.transform?.push(<TransformProperty>{\n [key.split(':')[1]]: animation,\n });\n } else {\n animations[key] = animation;\n }\n };\n Object.keys(initialValues).forEach((key: string) => {\n if (key.includes('transform')) {\n initialValues[key].forEach(\n (transformProp: Record<string, number | string>, index: number) => {\n Object.keys(transformProp).forEach((transformPropKey: string) => {\n addAnimation(\n index.toString() + '_transform:' + transformPropKey\n );\n });\n }\n );\n } else {\n addAnimation(key);\n }\n });\n return {\n animations: animations,\n initialValues: initialValues,\n callback: callback,\n };\n };\n };\n}\n","export * from './Flip';\nexport * from './Stretch';\nexport * from './Fade';\nexport * from './Slide';\nexport * from './Zoom';\nexport * from './Bounce';\nexport * from './Lightspeed';\nexport * from './Pinwheel';\nexport * from './Rotate';\nexport * from './Roll';\n","import {\n IEntryExitAnimationBuilder,\n EntryExitAnimationFunction,\n EntryAnimationsValues,\n ExitAnimationsValues,\n AnimationConfigFunction,\n IEntryAnimationBuilder,\n IExitAnimationBuilder,\n} from '../animationBuilder/commonTypes';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\n\nexport class FlipInXUp\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): FlipInXUp {\n return new FlipInXUp();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: {\n transform: [\n { perspective: 500 },\n { rotateX: '90deg' },\n { translateY: -targetValues.targetHeight },\n ],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: 500 },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipInYLeft\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): FlipInYLeft {\n return new FlipInYLeft();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: {\n transform: [\n { perspective: 500 },\n { rotateY: '-90deg' },\n { translateX: -targetValues.targetWidth },\n ],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipInXDown\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): FlipInXDown {\n return new FlipInXDown();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: {\n transform: [\n { perspective: 500 },\n { rotateX: '-90deg' },\n { translateY: targetValues.targetHeight },\n ],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipInYRight\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): FlipInYRight {\n return new FlipInYRight();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: {\n transform: [\n { perspective: 500 },\n { rotateY: '90deg' },\n { translateX: targetValues.targetWidth },\n ],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipInEasyX\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FlipInEasyX {\n return new FlipInEasyX();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n initialValues: {\n transform: [{ perspective: 500 }, { rotateX: '90deg' }],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipInEasyY\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FlipInEasyY {\n return new FlipInEasyY();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n initialValues: {\n transform: [{ perspective: 500 }, { rotateY: '90deg' }],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipOutXUp\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): FlipOutXUp {\n return new FlipOutXUp();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: {\n transform: [\n { perspective: 500 },\n { rotateX: '0deg' },\n { translateY: 0 },\n ],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('90deg', config)) },\n {\n translateY: delayFunction(\n delay,\n animation(-targetValues.currentHeight, config)\n ),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipOutYLeft\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): FlipOutYLeft {\n return new FlipOutYLeft();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: {\n transform: [\n { perspective: 500 },\n { rotateY: '0deg' },\n { translateX: 0 },\n ],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(\n delay,\n animation(-targetValues.currentWidth, config)\n ),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipOutXDown\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): FlipOutXDown {\n return new FlipOutXDown();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: {\n transform: [\n { perspective: 500 },\n { rotateX: '0deg' },\n { translateY: 0 },\n ],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('-90deg', config)) },\n {\n translateY: delayFunction(\n delay,\n animation(targetValues.currentHeight, config)\n ),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipOutYRight\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): FlipOutYRight {\n return new FlipOutYRight();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: {\n transform: [\n { perspective: 500 },\n { rotateY: '0deg' },\n { translateX: 0 },\n ],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(\n delay,\n animation(targetValues.currentWidth, config)\n ),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipOutEasyX\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FlipOutEasyX {\n return new FlipOutEasyX();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n initialValues: {\n transform: [{ perspective: 500 }, { rotateX: '0deg' }],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('90deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FlipOutEasyY\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FlipOutEasyY {\n return new FlipOutEasyY();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n initialValues: {\n transform: [{ perspective: 500 }, { rotateY: '0deg' }],\n ...initialValues,\n },\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('90deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n}\n","import {\n IEntryExitAnimationBuilder,\n EntryExitAnimationFunction,\n} from '../animationBuilder/commonTypes';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\n\nexport class StretchInX\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): StretchInX {\n return new StretchInX();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleX: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: {\n transform: [{ scaleX: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class StretchInY\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): StretchInY {\n return new StretchInY();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleY: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: {\n transform: [{ scaleY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class StretchOutX\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): StretchOutX {\n return new StretchOutX();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleX: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: {\n transform: [{ scaleX: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class StretchOutY\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): StretchOutY {\n return new StretchOutY();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleY: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: {\n transform: [{ scaleY: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n","import {\n IEntryExitAnimationBuilder,\n EntryExitAnimationFunction,\n} from '../animationBuilder/commonTypes';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\n\nexport class FadeIn\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeIn {\n return new FadeIn();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return (_) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n },\n initialValues: {\n opacity: 0,\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeInRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeInRight {\n return new FadeInRight();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [{ translateX: 25 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeInLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeInLeft {\n return new FadeInLeft();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [{ translateX: -25 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeInUp\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeInUp {\n return new FadeInUp();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [{ translateY: -25 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeInDown\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeInDown {\n return new FadeInDown();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [{ translateY: 25 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeOut\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeOut {\n return new FadeOut();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return (_) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n },\n initialValues: {\n opacity: 1,\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeOutRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeOutRight {\n return new FadeOutRight();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateX: delayFunction(delay, animation(25, config)) },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ translateX: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeOutLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeOutLeft {\n return new FadeOutLeft();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateX: delayFunction(delay, animation(-25, config)) },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ translateX: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeOutUp\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeOutUp {\n return new FadeOutUp();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateY: delayFunction(delay, animation(-25, config)) },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ translateY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class FadeOutDown\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): FadeOutDown {\n return new FadeOutDown();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateY: delayFunction(delay, animation(25, config)) },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ translateY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n","import {\n EntryAnimationsValues,\n ExitAnimationsValues,\n AnimationConfigFunction,\n IEntryAnimationBuilder,\n IExitAnimationBuilder,\n} from '../animationBuilder/commonTypes';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\n\nexport class SlideInRight\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): SlideInRight {\n return new SlideInRight();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(\n delay,\n animation(values.targetOriginX, config)\n ),\n },\n initialValues: {\n originX: values.targetOriginX + values.windowWidth,\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class SlideInLeft\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): SlideInLeft {\n return new SlideInLeft();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(\n delay,\n animation(values.targetOriginX, config)\n ),\n },\n initialValues: {\n originX: values.targetOriginX - values.windowWidth,\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class SlideOutRight\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): SlideOutRight {\n return new SlideOutRight();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(\n delay,\n animation(\n Math.max(\n values.currentOriginX + values.windowWidth,\n values.windowWidth\n ),\n config\n )\n ),\n },\n initialValues: {\n originX: values.currentOriginX,\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class SlideOutLeft\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): SlideOutLeft {\n return new SlideOutLeft();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(\n delay,\n animation(\n Math.min(\n values.currentOriginX - values.windowWidth,\n -values.windowWidth\n ),\n config\n )\n ),\n },\n initialValues: {\n originX: values.currentOriginX,\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class SlideInUp\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): SlideInUp {\n return new SlideInUp();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(\n delay,\n animation(values.targetOriginY, config)\n ),\n },\n initialValues: {\n originY: -values.windowHeight,\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class SlideInDown\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): SlideInDown {\n return new SlideInDown();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(\n delay,\n animation(values.targetOriginY, config)\n ),\n },\n initialValues: {\n originY: values.targetOriginY + values.windowHeight,\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class SlideOutUp\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): SlideOutUp {\n return new SlideOutUp();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(\n delay,\n animation(\n Math.min(\n values.currentOriginY - values.windowHeight,\n -values.windowHeight\n ),\n config\n )\n ),\n },\n initialValues: { originY: values.currentOriginY, ...initialValues },\n callback: callback,\n };\n };\n };\n}\n\nexport class SlideOutDown\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): SlideOutDown {\n return new SlideOutDown();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(\n delay,\n animation(\n Math.max(\n values.currentOriginY + values.windowHeight,\n values.windowHeight\n ),\n config\n )\n ),\n },\n initialValues: { originY: values.currentOriginY, ...initialValues },\n callback: callback,\n };\n };\n };\n}\n","import {\n IEntryExitAnimationBuilder,\n EntryExitAnimationFunction,\n EntryAnimationsValues,\n ExitAnimationsValues,\n AnimationConfigFunction,\n IEntryAnimationBuilder,\n IExitAnimationBuilder,\n} from '../animationBuilder/commonTypes';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\n\nexport class ZoomIn\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomIn {\n return new ZoomIn();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scale: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: {\n transform: [{ scale: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomInRotate\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomInRotate {\n return new ZoomInRotate();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const rotate = this.rotateV ? this.rotateV : '0.3';\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { scale: delayFunction(delay, animation(1, config)) },\n { rotate: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n transform: [{ scale: 0 }, { rotate: rotate }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomInLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomInLeft {\n return new ZoomInLeft();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateX: -values.windowWidth }, { scale: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomInRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomInRight {\n return new ZoomInRight();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateX: values.windowWidth }, { scale: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomInUp\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomInUp {\n return new ZoomInUp();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateY: -values.windowHeight }, { scale: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomInDown\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomInDown {\n return new ZoomInDown();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateY: values.windowHeight }, { scale: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomInEasyUp\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): ZoomInEasyUp {\n return new ZoomInEasyUp();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateY: -values.targetHeight }, { scale: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomInEasyDown\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): ZoomInEasyDown {\n return new ZoomInEasyDown();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateY: values.targetHeight }, { scale: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomOut\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomOut {\n return new ZoomOut();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scale: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: {\n transform: [{ scale: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomOutRotate\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomOutRotate {\n return new ZoomOutRotate();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const rotate = this.rotateV ? this.rotateV : '0.3';\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { scale: delayFunction(delay, animation(0, config)) },\n { rotate: delayFunction(delay, animation(rotate, config)) },\n ],\n },\n initialValues: {\n transform: [{ scale: 1 }, { rotate: '0' }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomOutLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomOutLeft {\n return new ZoomOutLeft();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(\n delay,\n animation(-values.windowWidth, config)\n ),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateX: 0 }, { scale: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomOutRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomOutRight {\n return new ZoomOutRight();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(\n delay,\n animation(values.windowWidth, config)\n ),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateX: 0 }, { scale: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomOutUp\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomOutUp {\n return new ZoomOutUp();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(\n delay,\n animation(-values.windowHeight, config)\n ),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateY: 0 }, { scale: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomOutDown\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): ZoomOutDown {\n return new ZoomOutDown();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(\n delay,\n animation(values.windowHeight, config)\n ),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateY: 0 }, { scale: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomOutEasyUp\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): ZoomOutEasyUp {\n return new ZoomOutEasyUp();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(\n delay,\n animation(-values.currentHeight, config)\n ),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateY: 0 }, { scale: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class ZoomOutEasyDown\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): ZoomOutEasyDown {\n return new ZoomOutEasyDown();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(\n delay,\n animation(values.currentHeight, config)\n ),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n transform: [{ translateY: 0 }, { scale: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n","import {\n EntryExitAnimationFunction,\n IEntryExitAnimationBuilder,\n} from '../animationBuilder/commonTypes';\nimport { withSequence, withTiming } from '../../animation';\nimport { ComplexAnimationBuilder } from '../animationBuilder/ComplexAnimationBuilder';\n\nexport class BounceIn\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceIn {\n return new BounceIn();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n scale: delayFunction(\n delay,\n withSequence(\n withTiming(1.2, { duration: duration * 0.55 }),\n withTiming(0.9, { duration: duration * 0.15 }),\n withTiming(1.1, { duration: duration * 0.15 }),\n withTiming(1, { duration: duration * 0.15 })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ scale: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceInDown\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceInDown {\n return new BounceInDown();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(\n delay,\n withSequence(\n withTiming(-20, { duration: duration * 0.55 }),\n withTiming(10, { duration: duration * 0.15 }),\n withTiming(-10, { duration: duration * 0.15 }),\n withTiming(0, { duration: duration * 0.15 })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [\n {\n translateY: values.windowHeight,\n },\n ],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceInUp\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceInUp {\n return new BounceInUp();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(\n delay,\n withSequence(\n withTiming(20, { duration: duration * 0.55 }),\n withTiming(-10, { duration: duration * 0.15 }),\n withTiming(10, { duration: duration * 0.15 }),\n withTiming(0, { duration: duration * 0.15 })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ translateY: -values.windowHeight }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceInLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceInLeft {\n return new BounceInLeft();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(\n delay,\n withSequence(\n withTiming(20, { duration: duration * 0.55 }),\n withTiming(-10, { duration: duration * 0.15 }),\n withTiming(10, { duration: duration * 0.15 }),\n withTiming(0, { duration: duration * 0.15 })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ translateX: -values.windowWidth }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceInRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceInRight {\n return new BounceInRight();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(\n delay,\n withSequence(\n withTiming(-20, { duration: duration * 0.55 }),\n withTiming(10, { duration: duration * 0.15 }),\n withTiming(-10, { duration: duration * 0.15 }),\n withTiming(0, { duration: duration * 0.15 })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ translateX: values.windowWidth }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceOut\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceOut {\n return new BounceOut();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n scale: delayFunction(\n delay,\n withSequence(\n withTiming(1.1, { duration: duration * 0.15 }),\n withTiming(0.9, { duration: duration * 0.15 }),\n withTiming(1.2, { duration: duration * 0.15 }),\n withTiming(0, { duration: duration * 0.55 })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ scale: 1 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceOutDown\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceOutDown {\n return new BounceOutDown();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(\n delay,\n withSequence(\n withTiming(-10, { duration: duration * 0.15 }),\n withTiming(10, { duration: duration * 0.15 }),\n withTiming(-20, { duration: duration * 0.15 }),\n withTiming(values.windowHeight, {\n duration: duration * 0.55,\n })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ translateY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceOutUp\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceOutUp {\n return new BounceOutUp();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(\n delay,\n withSequence(\n withTiming(10, { duration: duration * 0.15 }),\n withTiming(-10, { duration: duration * 0.15 }),\n withTiming(20, { duration: duration * 0.15 }),\n withTiming(-values.windowHeight, {\n duration: duration * 0.55,\n })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ translateY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceOutLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceOutRight {\n return new BounceOutLeft();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(\n delay,\n withSequence(\n withTiming(10, { duration: duration * 0.15 }),\n withTiming(-10, { duration: duration * 0.15 }),\n withTiming(20, { duration: duration * 0.15 }),\n withTiming(-values.windowWidth, {\n duration: duration * 0.55,\n })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ translateX: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class BounceOutRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): BounceOutRight {\n return new BounceOutRight();\n }\n\n static getDuration(): number {\n return 600;\n }\n\n getDuration(): number {\n return this.durationV ?? 600;\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(\n delay,\n withSequence(\n withTiming(-10, { duration: duration * 0.15 }),\n withTiming(10, { duration: duration * 0.15 }),\n withTiming(-20, { duration: duration * 0.15 }),\n withTiming(values.windowWidth, {\n duration: duration * 0.55,\n })\n )\n ),\n },\n ],\n },\n initialValues: {\n transform: [{ translateX: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n","import { withSequence, withTiming } from '../../animation';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\nimport {\n EntryExitAnimationFunction,\n IEntryExitAnimationBuilder,\n} from '../animationBuilder/commonTypes';\n\nexport class LightSpeedInRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): LightSpeedInRight {\n return new LightSpeedInRight();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, withTiming(1, { duration: duration })),\n transform: [\n {\n translateX: delayFunction(\n delay,\n animation(0, { ...config, duration: duration * 0.7 })\n ),\n },\n {\n skewX: delayFunction(\n delay,\n withSequence(\n withTiming('10deg', { duration: duration * 0.7 }),\n withTiming('-5deg', { duration: duration * 0.15 }),\n withTiming('0deg', { duration: duration * 0.15 })\n )\n ),\n },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [{ translateX: values.windowWidth }, { skewX: '-45deg' }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class LightSpeedInLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): LightSpeedInLeft {\n return new LightSpeedInLeft();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, withTiming(1, { duration: duration })),\n transform: [\n {\n translateX: delayFunction(\n delay,\n animation(0, { ...config, duration: duration * 0.7 })\n ),\n },\n {\n skewX: delayFunction(\n delay,\n withSequence(\n withTiming('-10deg', { duration: duration * 0.7 }),\n withTiming('5deg', { duration: duration * 0.15 }),\n withTiming('0deg', { duration: duration * 0.15 })\n )\n ),\n },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [{ translateX: -values.windowWidth }, { skewX: '45deg' }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class LightSpeedOutRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): LightSpeedOutRight {\n return new LightSpeedOutRight();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n translateX: delayFunction(\n delay,\n animation(values.windowWidth, config)\n ),\n },\n {\n skewX: delayFunction(delay, animation('-45deg', config)),\n },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ translateX: 0 }, { skewX: '0deg' }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class LightSpeedOutLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): LightSpeedOutLeft {\n return new LightSpeedOutLeft();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n translateX: delayFunction(\n delay,\n animation(-values.windowWidth, config)\n ),\n },\n {\n skewX: delayFunction(delay, animation('45deg', config)),\n },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ translateX: 0 }, { skewX: '0deg' }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nimport {\n EntryExitAnimationFunction,\n IEntryExitAnimationBuilder,\n} from '../animationBuilder/commonTypes';\n\nexport class PinwheelIn\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): PinwheelIn {\n return new PinwheelIn();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (_values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n {\n scale: delayFunction(delay, animation(1, config)),\n },\n {\n rotate: delayFunction(delay, animation('0', config)),\n },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [\n {\n scale: 0,\n },\n {\n rotate: '5',\n },\n ],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class PinwheelOut\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): PinwheelOut {\n return new PinwheelOut();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (_values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n scale: delayFunction(delay, animation(0, config)),\n },\n {\n rotate: delayFunction(delay, animation('5', config)),\n },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [\n {\n scale: 1,\n },\n {\n rotate: '0',\n },\n ],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nimport {\n EntryAnimationsValues,\n ExitAnimationsValues,\n AnimationConfigFunction,\n IEntryAnimationBuilder,\n IExitAnimationBuilder,\n} from '../animationBuilder/commonTypes';\n\nexport class RotateInDownLeft\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): RotateInDownLeft {\n return new RotateInDownLeft();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [\n { rotate: '-90deg' },\n { translateX: values.targetWidth / 2 - values.targetHeight / 2 },\n { translateY: -(values.targetWidth / 2 - values.targetHeight / 2) },\n ],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RotateInDownRight\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): RotateInDownRight {\n return new RotateInDownRight();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [\n { rotate: '90deg' },\n { translateX: -(values.targetWidth / 2 - values.targetHeight / 2) },\n { translateY: -(values.targetWidth / 2 - values.targetHeight / 2) },\n ],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RotateInUpLeft\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): RotateInUpLeft {\n return new RotateInUpLeft();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [\n { rotate: '90deg' },\n { translateX: values.targetWidth / 2 - values.targetHeight / 2 },\n { translateY: values.targetWidth / 2 - values.targetHeight / 2 },\n ],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RotateInUpRight\n extends ComplexAnimationBuilder\n implements IEntryAnimationBuilder\n{\n static createInstance(): RotateInUpRight {\n return new RotateInUpRight();\n }\n\n build = (): AnimationConfigFunction<EntryAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: {\n opacity: 0,\n transform: [\n { rotate: '-90deg' },\n { translateX: -(values.targetWidth / 2 - values.targetHeight / 2) },\n { translateY: values.targetWidth / 2 - values.targetHeight / 2 },\n ],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RotateOutDownLeft\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): RotateOutDownLeft {\n return new RotateOutDownLeft();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(\n delay,\n animation(\n values.currentWidth / 2 - values.currentHeight / 2,\n config\n )\n ),\n },\n {\n translateY: delayFunction(\n delay,\n animation(\n values.currentWidth / 2 - values.currentHeight / 2,\n config\n )\n ),\n },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RotateOutDownRight\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): RotateOutDownRight {\n return new RotateOutDownRight();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(\n delay,\n animation(\n -(values.currentWidth / 2 - values.currentHeight / 2),\n config\n )\n ),\n },\n {\n translateY: delayFunction(\n delay,\n animation(\n values.currentWidth / 2 - values.currentHeight / 2,\n config\n )\n ),\n },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RotateOutUpLeft\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): RotateOutUpLeft {\n return new RotateOutUpLeft();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(\n delay,\n animation(\n values.currentWidth / 2 - values.currentHeight / 2,\n config\n )\n ),\n },\n {\n translateY: delayFunction(\n delay,\n animation(\n -(values.currentWidth / 2 - values.currentHeight / 2),\n config\n )\n ),\n },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RotateOutUpRight\n extends ComplexAnimationBuilder\n implements IExitAnimationBuilder\n{\n static createInstance(): RotateOutUpRight {\n return new RotateOutUpRight();\n }\n\n build = (): AnimationConfigFunction<ExitAnimationsValues> => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(\n delay,\n animation(\n -(values.currentWidth / 2 - values.currentHeight / 2),\n config\n )\n ),\n },\n {\n translateY: delayFunction(\n delay,\n animation(\n -(values.currentWidth / 2 - values.currentHeight / 2),\n config\n )\n ),\n },\n ],\n },\n initialValues: {\n opacity: 1,\n transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nimport {\n EntryExitAnimationFunction,\n IEntryExitAnimationBuilder,\n} from '../animationBuilder/commonTypes';\n\nexport class RollInLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): RollInLeft {\n return new RollInLeft();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0), config) },\n { rotate: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n initialValues: {\n transform: [\n { translateX: -values.windowWidth },\n { rotate: '-180deg' },\n ],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RollInRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): RollInRight {\n return new RollInRight();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { rotate: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n initialValues: {\n transform: [{ translateX: values.windowWidth }, { rotate: '180deg' }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RollOutLeft\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): RollOutLeft {\n return new RollOutLeft();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(\n delay,\n animation(-values.windowWidth, config)\n ),\n },\n { rotate: delayFunction(delay, animation('-180deg', config)) },\n ],\n },\n initialValues: {\n transform: [{ translateX: 0 }, { rotate: '0deg' }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport class RollOutRight\n extends ComplexAnimationBuilder\n implements IEntryExitAnimationBuilder\n{\n static createInstance(): RollOutRight {\n return new RollOutRight();\n }\n\n build = (): EntryExitAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(\n delay,\n animation(values.windowWidth, config)\n ),\n },\n { rotate: delayFunction(delay, animation('180deg', config)) },\n ],\n },\n initialValues: {\n transform: [{ translateX: 0 }, { rotate: '0deg' }],\n ...initialValues,\n },\n callback: callback,\n };\n };\n };\n}\n","export * from './LinearTransition';\nexport * from './FadingTransition';\nexport * from './SequencedTransition';\nexport * from './JumpingTransition';\nexport * from './CurvedTransition';\nexport * from './EntryExitTransition';\n","import { ComplexAnimationBuilder } from '../animationBuilder/ComplexAnimationBuilder';\nimport {\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from '../animationBuilder/commonTypes';\n\nexport class LinearTransition\n extends ComplexAnimationBuilder\n implements ILayoutAnimationBuilder\n{\n static createInstance(): LinearTransition {\n return new LinearTransition();\n }\n\n build = (): LayoutAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const delay = this.getDelay();\n\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(\n delay,\n animation(values.targetOriginX, config)\n ),\n originY: delayFunction(\n delay,\n animation(values.targetOriginY, config)\n ),\n width: delayFunction(delay, animation(values.targetWidth, config)),\n height: delayFunction(delay, animation(values.targetHeight, config)),\n },\n callback: callback,\n };\n };\n };\n}\n\nexport const Layout = LinearTransition;\n","import { withSequence, withTiming } from '../../animation';\nimport {\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from '../animationBuilder/commonTypes';\nimport { BaseAnimationBuilder } from '../animationBuilder';\n\nexport class FadingTransition\n extends BaseAnimationBuilder\n implements ILayoutAnimationBuilder\n{\n static createInstance(): FadingTransition {\n return new FadingTransition();\n }\n\n build = (): LayoutAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = this.durationV ?? 500;\n\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n opacity: 1,\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n opacity: delayFunction(\n delay,\n withSequence(\n withTiming(0, { duration: duration }),\n withTiming(1, { duration: duration })\n )\n ),\n originX: delayFunction(\n delay + duration,\n withTiming(values.targetOriginX, { duration: 50 })\n ),\n originY: delayFunction(\n delay + duration,\n withTiming(values.targetOriginY, { duration: 50 })\n ),\n width: delayFunction(\n delay + duration,\n withTiming(values.targetWidth, { duration: 50 })\n ),\n height: delayFunction(\n delay + duration,\n withTiming(values.targetHeight, { duration: 50 })\n ),\n },\n callback: callback,\n };\n };\n };\n}\n","import { withSequence, withTiming } from '../../animation';\nimport {\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from '../animationBuilder/commonTypes';\nimport { BaseAnimationBuilder } from '../animationBuilder';\n\nexport class SequencedTransition\n extends BaseAnimationBuilder\n implements ILayoutAnimationBuilder\n{\n reversed = false;\n\n static createInstance(): SequencedTransition {\n return new SequencedTransition();\n }\n\n static reverse(): SequencedTransition {\n const instance = SequencedTransition.createInstance();\n return instance.reverse();\n }\n\n reverse(): SequencedTransition {\n this.reversed = !this.reversed;\n return this;\n }\n\n build = (): LayoutAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const sequenceDuration = (this.durationV ?? 500) / 2;\n const config = { duration: sequenceDuration };\n const reverse = this.reversed;\n\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(\n delay,\n withSequence(\n withTiming(\n reverse ? values.currentOriginX : values.targetOriginX,\n config\n ),\n withTiming(values.targetOriginX, config)\n )\n ),\n originY: delayFunction(\n delay,\n withSequence(\n withTiming(\n reverse ? values.targetOriginY : values.currentOriginY,\n config\n ),\n withTiming(values.targetOriginY, config)\n )\n ),\n width: delayFunction(\n delay,\n withSequence(\n withTiming(\n reverse ? values.currentWidth : values.targetWidth,\n config\n ),\n withTiming(values.targetWidth, config)\n )\n ),\n height: delayFunction(\n delay,\n withSequence(\n withTiming(\n reverse ? values.targetHeight : values.currentHeight,\n config\n ),\n withTiming(values.targetHeight, config)\n )\n ),\n },\n callback: callback,\n };\n };\n };\n}\n","import {\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from '../animationBuilder/commonTypes';\nimport { withSequence, withTiming } from '../../animation';\nimport { Easing } from '../../Easing';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nexport class JumpingTransition\n extends BaseAnimationBuilder\n implements ILayoutAnimationBuilder\n{\n static createInstance(): JumpingTransition {\n return new JumpingTransition();\n }\n\n build = (): LayoutAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = (this.durationV ?? 300) / 2;\n const config = { duration: duration * 2 };\n\n return (values) => {\n 'worklet';\n const d = Math.max(\n Math.abs(values.targetOriginX - values.currentOriginX),\n Math.abs(values.targetOriginY - values.currentOriginY)\n );\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(\n delay,\n withTiming(values.targetOriginX, config)\n ),\n originY: delayFunction(\n delay,\n withSequence(\n withTiming(\n Math.min(values.targetOriginY, values.currentOriginY) - d,\n {\n duration,\n easing: Easing.out(Easing.exp),\n }\n ),\n withTiming(values.targetOriginY, {\n ...config,\n duration,\n easing: Easing.bounce,\n })\n )\n ),\n width: delayFunction(delay, withTiming(values.targetWidth, config)),\n height: delayFunction(delay, withTiming(values.targetHeight, config)),\n },\n callback: callback,\n };\n };\n };\n}\n","import {\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from '../animationBuilder/commonTypes';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nimport { EasingFn, Easing } from '../../Easing';\nimport { withTiming } from '../../animation';\n\nexport class CurvedTransition\n extends BaseAnimationBuilder\n implements ILayoutAnimationBuilder\n{\n easingXV: EasingFn = Easing.in(Easing.ease);\n easingYV: EasingFn = Easing.out(Easing.ease);\n easingWidthV: EasingFn = Easing.in(Easing.exp);\n easingHeightV: EasingFn = Easing.out(Easing.exp);\n static createInstance(): CurvedTransition {\n return new CurvedTransition();\n }\n\n static easingX(easing: EasingFn): CurvedTransition {\n const instance = this.createInstance();\n return instance.easingX(easing);\n }\n\n easingX(easing: EasingFn): CurvedTransition {\n this.easingXV = easing;\n return this;\n }\n\n static easingY(easing: EasingFn): CurvedTransition {\n const instance = this.createInstance();\n return instance.easingY(easing);\n }\n\n easingY(easing: EasingFn): CurvedTransition {\n this.easingYV = easing;\n return this;\n }\n\n static easingWidth(easing: EasingFn): CurvedTransition {\n const instance = this.createInstance();\n return instance.easingWidth(easing);\n }\n\n easingWidth(easing: EasingFn): CurvedTransition {\n this.easingWidthV = easing;\n return this;\n }\n\n static easingHeight(easing: EasingFn): CurvedTransition {\n const instance = this.createInstance();\n return instance.easingHeight(easing);\n }\n\n easingHeight(easing: EasingFn): CurvedTransition {\n this.easingHeightV = easing;\n return this;\n }\n\n build = (): LayoutAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = this.durationV ?? 300;\n const easing = {\n easingX: this.easingXV,\n easingY: this.easingYV,\n easingWidth: this.easingWidthV,\n easingHeight: this.easingHeightV,\n };\n\n return (values) => {\n 'worklet';\n\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(\n delay,\n withTiming(values.targetOriginX, {\n duration,\n easing: easing.easingX,\n })\n ),\n originY: delayFunction(\n delay,\n withTiming(values.targetOriginY, {\n duration,\n easing: easing.easingY,\n })\n ),\n width: delayFunction(\n delay,\n withTiming(values.targetWidth, {\n duration,\n easing: easing.easingWidth,\n })\n ),\n height: delayFunction(\n delay,\n withTiming(values.targetHeight, {\n duration,\n easing: easing.easingHeight,\n })\n ),\n },\n callback: callback,\n };\n };\n };\n}\n","import {\n ILayoutAnimationBuilder,\n LayoutAnimationsValues,\n LayoutAnimationFunction,\n} from '../animationBuilder/commonTypes';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nimport { withSequence, withTiming } from '../../animation';\nimport { FadeIn, FadeOut } from '../defaultAnimations/Fade';\nimport {\n StyleProps,\n TransformProperty,\n AnimationObject,\n} from '../../commonTypes';\n\nexport class EntryExitTransition\n extends BaseAnimationBuilder\n implements ILayoutAnimationBuilder\n{\n enteringV: BaseAnimationBuilder | typeof BaseAnimationBuilder = FadeIn;\n\n exitingV: BaseAnimationBuilder | typeof BaseAnimationBuilder = FadeOut;\n\n static createInstance(): EntryExitTransition {\n return new EntryExitTransition();\n }\n\n static entering(\n animation: BaseAnimationBuilder | typeof BaseAnimationBuilder\n ): EntryExitTransition {\n const instance = this.createInstance();\n return instance.entering(animation);\n }\n\n entering(\n animation: BaseAnimationBuilder | typeof BaseAnimationBuilder\n ): EntryExitTransition {\n this.enteringV = animation;\n return this;\n }\n\n static exiting(\n animation: BaseAnimationBuilder | typeof BaseAnimationBuilder\n ): EntryExitTransition {\n const instance = this.createInstance();\n return instance.exiting(animation);\n }\n\n exiting(\n animation: BaseAnimationBuilder | typeof BaseAnimationBuilder\n ): EntryExitTransition {\n this.exitingV = animation;\n return this;\n }\n\n build = (): LayoutAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const enteringAnimation = this.enteringV.build();\n const exitingAnimation = this.exitingV.build();\n const exitingDuration = this.exitingV.getDuration();\n\n return (values) => {\n 'worklet';\n const enteringValues = enteringAnimation(values);\n const exitingValues = exitingAnimation(values);\n const animations: StyleProps = {\n transform: [],\n };\n\n for (const prop of Object.keys(exitingValues.animations)) {\n if (prop === 'transform') {\n exitingValues.animations[prop]?.forEach((value, index) => {\n for (const transformProp of Object.keys(value)) {\n animations.transform?.push({\n [transformProp]: delayFunction(\n delay,\n withSequence(\n value[transformProp as keyof TransformProperty],\n withTiming(\n exitingValues.initialValues.transform\n ? exitingValues.initialValues.transform[index][\n transformProp as keyof TransformProperty\n ]\n : 0,\n { duration: 0 }\n )\n )\n ),\n } as TransformProperty);\n }\n });\n } else {\n const sequence =\n enteringValues.animations[prop] !== undefined\n ? [\n exitingValues.animations[prop],\n withTiming(enteringValues.initialValues[prop], {\n duration: 0,\n }),\n enteringValues.animations[prop],\n ]\n : [\n exitingValues.animations[prop],\n withTiming(\n Object.keys(values).includes(prop)\n ? values[prop as keyof LayoutAnimationsValues]\n : exitingValues.initialValues[prop],\n { duration: 0 }\n ),\n ];\n\n animations[prop] = delayFunction(delay, withSequence(...sequence));\n }\n }\n for (const prop of Object.keys(enteringValues.animations)) {\n if (prop === 'transform') {\n enteringValues.animations[prop]?.forEach((value, index) => {\n for (const transformProp of Object.keys(value)) {\n animations.transform?.push({\n [transformProp]: delayFunction(\n delay + exitingDuration,\n withSequence(\n withTiming(\n enteringValues.initialValues.transform\n ? enteringValues.initialValues.transform[index][\n transformProp as keyof TransformProperty\n ]\n : 0,\n { duration: exitingDuration }\n ),\n value[transformProp as keyof TransformProperty]\n )\n ),\n } as TransformProperty);\n }\n });\n } else if (animations[prop] !== undefined) {\n // it was already added in the previous loop\n continue;\n } else {\n animations[prop] = delayFunction(\n delay,\n withSequence(\n withTiming(enteringValues.initialValues[prop], { duration: 0 }),\n enteringValues.animations[prop]\n )\n );\n }\n }\n\n const mergedTransform = (\n exitingValues.initialValues.transform ?? []\n ).concat(\n (enteringValues.animations.transform ?? []).map((value) => {\n const objectKeys = Object.keys(value);\n if (objectKeys?.length < 1) {\n console.error(\n `[Reanimated]: \\${value} is not a valid Transform object`\n );\n return value;\n }\n const transformProp = objectKeys[0];\n const current = (\n value[transformProp as keyof TransformProperty] as AnimationObject\n ).current;\n if (typeof current === 'string') {\n if (current.includes('deg'))\n return {\n [transformProp]: '0deg',\n } as unknown as TransformProperty;\n else\n return {\n [transformProp]: '0',\n } as unknown as TransformProperty;\n } else if (transformProp.includes('translate')) {\n return { [transformProp]: 0 } as unknown as TransformProperty;\n } else {\n return { [transformProp]: 1 } as unknown as TransformProperty;\n }\n return value;\n })\n );\n\n return {\n initialValues: {\n ...exitingValues.initialValues,\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n transform: mergedTransform,\n },\n animations: {\n originX: delayFunction(\n delay + exitingDuration,\n withTiming(values.targetOriginX, { duration: exitingDuration })\n ),\n originY: delayFunction(\n delay + exitingDuration,\n withTiming(values.targetOriginY, { duration: exitingDuration })\n ),\n width: delayFunction(\n delay + exitingDuration,\n withTiming(values.targetWidth, { duration: exitingDuration })\n ),\n height: delayFunction(\n delay + exitingDuration,\n withTiming(values.targetHeight, { duration: exitingDuration })\n ),\n ...animations,\n },\n callback: callback,\n };\n };\n };\n}\n\nexport function combineTransition(\n exiting: BaseAnimationBuilder | typeof BaseAnimationBuilder,\n entering: BaseAnimationBuilder | typeof BaseAnimationBuilder\n): EntryExitTransition {\n return EntryExitTransition.entering(entering).exiting(exiting);\n}\n","import { Component } from 'react';\nimport { measure } from './NativeMethods';\nimport { RefObjectFunction } from './hook/commonTypes';\n\nexport interface ComponentCoords {\n x: number;\n y: number;\n}\n\n/**\n * Given an absolute position and a component ref, returns the relative\n * position in the component's local coordinate space.\n */\nexport function getRelativeCoords(\n parentRef: RefObjectFunction<Component>,\n absoluteX: number,\n absoluteY: number\n): ComponentCoords | null {\n 'worklet';\n const parentCoords = measure(parentRef);\n if (parentCoords === null) {\n return null;\n }\n return {\n x: absoluteX - parentCoords.x,\n y: absoluteY - parentCoords.y,\n };\n}\n","import { NativeModules } from 'react-native';\nimport { ActionType } from './ActionType';\nimport { tagMessage } from './utils';\nconst { RNGestureHandlerModule } = NativeModules;\n\nif (RNGestureHandlerModule == null) {\n console.error(\n tagMessage(\n `react-native-gesture-handler module was not found. Make sure you're running your app on the native platform and your code is linked properly (cd ios && pod install && cd ..).\n\n For installation instructions, please refer to https://docs.swmansion.com/react-native-gesture-handler/docs/#installation`\n .split('\\n')\n .map((line) => line.trim())\n .join('\\n')\n )\n );\n}\n\nif (\n RNGestureHandlerModule &&\n RNGestureHandlerModule.flushOperations === undefined\n) {\n RNGestureHandlerModule.flushOperations = () => {\n // NO-OP if not defined\n };\n}\n\nexport type RNGestureHandlerModuleProps = {\n handleSetJSResponder: (tag: number, blockNativeResponder: boolean) => void;\n handleClearJSResponder: () => void;\n createGestureHandler: (\n handlerName: string,\n handlerTag: number,\n config: Readonly<Record<string, unknown>>\n ) => void;\n attachGestureHandler: (\n handlerTag: number,\n newView: number,\n actionType: ActionType\n ) => void;\n updateGestureHandler: (\n handlerTag: number,\n newConfig: Readonly<Record<string, unknown>>\n ) => void;\n dropGestureHandler: (handlerTag: number) => void;\n install: () => void;\n flushOperations: () => void;\n};\n\nexport default RNGestureHandlerModule as RNGestureHandlerModuleProps;\n","export const Directions = {\n RIGHT: 1,\n LEFT: 2,\n UP: 4,\n DOWN: 8,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type Directions = typeof Directions[keyof typeof Directions];\n","import * as React from 'react';\nimport { StyleSheet, StyleProp, ViewStyle } from 'react-native';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport GestureHandlerRootView from './GestureHandlerRootView';\n\nexport default function gestureHandlerRootHOC<\n P extends JSX.IntrinsicAttributes\n>(\n Component: React.ComponentType<P>,\n containerStyles?: StyleProp<ViewStyle>\n): React.ComponentType<P> {\n function Wrapper(props: P) {\n return (\n <GestureHandlerRootView style={[styles.container, containerStyles]}>\n <Component {...props} />\n </GestureHandlerRootView>\n );\n }\n\n Wrapper.displayName = `gestureHandlerRootHOC(${\n Component.displayName || Component.name\n })`;\n\n // @ts-ignore - hoistNonReactStatics uses old version of @types/react\n hoistNonReactStatics(Wrapper, Component);\n\n return Wrapper;\n}\n\nconst styles = StyleSheet.create({\n container: { flex: 1 },\n});\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, 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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const tapGestureHandlerProps = [\n 'maxDurationMs',\n 'maxDelayMs',\n 'numberOfTaps',\n 'maxDeltaX',\n 'maxDeltaY',\n 'maxDist',\n 'minPointers',\n] as const;\n\nexport type TapGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\nexport interface TapGestureConfig {\n /**\n * Minimum number of pointers (fingers) required to be placed before the\n * handler activates. Should be a positive integer.\n * The default value is 1.\n */\n minPointers?: number;\n\n /**\n * Maximum time, expressed in milliseconds, that defines how fast a finger\n * must be released after a touch. The default value is 500.\n */\n maxDurationMs?: number;\n\n /**\n * Maximum time, expressed in milliseconds, that can pass before the next tap\n * if many taps are required. The default value is 500.\n */\n maxDelayMs?: number;\n\n /**\n * Number of tap gestures required to activate the handler. The default value\n * is 1.\n */\n numberOfTaps?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel along the X axis during a tap gesture. If the finger\n * travels further than the defined distance along the X axis and the handler\n * hasn't yet activated, it will fail to recognize the gesture.\n */\n maxDeltaX?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel along the Y axis during a tap gesture. If the finger\n * travels further than the defined distance along the Y axis and the handler\n * hasn't yet activated, it will fail to recognize the gesture.\n */\n maxDeltaY?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel during a tap gesture. If the finger travels further than\n * the defined distance and the handler hasn't yet\n * activated, it will fail to recognize the gesture.\n */\n maxDist?: number;\n}\n\nexport interface TapGestureHandlerProps\n extends BaseGestureHandlerProps<TapGestureHandlerEventPayload>,\n TapGestureConfig {}\n\nexport const tapHandlerName = 'TapGestureHandler';\n\nexport type TapGestureHandler = typeof TapGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const TapGestureHandler = createHandler<\n TapGestureHandlerProps,\n TapGestureHandlerEventPayload\n>({\n name: tapHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...tapGestureHandlerProps,\n ] as const,\n config: {\n shouldCancelWhenOutside: true,\n },\n});\n","import * as React from 'react';\nimport {\n Platform,\n UIManager,\n DeviceEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n// @ts-ignore - it isn't typed by TS & don't have definitelyTyped types\nimport deepEqual from 'lodash/isEqual';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';\nimport { State } from '../State';\nimport {\n handlerIDToTag,\n getNextHandlerTag,\n registerOldGestureHandler,\n} from './handlersRegistry';\n\nimport {\n BaseGestureHandlerProps,\n filterConfig,\n GestureEvent,\n HandlerStateChangeEvent,\n findNodeHandle,\n scheduleFlushOperations,\n} from './gestureHandlerCommon';\nimport { ValueOf } from '../typeUtils';\nimport { isFabric, isJestEnv, tagMessage } from '../utils';\nimport { ActionType } from '../ActionType';\nimport { PressabilityDebugView } from './PressabilityDebugView';\n\nconst UIManagerAny = UIManager as any;\n\nconst customGHEventsConfigFabricAndroid = {\n topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n topOnGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n};\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n\n // When using React Native Gesture Handler for Animated.event with useNativeDriver: true\n // on Android with Fabric enabled, the native part still sends the native events to JS\n // but prefixed with \"top\". We cannot simply rename the events above so they are prefixed\n // with \"top\" instead of \"on\" because in such case Animated.events would not be registered.\n // That's why we need to register another pair of event names.\n // The incoming events will be queued but never handled.\n // Without this piece of code below, you'll get the following JS error:\n // Unsupported top level event type \"topOnGestureHandlerEvent\" dispatched\n ...(isFabric() &&\n Platform.OS === 'android' &&\n customGHEventsConfigFabricAndroid),\n};\n\n// Add gesture specific events to genericDirectEventTypes object exported from UIManager\n// native module.\n// Once new event types are registered with react it is possible to dispatch these\n// events to all kind of native views.\nUIManagerAny.genericDirectEventTypes = {\n ...UIManagerAny.genericDirectEventTypes,\n ...customGHEventsConfig,\n};\n// In newer versions of RN the `genericDirectEventTypes` is located in the object\n// returned by UIManager.getViewManagerConfig('getConstants') or in older RN UIManager.getConstants(), we need to add it there as well to make\n// it compatible with RN 61+\nconst UIManagerConstants =\n UIManagerAny.getViewManagerConfig?.('getConstants') ??\n UIManagerAny.getConstants?.();\n\nif (UIManagerConstants) {\n UIManagerConstants.genericDirectEventTypes = {\n ...UIManagerConstants.genericDirectEventTypes,\n ...customGHEventsConfig,\n };\n}\n\n// Wrap JS responder calls and notify gesture handler manager\nconst {\n setJSResponder: oldSetJSResponder = () => {\n //no operation\n },\n clearJSResponder: oldClearJSResponder = () => {\n //no operation\n },\n} = UIManagerAny;\nUIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\nUIManagerAny.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet allowTouches = true;\nconst DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';\n// Toggled inspector blocks touch events in order to allow inspecting on Android\n// This needs to be a global variable in order to set initial state for `allowTouches` property in Handler component\nif (DEV_ON_ANDROID) {\n DeviceEventEmitter.addListener('toggleElementInspector', () => {\n allowTouches = !allowTouches;\n });\n}\n\ntype HandlerProps<T extends Record<string, unknown>> = Readonly<\n React.PropsWithChildren<BaseGestureHandlerProps<T>>\n>;\nfunction hasUnresolvedRefs<T extends Record<string, unknown>>(\n props: HandlerProps<T>\n) {\n // TODO(TS) - add type for extract arg\n const extract = (refs: any | any[]) => {\n if (!Array.isArray(refs)) {\n return refs && refs.current === null;\n }\n return refs.some((r) => r && r.current === null);\n };\n return extract(props['simultaneousHandlers']) || extract(props['waitFor']);\n}\n\nconst stateToPropMappings = {\n [State.UNDETERMINED]: undefined,\n [State.BEGAN]: 'onBegan',\n [State.FAILED]: 'onFailed',\n [State.CANCELLED]: 'onCancelled',\n [State.ACTIVE]: 'onActivated',\n [State.END]: 'onEnded',\n} as const;\n\ntype CreateHandlerArgs<HandlerPropsT extends Record<string, unknown>> =\n Readonly<{\n name: string;\n allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;\n config: Readonly<Record<string, unknown>>;\n transformProps?: (props: HandlerPropsT) => HandlerPropsT;\n customNativeProps?: Readonly<string[]>;\n }>;\n\n// TODO(TS) fix event types\ntype InternalEventHandlers = {\n onGestureHandlerEvent?: (event: any) => void;\n onGestureHandlerStateChange?: (event: any) => void;\n};\n\nconst UNRESOLVED_REFS_RETRY_LIMIT = 1;\n\n// TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.\nexport default function createHandler<\n T extends BaseGestureHandlerProps<U>,\n U extends Record<string, unknown>\n>({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = [],\n}: CreateHandlerArgs<T>): React.ComponentType<T & React.RefAttributes<any>> {\n interface HandlerState {\n allowTouches: boolean;\n }\n class Handler extends React.Component<\n T & InternalEventHandlers,\n HandlerState\n > {\n static displayName = name;\n\n private handlerTag: number;\n private config: Record<string, unknown>;\n private propsRef: React.MutableRefObject<unknown>;\n private viewNode: any;\n private viewTag?: number;\n private updateEnqueued: ReturnType<typeof setImmediate> | null = null;\n private inspectorToggleListener?: EmitterSubscription;\n\n constructor(props: T & InternalEventHandlers) {\n super(props);\n this.handlerTag = getNextHandlerTag();\n this.config = {};\n this.propsRef = React.createRef();\n this.state = { allowTouches };\n if (props.id) {\n if (handlerIDToTag[props.id] !== undefined) {\n throw new Error(`Handler with ID \"${props.id}\" already registered`);\n }\n handlerIDToTag[props.id] = this.handlerTag;\n }\n }\n\n componentDidMount() {\n const props: HandlerProps<U> = this.props;\n\n if (DEV_ON_ANDROID) {\n this.inspectorToggleListener = DeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n this.setState((_) => ({ allowTouches }));\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n );\n }\n if (hasUnresolvedRefs(props)) {\n // If there are unresolved refs (e.g. \".current\" has not yet been set)\n // passed as `simultaneousHandlers` or `waitFor`, we enqueue a call to\n // _update method that will try to update native handler props using\n // setImmediate. This makes it so update() function gets called after all\n // react components are mounted and we expect the missing ref object to\n // be resolved by then.\n this.updateEnqueued = setImmediate(() => {\n this.updateEnqueued = null;\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n });\n }\n\n this.createGestureHandler(\n filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n )\n );\n\n this.attachGestureHandler(findNodeHandle(this.viewNode) as number); // TODO(TS) - check if this can be null\n }\n\n componentDidUpdate() {\n const viewTag = findNodeHandle(this.viewNode);\n if (this.viewTag !== viewTag) {\n this.attachGestureHandler(viewTag as number); // TODO(TS) - check interaction between _viewTag & findNodeHandle\n }\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n\n componentWillUnmount() {\n this.inspectorToggleListener?.remove();\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n scheduleFlushOperations();\n if (this.updateEnqueued) {\n clearImmediate(this.updateEnqueued);\n }\n // We can't use this.props.id directly due to TS generic type narrowing bug, see https://github.com/microsoft/TypeScript/issues/13995 for more context\n const handlerID: string | undefined = this.props.id;\n if (handlerID) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete handlerIDToTag[handlerID];\n }\n }\n\n private onGestureHandlerEvent = (event: GestureEvent<U>) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onGestureEvent === 'function') {\n this.props.onGestureEvent?.(event);\n }\n } else {\n this.props.onGestureHandlerEvent?.(event);\n }\n };\n\n // TODO(TS) - make sure this is right type for event\n private onGestureHandlerStateChange = (\n event: HandlerStateChangeEvent<U>\n ) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onHandlerStateChange === 'function') {\n this.props.onHandlerStateChange?.(event);\n }\n\n const state: ValueOf<typeof State> = event.nativeEvent.state;\n const stateEventName = stateToPropMappings[state];\n const eventHandler = stateEventName && this.props[stateEventName];\n if (eventHandler && typeof eventHandler === 'function') {\n eventHandler(event);\n }\n } else {\n this.props.onGestureHandlerStateChange?.(event);\n }\n };\n\n private refHandler = (node: any) => {\n this.viewNode = node;\n\n const child = React.Children.only(this.props.children);\n // TODO(TS) fix ref type\n const { ref }: any = child;\n if (ref !== null) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n };\n\n private createGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.createGestureHandler(\n name,\n this.handlerTag,\n newConfig\n );\n };\n\n private attachGestureHandler = (newViewTag: number) => {\n this.viewTag = newViewTag;\n\n if (Platform.OS === 'web') {\n // typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch\n (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n this.handlerTag,\n newViewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n this.propsRef\n );\n } else {\n registerOldGestureHandler(this.handlerTag, {\n onGestureEvent: this.onGestureHandlerEvent,\n onGestureStateChange: this.onGestureHandlerStateChange,\n });\n\n const actionType = (() => {\n if (\n this.props?.onGestureEvent &&\n 'current' in this.props.onGestureEvent\n ) {\n // Reanimated worklet\n return ActionType.REANIMATED_WORKLET;\n } else if (\n this.props?.onGestureEvent &&\n '__isNative' in this.props.onGestureEvent\n ) {\n // Animated.event with useNativeDriver: true\n return ActionType.NATIVE_ANIMATED_EVENT;\n } else {\n // JS callback or Animated.event with useNativeDriver: false\n return ActionType.JS_FUNCTION_OLD_API;\n }\n })();\n\n RNGestureHandlerModule.attachGestureHandler(\n this.handlerTag,\n newViewTag,\n actionType\n );\n }\n\n scheduleFlushOperations();\n };\n\n private updateGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n scheduleFlushOperations();\n };\n\n private update(remainingTries: number) {\n const props: HandlerProps<U> = this.props;\n\n // When ref is set via a function i.e. `ref={(r) => refObject.current = r}` instead of\n // `ref={refObject}` it's possible that it won't be resolved in time. Seems like trying\n // again is easy enough fix.\n if (hasUnresolvedRefs(props) && remainingTries > 0) {\n this.updateEnqueued = setImmediate(() => {\n this.updateEnqueued = null;\n this.update(remainingTries - 1);\n });\n } else {\n const newConfig = filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n );\n if (!deepEqual(this.config, newConfig)) {\n this.updateGestureHandler(newConfig);\n }\n }\n }\n\n setNativeProps(updates: any) {\n const mergedProps = { ...this.props, ...updates };\n const newConfig = filterConfig(\n transformProps ? transformProps(mergedProps) : mergedProps,\n [...allowedProps, ...customNativeProps],\n config\n );\n this.updateGestureHandler(newConfig);\n }\n\n render() {\n let gestureEventHandler = this.onGestureHandlerEvent;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureEventHandlers = {\n onGestureEvent?: BaseGestureHandlerProps<U>['onGestureEvent'];\n onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];\n };\n const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =\n this.props;\n if (onGestureEvent && typeof onGestureEvent !== 'function') {\n // If it's not a method it should be an native Animated.event\n // object. We set it directly as the handler for the view\n // In this case nested handlers are not going to be supported\n if (onGestureHandlerEvent) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureEventHandler = onGestureEvent;\n } else {\n if (\n onGestureHandlerEvent &&\n typeof onGestureHandlerEvent !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n\n let gestureStateEventHandler = this.onGestureHandlerStateChange;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureStateChangeHandlers = {\n onHandlerStateChange?: BaseGestureHandlerProps<U>['onHandlerStateChange'];\n onGestureHandlerStateChange?: InternalEventHandlers['onGestureHandlerStateChange'];\n };\n const {\n onHandlerStateChange,\n onGestureHandlerStateChange,\n }: OnGestureStateChangeHandlers = this.props;\n if (onHandlerStateChange && typeof onHandlerStateChange !== 'function') {\n // If it's not a method it should be an native Animated.event\n // object. We set it directly as the handler for the view\n // In this case nested handlers are not going to be supported\n if (onGestureHandlerStateChange) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureStateEventHandler = onHandlerStateChange;\n } else {\n if (\n onGestureHandlerStateChange &&\n typeof onGestureHandlerStateChange !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n const events = {\n onGestureHandlerEvent: this.state.allowTouches\n ? gestureEventHandler\n : undefined,\n onGestureHandlerStateChange: this.state.allowTouches\n ? gestureStateEventHandler\n : undefined,\n };\n\n this.propsRef.current = events;\n\n let child: any = null;\n try {\n child = React.Children.only(this.props.children);\n } catch (e) {\n throw new Error(\n tagMessage(\n `${name} got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`\n )\n );\n }\n\n let grandChildren = child.props.children;\n if (\n __DEV__ &&\n child.type &&\n (child.type === 'RNGestureHandlerButton' ||\n child.type.name === 'View' ||\n child.type.displayName === 'View')\n ) {\n grandChildren = React.Children.toArray(grandChildren);\n grandChildren.push(\n <PressabilityDebugView\n key=\"pressabilityDebugView\"\n color=\"mediumspringgreen\"\n hitSlop={child.props.hitSlop}\n />\n );\n }\n\n return React.cloneElement(\n child,\n {\n ref: this.refHandler,\n collapsable: false,\n ...(isJestEnv()\n ? {\n handlerType: name,\n handlerTag: this.handlerTag,\n }\n : {}),\n testID: this.props.testID ?? child.props.testID,\n ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\n}\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","// Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.\n// Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof\n// e.g. React.createRef<TapGestureHandler> -> React.createRef<typeof TapGestureHandler>.\n// See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.\nimport * as React from 'react';\nimport { Platform, findNodeHandle as findNodeHandleRN } from 'react-native';\n\nimport { State } from '../State';\nimport { TouchEventType } from '../TouchEventType';\nimport { ValueOf } from '../typeUtils';\nimport { handlerIDToTag } from './handlersRegistry';\nimport { toArray } from '../utils';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\n\nconst commonProps = [\n 'id',\n 'enabled',\n 'shouldCancelWhenOutside',\n 'hitSlop',\n 'cancelsTouchesInView',\n 'userSelect',\n] as const;\n\nconst componentInteractionProps = ['waitFor', 'simultaneousHandlers'] as const;\n\nexport const baseGestureHandlerProps = [\n ...commonProps,\n ...componentInteractionProps,\n 'onBegan',\n 'onFailed',\n 'onCancelled',\n 'onActivated',\n 'onEnded',\n 'onGestureEvent',\n 'onHandlerStateChange',\n] as const;\n\nexport const baseGestureHandlerWithMonitorProps = [\n ...commonProps,\n 'needsPointerData',\n 'manualActivation',\n];\n\nexport interface GestureEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf<typeof State>;\n}\nexport interface HandlerStateChangeEventPayload extends GestureEventPayload {\n oldState: ValueOf<typeof State>;\n}\n\nexport type HitSlop =\n | number\n | Partial<\n Record<\n 'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal',\n number\n >\n >\n | Record<'width' | 'left', number>\n | Record<'width' | 'right', number>\n | Record<'height' | 'top', number>\n | Record<'height' | 'bottom', number>;\n\nexport type UserSelect = 'none' | 'auto' | 'text';\n\n//TODO(TS) events in handlers\n\nexport interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {\n nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;\n}\nexport interface HandlerStateChangeEvent<\n ExtraEventPayloadT = Record<string, unknown>\n> {\n nativeEvent: Readonly<HandlerStateChangeEventPayload & ExtraEventPayloadT>;\n}\n\nexport type TouchData = {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport type GestureTouchEvent = {\n handlerTag: number;\n numberOfTouches: number;\n state: ValueOf<typeof State>;\n eventType: TouchEventType;\n allTouches: TouchData[];\n changedTouches: TouchData[];\n};\n\nexport type GestureUpdateEvent<GestureEventPayloadT = Record<string, unknown>> =\n GestureEventPayload & GestureEventPayloadT;\n\nexport type GestureStateChangeEvent<\n GestureStateChangeEventPayloadT = Record<string, unknown>\n> = HandlerStateChangeEventPayload & GestureStateChangeEventPayloadT;\n\nexport type CommonGestureConfig = {\n enabled?: boolean;\n shouldCancelWhenOutside?: boolean;\n hitSlop?: HitSlop;\n userSelect?: UserSelect;\n};\n\n// Events payloads are types instead of interfaces due to TS limitation.\n// See https://github.com/microsoft/TypeScript/issues/15300 for more info.\nexport type BaseGestureHandlerProps<\n ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>\n> = CommonGestureConfig & {\n id?: string;\n waitFor?: React.Ref<unknown> | React.Ref<unknown>[];\n simultaneousHandlers?: React.Ref<unknown> | React.Ref<unknown>[];\n testID?: string;\n cancelsTouchesInView?: boolean;\n // TODO(TS) - fix event types\n onBegan?: (event: HandlerStateChangeEvent) => void;\n onFailed?: (event: HandlerStateChangeEvent) => void;\n onCancelled?: (event: HandlerStateChangeEvent) => void;\n onActivated?: (event: HandlerStateChangeEvent) => void;\n onEnded?: (event: HandlerStateChangeEvent) => void;\n\n //TODO(TS) consider using NativeSyntheticEvent\n onGestureEvent?: (event: GestureEvent<ExtraEventPayloadT>) => void;\n onHandlerStateChange?: (\n event: HandlerStateChangeEvent<ExtraEventPayloadT>\n ) => void;\n // implicit `children` prop has been removed in @types/react^18.0.0\n children?: React.ReactNode;\n};\n\nfunction isConfigParam(param: unknown, name: string) {\n // param !== Object(param) returns false if `param` is a function\n // or an object and returns true if `param` is null\n return (\n param !== undefined &&\n (param !== Object(param) ||\n !('__isNative' in (param as Record<string, unknown>))) &&\n name !== 'onHandlerStateChange' &&\n name !== 'onGestureEvent'\n );\n}\n\nexport function filterConfig(\n props: Record<string, unknown>,\n validProps: string[],\n defaults: Record<string, unknown> = {}\n) {\n const filteredConfig = { ...defaults };\n for (const key of validProps) {\n let value = props[key];\n if (isConfigParam(value, key)) {\n if (key === 'simultaneousHandlers' || key === 'waitFor') {\n value = transformIntoHandlerTags(props[key]);\n } else if (key === 'hitSlop' && typeof value !== 'object') {\n value = { top: value, left: value, bottom: value, right: value };\n }\n filteredConfig[key] = value;\n }\n }\n return filteredConfig;\n}\n\nfunction transformIntoHandlerTags(handlerIDs: any) {\n handlerIDs = toArray(handlerIDs);\n\n if (Platform.OS === 'web') {\n return handlerIDs\n .map(({ current }: { current: any }) => current)\n .filter((handle: any) => handle);\n }\n // converts handler string IDs into their numeric tags\n return handlerIDs\n .map(\n (handlerID: any) =>\n handlerIDToTag[handlerID] || handlerID.current?.handlerTag || -1\n )\n .filter((handlerTag: number) => handlerTag > 0);\n}\n\nexport function findNodeHandle(\n node: null | number | React.Component<any, any> | React.ComponentClass<any>\n): null | number | React.Component<any, any> | React.ComponentClass<any> {\n if (Platform.OS === 'web') {\n return node;\n }\n return findNodeHandleRN(node);\n}\n\nlet scheduledFlushOperationsId: ReturnType<\n typeof requestAnimationFrame\n> | null = null;\n\nexport function scheduleFlushOperations() {\n if (scheduledFlushOperationsId === null) {\n scheduledFlushOperationsId = requestAnimationFrame(() => {\n RNGestureHandlerModule.flushOperations();\n\n scheduledFlushOperationsId = null;\n });\n }\n}\n","export const ActionType = {\n REANIMATED_WORKLET: 1,\n NATIVE_ANIMATED_EVENT: 2,\n JS_FUNCTION_OLD_API: 3,\n JS_FUNCTION_NEW_API: 4,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type ActionType = typeof ActionType[keyof typeof ActionType];\n","// @ts-ignore it's not exported so we need to import it from path\nexport { PressabilityDebugView } from 'react-native/Libraries/Pressability/PressabilityDebug';\n","import React, { PropsWithChildren } from 'react';\nimport { tagMessage } from '../utils';\nimport PlatformConstants from '../PlatformConstants';\nimport createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const forceTouchGestureHandlerProps = [\n 'minForce',\n 'maxForce',\n 'feedbackOnActivation',\n] as const;\n\n// implicit `children` prop has been removed in @types/react^18.0.0\nclass ForceTouchFallback extends React.Component<PropsWithChildren<unknown>> {\n static forceTouchAvailable = false;\n componentDidMount() {\n console.warn(\n tagMessage(\n 'ForceTouchGestureHandler is not available on this platform. Please use ForceTouchGestureHandler.forceTouchAvailable to conditionally render other components that would provide a fallback behavior specific to your usecase'\n )\n );\n }\n render() {\n return this.props.children;\n }\n}\n\nexport type ForceTouchGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n\n /**\n * The pressure of a touch.\n */\n force: number;\n};\n\nexport interface ForceTouchGestureConfig {\n /**\n *\n * A minimal pressure that is required before handler can activate. Should be a\n * value from range `[0.0, 1.0]`. Default is `0.2`.\n */\n minForce?: number;\n\n /**\n * A maximal pressure that could be applied for handler. If the pressure is\n * greater, handler fails. Should be a value from range `[0.0, 1.0]`.\n */\n maxForce?: number;\n\n /**\n * Boolean value defining if haptic feedback has to be performed on\n * activation.\n */\n feedbackOnActivation?: boolean;\n}\n\nexport interface ForceTouchGestureHandlerProps\n extends BaseGestureHandlerProps<ForceTouchGestureHandlerEventPayload>,\n ForceTouchGestureConfig {}\n\nexport type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {\n forceTouchAvailable: boolean;\n};\n\nexport const forceTouchHandlerName = 'ForceTouchGestureHandler';\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable\n ? createHandler<\n ForceTouchGestureHandlerProps,\n ForceTouchGestureHandlerEventPayload\n >({\n name: forceTouchHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...forceTouchGestureHandlerProps,\n ] as const,\n config: {},\n })\n : ForceTouchFallback;\n\n(ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =\n PlatformConstants?.forceTouchAvailable || false;\n","import { NativeModules, Platform } from 'react-native';\n\ntype PlatformConstants = {\n forceTouchAvailable: boolean;\n};\n\nexport default (NativeModules?.PlatformConstants ??\n Platform.constants) as PlatformConstants;\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const longPressGestureHandlerProps = [\n 'minDurationMs',\n 'maxDist',\n] as const;\n\nexport type LongPressGestureHandlerEventPayload = {\n /**\n * X coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the view attached to the handler.\n */\n x: number;\n\n /**\n * Y coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the view attached to the handler.\n */\n y: number;\n\n /**\n * X coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the window. It is recommended to use `absoluteX` instead of\n * `x` in cases when the view attached to the handler can be transformed as an\n * effect of the gesture.\n */\n absoluteX: number;\n\n /**\n * Y coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the window. It is recommended to use `absoluteY` instead of\n * `y` in cases when the view attached to the handler can be transformed as an\n * effect of the gesture.\n */\n absoluteY: number;\n\n /**\n * Duration of the long press (time since the start of the event), expressed\n * in milliseconds.\n */\n duration: number;\n};\n\nexport interface LongPressGestureConfig {\n /**\n * Minimum time, expressed in milliseconds, that a finger must remain pressed on\n * the corresponding view. The default value is 500.\n */\n minDurationMs?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel during a long press gesture. If the finger travels\n * further than the defined distance and the handler hasn't yet activated, it\n * will fail to recognize the gesture. The default value is 10.\n */\n maxDist?: number;\n}\n\nexport interface LongPressGestureHandlerProps\n extends BaseGestureHandlerProps<LongPressGestureHandlerEventPayload>,\n LongPressGestureConfig {}\n\nexport const longPressHandlerName = 'LongPressGestureHandler';\n\nexport type LongPressGestureHandler = typeof LongPressGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const LongPressGestureHandler = createHandler<\n LongPressGestureHandlerProps,\n LongPressGestureHandlerEventPayload\n>({\n name: longPressHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...longPressGestureHandlerProps,\n ] as const,\n config: {\n shouldCancelWhenOutside: true,\n },\n});\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const panGestureHandlerProps = [\n 'activeOffsetY',\n 'activeOffsetX',\n 'failOffsetY',\n 'failOffsetX',\n 'minDist',\n 'minVelocity',\n 'minVelocityX',\n 'minVelocityY',\n 'minPointers',\n 'maxPointers',\n 'avgTouches',\n 'enableTrackpadTwoFingerGesture',\n 'activateAfterLongPress',\n] as const;\n\nexport const panGestureHandlerCustomNativeProps = [\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n] as const;\n\nexport type PanGestureHandlerEventPayload = {\n /**\n * X coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the view\n * attached to the handler. Expressed in point units.\n */\n x: number;\n\n /**\n * Y coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the view\n * attached to the handler. Expressed in point units.\n */\n y: number;\n\n /**\n * X coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the window.\n * The value is expressed in point units. It is recommended to use it instead\n * of `x` in cases when the original view can be transformed as an effect of\n * the gesture.\n */\n absoluteX: number;\n\n /**\n * Y coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the window.\n * The value is expressed in point units. It is recommended to use it instead\n * of `y` in cases when the original view can be transformed as an\n * effect of the gesture.\n */\n absoluteY: number;\n\n /**\n * Translation of the pan gesture along X axis accumulated over the time of\n * the gesture. The value is expressed in the point units.\n */\n translationX: number;\n\n /**\n * Translation of the pan gesture along Y axis accumulated over the time of\n * the gesture. The value is expressed in the point units.\n */\n translationY: number;\n\n /**\n * Velocity of the pan gesture along the X axis in the current moment. The\n * value is expressed in point units per second.\n */\n velocityX: number;\n\n /**\n * Velocity of the pan gesture along the Y axis in the current moment. The\n * value is expressed in point units per second.\n */\n velocityY: number;\n};\n\ninterface CommonPanProperties {\n /**\n * Minimum distance the finger (or multiple finger) need to travel before the\n * handler activates. Expressed in points.\n */\n minDist?: number;\n\n /**\n * Android only.\n */\n avgTouches?: boolean;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * enableTrackpadTwoFingerGesture swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * A number of fingers that is required to be placed before handler can\n * activate. Should be a higher or equal to 0 integer.\n */\n minPointers?: number;\n\n /**\n * When the given number of fingers is placed on the screen and handler hasn't\n * yet activated it will fail recognizing the gesture. Should be a higher or\n * equal to 0 integer.\n */\n maxPointers?: number;\n\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n activateAfterLongPress?: number;\n}\n\nexport interface PanGestureConfig extends CommonPanProperties {\n activeOffsetYStart?: number;\n activeOffsetYEnd?: number;\n activeOffsetXStart?: number;\n activeOffsetXEnd?: number;\n failOffsetYStart?: number;\n failOffsetYEnd?: number;\n failOffsetXStart?: number;\n failOffsetXEnd?: number;\n}\n\nexport interface PanGestureHandlerProps\n extends BaseGestureHandlerProps<PanGestureHandlerEventPayload>,\n CommonPanProperties {\n /**\n * Range along X axis (in points) where fingers travels without activation of\n * handler. Moving outside of this range implies activation of handler. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n activeOffsetY?: number | number[];\n\n /**\n * Range along X axis (in points) where fingers travels without activation of\n * handler. Moving outside of this range implies activation of handler. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n activeOffsetX?: number | number[];\n\n /**\n * When the finger moves outside this range (in points) along Y axis and\n * handler hasn't yet activated it will fail recognizing the gesture. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n failOffsetY?: number | number[];\n\n /**\n * When the finger moves outside this range (in points) along X axis and\n * handler hasn't yet activated it will fail recognizing the gesture. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n failOffsetX?: number | number[];\n}\n\nexport const panHandlerName = 'PanGestureHandler';\n\nexport type PanGestureHandler = typeof PanGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const PanGestureHandler = createHandler<\n PanGestureHandlerProps,\n PanGestureHandlerEventPayload\n>({\n name: panHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...panGestureHandlerProps,\n ] as const,\n config: {},\n transformProps: managePanProps,\n customNativeProps: panGestureHandlerCustomNativeProps,\n});\n\nfunction validatePanGestureHandlerProps(props: PanGestureHandlerProps) {\n if (\n Array.isArray(props.activeOffsetX) &&\n (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.activeOffsetY) &&\n (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetY should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetX) &&\n (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetY) &&\n (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetY should be negative, a the second one should be positive`\n );\n }\n\n if (props.minDist && (props.failOffsetX || props.failOffsetY)) {\n throw new Error(\n `It is not supported to use minDist with failOffsetX or failOffsetY, use activeOffsetX and activeOffsetY instead`\n );\n }\n\n if (props.minDist && (props.activeOffsetX || props.activeOffsetY)) {\n throw new Error(\n `It is not supported to use minDist with activeOffsetX or activeOffsetY`\n );\n }\n}\n\nfunction transformPanGestureHandlerProps(props: PanGestureHandlerProps) {\n type InternalPanGHKeys =\n | 'activeOffsetXStart'\n | 'activeOffsetXEnd'\n | 'failOffsetXStart'\n | 'failOffsetXEnd'\n | 'activeOffsetYStart'\n | 'activeOffsetYEnd'\n | 'failOffsetYStart'\n | 'failOffsetYEnd';\n type PanGestureHandlerInternalProps = PanGestureHandlerProps &\n Partial<Record<InternalPanGHKeys, number>>;\n\n const res: PanGestureHandlerInternalProps = { ...props };\n\n if (props.activeOffsetX !== undefined) {\n delete res.activeOffsetX;\n if (Array.isArray(props.activeOffsetX)) {\n res.activeOffsetXStart = props.activeOffsetX[0];\n res.activeOffsetXEnd = props.activeOffsetX[1];\n } else if (props.activeOffsetX < 0) {\n res.activeOffsetXStart = props.activeOffsetX;\n } else {\n res.activeOffsetXEnd = props.activeOffsetX;\n }\n }\n\n if (props.activeOffsetY !== undefined) {\n delete res.activeOffsetY;\n if (Array.isArray(props.activeOffsetY)) {\n res.activeOffsetYStart = props.activeOffsetY[0];\n res.activeOffsetYEnd = props.activeOffsetY[1];\n } else if (props.activeOffsetY < 0) {\n res.activeOffsetYStart = props.activeOffsetY;\n } else {\n res.activeOffsetYEnd = props.activeOffsetY;\n }\n }\n\n if (props.failOffsetX !== undefined) {\n delete res.failOffsetX;\n if (Array.isArray(props.failOffsetX)) {\n res.failOffsetXStart = props.failOffsetX[0];\n res.failOffsetXEnd = props.failOffsetX[1];\n } else if (props.failOffsetX < 0) {\n res.failOffsetXStart = props.failOffsetX;\n } else {\n res.failOffsetXEnd = props.failOffsetX;\n }\n }\n\n if (props.failOffsetY !== undefined) {\n delete res.failOffsetY;\n if (Array.isArray(props.failOffsetY)) {\n res.failOffsetYStart = props.failOffsetY[0];\n res.failOffsetYEnd = props.failOffsetY[1];\n } else if (props.failOffsetY < 0) {\n res.failOffsetYStart = props.failOffsetY;\n } else {\n res.failOffsetYEnd = props.failOffsetY;\n }\n }\n\n return res;\n}\n\nexport function managePanProps(props: PanGestureHandlerProps) {\n if (__DEV__) {\n validatePanGestureHandlerProps(props);\n }\n return transformPanGestureHandlerProps(props);\n}\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport type PinchGestureHandlerEventPayload = {\n /**\n * The scale factor relative to the points of the two touches in screen\n * coordinates.\n */\n scale: number;\n\n /**\n * Position expressed in points along X axis of center anchor point of\n * gesture.\n */\n focalX: number;\n\n /**\n * Position expressed in points along Y axis of center anchor point of\n * gesture.\n */\n focalY: number;\n\n /**\n *\n * Velocity of the pan gesture the current moment. The value is expressed in\n * point units per second.\n */\n velocity: number;\n};\n\nexport interface PinchGestureHandlerProps\n extends BaseGestureHandlerProps<PinchGestureHandlerEventPayload> {}\n\nexport const pinchHandlerName = 'PinchGestureHandler';\n\nexport type PinchGestureHandler = typeof PinchGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const PinchGestureHandler = createHandler<\n PinchGestureHandlerProps,\n PinchGestureHandlerEventPayload\n>({\n name: pinchHandlerName,\n allowedProps: baseGestureHandlerProps,\n config: {},\n});\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport type RotationGestureHandlerEventPayload = {\n /**\n * Amount rotated, expressed in radians, from the gesture's focal point\n * (anchor).\n */\n rotation: number;\n\n /**\n * X coordinate, expressed in points, of the gesture's central focal point\n * (anchor).\n */\n anchorX: number;\n\n /**\n * Y coordinate, expressed in points, of the gesture's central focal point\n * (anchor).\n */\n anchorY: number;\n\n /**\n *\n * Instantaneous velocity, expressed in point units per second, of the\n * gesture.\n */\n velocity: number;\n};\n\nexport interface RotationGestureHandlerProps\n extends BaseGestureHandlerProps<RotationGestureHandlerEventPayload> {}\n\nexport const rotationHandlerName = 'RotationGestureHandler';\n\nexport type RotationGestureHandler = typeof RotationGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const RotationGestureHandler = createHandler<\n RotationGestureHandlerProps,\n RotationGestureHandlerEventPayload\n>({\n name: rotationHandlerName,\n allowedProps: baseGestureHandlerProps,\n config: {},\n});\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const flingGestureHandlerProps = [\n 'numberOfPointers',\n 'direction',\n] as const;\n\nexport type FlingGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\nexport interface FlingGestureConfig {\n /**\n * Expressed allowed direction of movement. It's possible to pass one or many\n * directions in one parameter:\n *\n * ```js\n * direction={Directions.RIGHT | Directions.LEFT}\n * ```\n *\n * or\n *\n * ```js\n * direction={Directions.DOWN}\n * ```\n */\n direction?: number;\n\n /**\n * Determine exact number of points required to handle the fling gesture.\n */\n numberOfPointers?: number;\n}\n\nexport interface FlingGestureHandlerProps\n extends BaseGestureHandlerProps<FlingGestureHandlerEventPayload>,\n FlingGestureConfig {}\n\nexport const flingHandlerName = 'FlingGestureHandler';\n\nexport type FlingGestureHandler = typeof FlingGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const FlingGestureHandler = createHandler<\n FlingGestureHandlerProps,\n FlingGestureHandlerEventPayload\n>({\n name: flingHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...flingGestureHandlerProps,\n ] as const,\n config: {},\n});\n","import * as React from 'react';\nimport { useImperativeHandle, useRef } from 'react';\n\nimport {\n NativeViewGestureHandler,\n NativeViewGestureHandlerProps,\n nativeViewProps,\n} from './NativeViewGestureHandler';\n\n/*\n * This array should consist of:\n * - All keys in propTypes from NativeGestureHandler\n * (and all keys in GestureHandlerPropTypes)\n * - 'onGestureHandlerEvent'\n * - 'onGestureHandlerStateChange'\n */\nconst NATIVE_WRAPPER_PROPS_FILTER = [\n ...nativeViewProps,\n 'onGestureHandlerEvent',\n 'onGestureHandlerStateChange',\n] as const;\n\nexport default function createNativeWrapper<P>(\n Component: React.ComponentType<P>,\n config: Readonly<NativeViewGestureHandlerProps> = {}\n) {\n const ComponentWrapper = React.forwardRef<\n React.ComponentType<any>,\n P & NativeViewGestureHandlerProps\n >((props, ref) => {\n // filter out props that should be passed to gesture handler wrapper\n const gestureHandlerProps = Object.keys(props).reduce(\n (res, key) => {\n // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info\n const allowedKeys: readonly string[] = NATIVE_WRAPPER_PROPS_FILTER;\n if (allowedKeys.includes(key)) {\n // @ts-ignore FIXME(TS)\n res[key] = props[key];\n }\n return res;\n },\n { ...config } // watch out not to modify config\n );\n const _ref = useRef<React.ComponentType<P>>();\n const _gestureHandlerRef = useRef<React.ComponentType<P>>();\n useImperativeHandle(\n ref,\n // @ts-ignore TODO(TS) decide how nulls work in this context\n () => {\n const node = _gestureHandlerRef.current;\n // add handlerTag for relations config\n if (_ref.current && node) {\n // @ts-ignore FIXME(TS) think about createHandler return type\n _ref.current.handlerTag = node.handlerTag;\n return _ref.current;\n }\n return null;\n },\n [_ref, _gestureHandlerRef]\n );\n return (\n <NativeViewGestureHandler\n {...gestureHandlerProps}\n // @ts-ignore TODO(TS)\n ref={_gestureHandlerRef}>\n <Component {...props} ref={_ref} />\n </NativeViewGestureHandler>\n );\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ComponentWrapper.displayName =\n Component?.displayName ||\n // @ts-ignore if render doesn't exist it will return undefined and go further\n Component?.render?.name ||\n (typeof Component === 'string' && Component) ||\n 'ComponentWrapper';\n\n return ComponentWrapper;\n}\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const nativeViewGestureHandlerProps = [\n 'shouldActivateOnStart',\n 'disallowInterruption',\n] as const;\n\nexport interface NativeViewGestureConfig {\n /**\n * Android only.\n *\n * Determines whether the handler should check for an existing touch event on\n * instantiation.\n */\n shouldActivateOnStart?: boolean;\n\n /**\n * When `true`, cancels all other gesture handlers when this\n * `NativeViewGestureHandler` receives an `ACTIVE` state event.\n */\n disallowInterruption?: boolean;\n}\n\nexport interface NativeViewGestureHandlerProps\n extends BaseGestureHandlerProps<NativeViewGestureHandlerPayload>,\n NativeViewGestureConfig {}\n\nexport type NativeViewGestureHandlerPayload = {\n /**\n * True if gesture was performed inside of containing view, false otherwise.\n */\n pointerInside: boolean;\n};\n\nexport const nativeViewProps = [\n ...baseGestureHandlerProps,\n ...nativeViewGestureHandlerProps,\n] as const;\n\nexport const nativeViewHandlerName = 'NativeViewGestureHandler';\n\nexport type NativeViewGestureHandler = typeof NativeViewGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const NativeViewGestureHandler = createHandler<\n NativeViewGestureHandlerProps,\n NativeViewGestureHandlerPayload\n>({\n name: nativeViewHandlerName,\n allowedProps: nativeViewProps,\n config: {},\n});\n","import React, { useEffect, useRef, useState } from 'react';\nimport {\n GestureType,\n HandlerCallbacks,\n BaseGesture,\n GestureRef,\n CALLBACK_TYPE,\n} from './gesture';\nimport { Reanimated, SharedValue } from './reanimatedWrapper';\nimport { registerHandler, unregisterHandler } from '../handlersRegistry';\nimport RNGestureHandlerModule from '../../RNGestureHandlerModule';\nimport {\n baseGestureHandlerWithMonitorProps,\n filterConfig,\n findNodeHandle,\n GestureTouchEvent,\n GestureUpdateEvent,\n GestureStateChangeEvent,\n HandlerStateChangeEvent,\n scheduleFlushOperations,\n UserSelect,\n} from '../gestureHandlerCommon';\nimport {\n GestureStateManager,\n GestureStateManagerType,\n} from './gestureStateManager';\nimport { flingGestureHandlerProps } from '../FlingGestureHandler';\nimport { forceTouchGestureHandlerProps } from '../ForceTouchGestureHandler';\nimport { longPressGestureHandlerProps } from '../LongPressGestureHandler';\nimport {\n panGestureHandlerProps,\n panGestureHandlerCustomNativeProps,\n} from '../PanGestureHandler';\nimport { tapGestureHandlerProps } from '../TapGestureHandler';\nimport { State } from '../../State';\nimport { TouchEventType } from '../../TouchEventType';\nimport { ComposedGesture } from './gestureComposition';\nimport { ActionType } from '../../ActionType';\nimport { isFabric, REACT_NATIVE_VERSION, tagMessage } from '../../utils';\nimport { getShadowNodeFromRef } from '../../getShadowNodeFromRef';\nimport { Platform } from 'react-native';\nimport type RNGestureHandlerModuleWeb from '../../RNGestureHandlerModule.web';\nimport { onGestureHandlerEvent } from './eventReceiver';\nimport { RNRenderer } from '../../RNRenderer';\nimport { isExperimentalWebImplementationEnabled } from '../../EnableExperimentalWebImplementation';\n\ndeclare const global: {\n isFormsStackingContext: (node: unknown) => boolean | null; // JSI function\n};\n\nconst ALLOWED_PROPS = [\n ...baseGestureHandlerWithMonitorProps,\n ...tapGestureHandlerProps,\n ...panGestureHandlerProps,\n ...panGestureHandlerCustomNativeProps,\n ...longPressGestureHandlerProps,\n ...forceTouchGestureHandlerProps,\n ...flingGestureHandlerProps,\n];\n\nexport type GestureConfigReference = {\n config: GestureType[];\n animatedEventHandler: unknown;\n animatedHandlers: SharedValue<\n HandlerCallbacks<Record<string, unknown>>[] | null\n > | null;\n firstExecution: boolean;\n useReanimatedHook: boolean;\n};\n\nfunction convertToHandlerTag(ref: GestureRef): number {\n if (typeof ref === 'number') {\n return ref;\n } else if (ref instanceof BaseGesture) {\n return ref.handlerTag;\n } else {\n // @ts-ignore in this case it should be a ref either to gesture object or\n // a gesture handler component, in both cases handlerTag property exists\n return ref.current?.handlerTag ?? -1;\n }\n}\n\nfunction extractValidHandlerTags(interactionGroup: GestureRef[] | undefined) {\n return (\n interactionGroup?.map(convertToHandlerTag)?.filter((tag) => tag > 0) ?? []\n );\n}\n\nfunction dropHandlers(preparedGesture: GestureConfigReference) {\n for (const handler of preparedGesture.config) {\n RNGestureHandlerModule.dropGestureHandler(handler.handlerTag);\n\n unregisterHandler(handler.handlerTag, handler.config.testId);\n }\n\n scheduleFlushOperations();\n}\n\nfunction checkGestureCallbacksForWorklets(gesture: GestureType) {\n // if a gesture is explicitly marked to run on the JS thread there is no need to check\n // if callbacks are worklets as the user is aware they will be ran on the JS thread\n if (gesture.config.runOnJS) {\n return;\n }\n\n const areSomeNotWorklets = gesture.handlers.isWorklet.includes(false);\n const areSomeWorklets = gesture.handlers.isWorklet.includes(true);\n\n // if some of the callbacks are worklets and some are not, and the gesture is not\n // explicitly marked with `.runOnJS(true)` show an error\n if (areSomeNotWorklets && areSomeWorklets) {\n console.error(\n tagMessage(\n `Some of the callbacks in the gesture are worklets and some are not. Either make sure that all calbacks are marked as 'worklet' if you wish to run them on the UI thread or use '.runOnJS(true)' modifier on the gesture explicitly to run all callbacks on the JS thread.`\n )\n );\n }\n}\n\ninterface WebEventHandler {\n onGestureHandlerEvent: (event: HandlerStateChangeEvent<unknown>) => void;\n onGestureHandlerStateChange?: (\n event: HandlerStateChangeEvent<unknown>\n ) => void;\n}\n\ninterface AttachHandlersConfig {\n preparedGesture: GestureConfigReference;\n gestureConfig: ComposedGesture | GestureType;\n gesture: GestureType[];\n viewTag: number;\n webEventHandlersRef: React.RefObject<WebEventHandler>;\n mountedRef: React.RefObject<boolean>;\n}\n\nfunction attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n viewTag,\n webEventHandlersRef,\n mountedRef,\n}: AttachHandlersConfig) {\n if (!preparedGesture.firstExecution) {\n gestureConfig.initialize();\n } else {\n preparedGesture.firstExecution = false;\n }\n\n // use setImmediate to extract handlerTags, because all refs should be initialized\n // when it's ran\n setImmediate(() => {\n if (!mountedRef.current) {\n return;\n }\n gestureConfig.prepare();\n });\n\n for (const handler of gesture) {\n checkGestureCallbacksForWorklets(handler);\n RNGestureHandlerModule.createGestureHandler(\n handler.handlerName,\n handler.handlerTag,\n filterConfig(handler.config, ALLOWED_PROPS)\n );\n\n registerHandler(handler.handlerTag, handler, handler.config.testId);\n }\n\n // use setImmediate to extract handlerTags, because all refs should be initialized\n // when it's ran\n setImmediate(() => {\n if (!mountedRef.current) {\n return;\n }\n for (const handler of gesture) {\n let requireToFail: number[] = [];\n if (handler.config.requireToFail) {\n requireToFail = extractValidHandlerTags(handler.config.requireToFail);\n }\n\n let simultaneousWith: number[] = [];\n if (handler.config.simultaneousWith) {\n simultaneousWith = extractValidHandlerTags(\n handler.config.simultaneousWith\n );\n }\n\n RNGestureHandlerModule.updateGestureHandler(\n handler.handlerTag,\n filterConfig(handler.config, ALLOWED_PROPS, {\n simultaneousHandlers: simultaneousWith,\n waitFor: requireToFail,\n })\n );\n }\n\n scheduleFlushOperations();\n });\n\n preparedGesture.config = gesture;\n\n for (const gesture of preparedGesture.config) {\n const actionType = gesture.shouldUseReanimated\n ? ActionType.REANIMATED_WORKLET\n : ActionType.JS_FUNCTION_NEW_API;\n\n if (Platform.OS === 'web') {\n (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n gesture.handlerTag,\n viewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n webEventHandlersRef\n );\n } else {\n RNGestureHandlerModule.attachGestureHandler(\n gesture.handlerTag,\n viewTag,\n actionType\n );\n }\n }\n\n if (preparedGesture.animatedHandlers) {\n const isAnimatedGesture = (g: GestureType) => g.shouldUseReanimated;\n\n preparedGesture.animatedHandlers.value = gesture\n .filter(isAnimatedGesture)\n .map((g) => g.handlers) as unknown as HandlerCallbacks<\n Record<string, unknown>\n >[];\n }\n}\n\nfunction updateHandlers(\n preparedGesture: GestureConfigReference,\n gestureConfig: ComposedGesture | GestureType,\n gesture: GestureType[],\n mountedRef: React.RefObject<boolean>\n) {\n gestureConfig.prepare();\n\n for (let i = 0; i < gesture.length; i++) {\n const handler = preparedGesture.config[i];\n checkGestureCallbacksForWorklets(handler);\n\n // only update handlerTag when it's actually different, it may be the same\n // if gesture config object is wrapped with useMemo\n if (gesture[i].handlerTag !== handler.handlerTag) {\n gesture[i].handlerTag = handler.handlerTag;\n gesture[i].handlers.handlerTag = handler.handlerTag;\n }\n }\n\n // use setImmediate to extract handlerTags, because when it's ran, all refs should be updated\n // and handlerTags in BaseGesture references should be updated in the loop above (we need to wait\n // in case of external relations)\n setImmediate(() => {\n if (!mountedRef.current) {\n return;\n }\n for (let i = 0; i < gesture.length; i++) {\n const handler = preparedGesture.config[i];\n\n handler.config = gesture[i].config;\n handler.handlers = gesture[i].handlers;\n\n const requireToFail = extractValidHandlerTags(\n handler.config.requireToFail\n );\n\n const simultaneousWith = extractValidHandlerTags(\n handler.config.simultaneousWith\n );\n\n RNGestureHandlerModule.updateGestureHandler(\n handler.handlerTag,\n filterConfig(handler.config, ALLOWED_PROPS, {\n simultaneousHandlers: simultaneousWith,\n waitFor: requireToFail,\n })\n );\n\n registerHandler(handler.handlerTag, handler, handler.config.testId);\n }\n\n if (preparedGesture.animatedHandlers) {\n const previousHandlersValue =\n preparedGesture.animatedHandlers.value ?? [];\n const newHandlersValue = preparedGesture.config\n .filter((g) => g.shouldUseReanimated) // ignore gestures that shouldn't run on UI\n .map((g) => g.handlers) as unknown as HandlerCallbacks<\n Record<string, unknown>\n >[];\n\n // if amount of gesture configs changes, we need to update the callbacks in shared value\n let shouldUpdateSharedValue =\n previousHandlersValue.length !== newHandlersValue.length;\n\n if (!shouldUpdateSharedValue) {\n // if the amount is the same, we need to check if any of the configs inside has changed\n for (let i = 0; i < newHandlersValue.length; i++) {\n if (\n // we can use the `gestureId` prop as it's unique for every config instance\n newHandlersValue[i].gestureId !== previousHandlersValue[i].gestureId\n ) {\n shouldUpdateSharedValue = true;\n break;\n }\n }\n }\n\n if (shouldUpdateSharedValue) {\n preparedGesture.animatedHandlers.value = newHandlersValue;\n }\n }\n\n scheduleFlushOperations();\n });\n}\n\nfunction needsToReattach(\n preparedGesture: GestureConfigReference,\n gesture: GestureType[]\n) {\n if (gesture.length !== preparedGesture.config.length) {\n return true;\n }\n for (let i = 0; i < gesture.length; i++) {\n if (\n gesture[i].handlerName !== preparedGesture.config[i].handlerName ||\n gesture[i].shouldUseReanimated !==\n preparedGesture.config[i].shouldUseReanimated\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStateChangeEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureStateChangeEvent {\n 'worklet';\n // @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point\n return event.oldState != null;\n}\n\nfunction isTouchEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureTouchEvent {\n 'worklet';\n return event.eventType != null;\n}\n\nfunction getHandler(\n type: CALLBACK_TYPE,\n gesture: HandlerCallbacks<Record<string, unknown>>\n) {\n 'worklet';\n switch (type) {\n case CALLBACK_TYPE.BEGAN:\n return gesture.onBegin;\n case CALLBACK_TYPE.START:\n return gesture.onStart;\n case CALLBACK_TYPE.UPDATE:\n return gesture.onUpdate;\n case CALLBACK_TYPE.CHANGE:\n return gesture.onChange;\n case CALLBACK_TYPE.END:\n return gesture.onEnd;\n case CALLBACK_TYPE.FINALIZE:\n return gesture.onFinalize;\n case CALLBACK_TYPE.TOUCHES_DOWN:\n return gesture.onTouchesDown;\n case CALLBACK_TYPE.TOUCHES_MOVE:\n return gesture.onTouchesMove;\n case CALLBACK_TYPE.TOUCHES_UP:\n return gesture.onTouchesUp;\n case CALLBACK_TYPE.TOUCHES_CANCELLED:\n return gesture.onTouchesCancelled;\n }\n}\n\nfunction touchEventTypeToCallbackType(\n eventType: TouchEventType\n): CALLBACK_TYPE {\n 'worklet';\n switch (eventType) {\n case TouchEventType.TOUCHES_DOWN:\n return CALLBACK_TYPE.TOUCHES_DOWN;\n case TouchEventType.TOUCHES_MOVE:\n return CALLBACK_TYPE.TOUCHES_MOVE;\n case TouchEventType.TOUCHES_UP:\n return CALLBACK_TYPE.TOUCHES_UP;\n case TouchEventType.TOUCHES_CANCELLED:\n return CALLBACK_TYPE.TOUCHES_CANCELLED;\n }\n return CALLBACK_TYPE.UNDEFINED;\n}\n\nfunction runWorklet(\n type: CALLBACK_TYPE,\n gesture: HandlerCallbacks<Record<string, unknown>>,\n event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent,\n ...args: any[]\n) {\n 'worklet';\n const handler = getHandler(type, gesture);\n if (gesture.isWorklet[type]) {\n // @ts-ignore Logic below makes sure the correct event is send to the\n // correct handler.\n handler?.(event, ...args);\n } else if (handler) {\n console.warn(tagMessage('Animated gesture callback must be a worklet'));\n }\n}\n\nfunction useAnimatedGesture(\n preparedGesture: GestureConfigReference,\n needsRebuild: boolean\n) {\n if (!Reanimated) {\n return;\n }\n\n // Hooks are called conditionally, but the condition is whether the\n // react-native-reanimated is installed, which shouldn't change while running\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const sharedHandlersCallbacks = Reanimated.useSharedValue<\n HandlerCallbacks<Record<string, unknown>>[] | null\n >(null);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastUpdateEvent = Reanimated.useSharedValue<\n (GestureUpdateEvent | undefined)[]\n >([]);\n\n // not every gesture needs a state controller, init them lazily\n const stateControllers: GestureStateManagerType[] = [];\n\n const callback = (\n event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent\n ) => {\n 'worklet';\n\n const currentCallback = sharedHandlersCallbacks.value;\n if (!currentCallback) {\n return;\n }\n\n for (let i = 0; i < currentCallback.length; i++) {\n const gesture = currentCallback[i];\n\n if (event.handlerTag === gesture.handlerTag) {\n if (isStateChangeEvent(event)) {\n if (\n event.oldState === State.UNDETERMINED &&\n event.state === State.BEGAN\n ) {\n runWorklet(CALLBACK_TYPE.BEGAN, gesture, event);\n } else if (\n (event.oldState === State.BEGAN ||\n event.oldState === State.UNDETERMINED) &&\n event.state === State.ACTIVE\n ) {\n runWorklet(CALLBACK_TYPE.START, gesture, event);\n lastUpdateEvent.value[gesture.handlerTag] = undefined;\n } else if (\n event.oldState !== event.state &&\n event.state === State.END\n ) {\n if (event.oldState === State.ACTIVE) {\n runWorklet(CALLBACK_TYPE.END, gesture, event, true);\n }\n runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, true);\n } else if (\n (event.state === State.FAILED || event.state === State.CANCELLED) &&\n event.state !== event.oldState\n ) {\n if (event.oldState === State.ACTIVE) {\n runWorklet(CALLBACK_TYPE.END, gesture, event, false);\n }\n runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, false);\n }\n } else if (isTouchEvent(event)) {\n if (!stateControllers[i]) {\n stateControllers[i] = GestureStateManager.create(event.handlerTag);\n }\n\n if (event.eventType !== TouchEventType.UNDETERMINED) {\n runWorklet(\n touchEventTypeToCallbackType(event.eventType),\n gesture,\n event,\n stateControllers[i]\n );\n }\n } else {\n runWorklet(CALLBACK_TYPE.UPDATE, gesture, event);\n\n if (gesture.onChange && gesture.changeEventCalculator) {\n runWorklet(\n CALLBACK_TYPE.CHANGE,\n gesture,\n gesture.changeEventCalculator?.(\n event,\n lastUpdateEvent.value[gesture.handlerTag]\n )\n );\n\n lastUpdateEvent.value[gesture.handlerTag] = event;\n }\n }\n }\n }\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const event = Reanimated.useEvent(\n callback,\n ['onGestureHandlerStateChange', 'onGestureHandlerEvent'],\n needsRebuild\n );\n\n preparedGesture.animatedEventHandler = event;\n preparedGesture.animatedHandlers = sharedHandlersCallbacks;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction validateDetectorChildren(ref: any) {\n // finds the first native view under the Wrap component and traverses the fiber tree upwards\n // to check whether there is more than one native view as a pseudo-direct child of GestureDetector\n // i.e. this is not ok:\n // Wrap\n // |\n // / \\\n // / \\\n // / \\\n // / \\\n // NativeView NativeView\n //\n // but this is fine:\n // Wrap\n // |\n // NativeView\n // |\n // / \\\n // / \\\n // / \\\n // / \\\n // NativeView NativeView\n if (__DEV__ && Platform.OS !== 'web') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const wrapType =\n REACT_NATIVE_VERSION.minor > 63 || REACT_NATIVE_VERSION.major > 0\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ref._reactInternals.elementType\n : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ref._reactInternalFiber.elementType;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n let instance =\n RNRenderer.findHostInstance_DEPRECATED(\n ref\n )._internalFiberInstanceHandleDEV;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n while (instance && instance.elementType !== wrapType) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (instance.sibling) {\n throw new Error(\n 'GestureDetector has more than one native view as its children. This can happen if you are using a custom component that renders multiple views, like React.Fragment. You should wrap content of GestureDetector with a <View> or <Animated.View>.'\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n instance = instance.return;\n }\n }\n}\n\nconst applyUserSelectProp = (\n userSelect: UserSelect,\n gesture: ComposedGesture | GestureType\n): void => {\n for (const g of gesture.toGestureArray()) {\n g.config.userSelect = userSelect;\n }\n};\n\ninterface GestureDetectorProps {\n gesture: ComposedGesture | GestureType;\n userSelect?: UserSelect;\n children?: React.ReactNode;\n}\ninterface GestureDetectorState {\n firstRender: boolean;\n viewRef: React.Component | null;\n previousViewTag: number;\n forceReattach: boolean;\n}\nexport const GestureDetector = (props: GestureDetectorProps) => {\n const gestureConfig = props.gesture;\n\n if (props.userSelect) {\n applyUserSelectProp(props.userSelect, gestureConfig);\n }\n\n const gesture = gestureConfig.toGestureArray();\n const useReanimatedHook = gesture.some((g) => g.shouldUseReanimated);\n\n // store state in ref to prevent unnecessary renders\n const state = useRef<GestureDetectorState>({\n firstRender: true,\n viewRef: null,\n previousViewTag: -1,\n forceReattach: false,\n }).current;\n const mountedRef = useRef(false);\n const webEventHandlersRef = useRef<WebEventHandler>({\n onGestureHandlerEvent: (e: HandlerStateChangeEvent<unknown>) => {\n onGestureHandlerEvent(e.nativeEvent);\n },\n onGestureHandlerStateChange: isExperimentalWebImplementationEnabled()\n ? (e: HandlerStateChangeEvent<unknown>) => {\n onGestureHandlerEvent(e.nativeEvent);\n }\n : undefined,\n });\n\n const [renderState, setRenderState] = useState(false);\n function forceRender() {\n setRenderState(!renderState);\n }\n\n const preparedGesture = React.useRef<GestureConfigReference>({\n config: gesture,\n animatedEventHandler: null,\n animatedHandlers: null,\n firstExecution: true,\n useReanimatedHook: useReanimatedHook,\n }).current;\n\n if (useReanimatedHook !== preparedGesture.useReanimatedHook) {\n throw new Error(\n tagMessage(\n 'You cannot change the thread the callbacks are ran on while the app is running'\n )\n );\n }\n\n function onHandlersUpdate(skipConfigUpdate?: boolean) {\n // if the underlying view has changed we need to reattach handlers to the new view\n const viewTag = findNodeHandle(state.viewRef) as number;\n const forceReattach = viewTag !== state.previousViewTag;\n\n if (forceReattach || needsToReattach(preparedGesture, gesture)) {\n validateDetectorChildren(state.viewRef);\n dropHandlers(preparedGesture);\n attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n webEventHandlersRef,\n viewTag,\n mountedRef,\n });\n\n state.previousViewTag = viewTag;\n state.forceReattach = forceReattach;\n if (forceReattach) {\n forceRender();\n }\n } else if (!skipConfigUpdate) {\n updateHandlers(preparedGesture, gestureConfig, gesture, mountedRef);\n }\n }\n\n // Reanimated event should be rebuilt only when gestures are reattached, otherwise\n // config update will be enough as all necessary items are stored in shared values anyway\n const needsToRebuildReanimatedEvent =\n preparedGesture.firstExecution ||\n needsToReattach(preparedGesture, gesture) ||\n state.forceReattach;\n\n state.forceReattach = false;\n\n if (preparedGesture.firstExecution) {\n gestureConfig.initialize();\n }\n\n if (useReanimatedHook) {\n // Whether animatedGesture or gesture is used shouldn't change while the app is running\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useAnimatedGesture(preparedGesture, needsToRebuildReanimatedEvent);\n }\n\n useEffect(() => {\n const viewTag = findNodeHandle(state.viewRef) as number;\n state.firstRender = true;\n mountedRef.current = true;\n\n validateDetectorChildren(state.viewRef);\n\n attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n webEventHandlersRef,\n viewTag,\n mountedRef,\n });\n\n return () => {\n mountedRef.current = false;\n dropHandlers(preparedGesture);\n };\n }, []);\n\n useEffect(() => {\n if (!state.firstRender) {\n onHandlersUpdate();\n } else {\n state.firstRender = false;\n }\n }, [props]);\n\n const refFunction = (ref: unknown) => {\n if (ref !== null) {\n // @ts-ignore Just setting the view ref\n state.viewRef = ref;\n\n // if it's the first render, also set the previousViewTag to prevent reattaching gestures when not needed\n if (state.previousViewTag === -1) {\n state.previousViewTag = findNodeHandle(state.viewRef) as number;\n }\n\n // pass true as `skipConfigUpdate`, here we only want to trigger the eventual reattaching of handlers\n // in case the view has changed, while config update would be handled be the `useEffect` above\n onHandlersUpdate(true);\n\n if (isFabric()) {\n const node = getShadowNodeFromRef(ref);\n if (global.isFormsStackingContext(node) === false) {\n console.error(\n tagMessage(\n 'GestureDetector has received a child that may get view-flattened. ' +\n '\\nTo prevent it from misbehaving you need to wrap the child with a `<View collapsable={false}>`.'\n )\n );\n }\n }\n }\n };\n\n if (useReanimatedHook) {\n return (\n <AnimatedWrap\n ref={refFunction}\n onGestureHandlerEvent={preparedGesture.animatedEventHandler}>\n {props.children}\n </AnimatedWrap>\n );\n } else {\n return <Wrap ref={refFunction}>{props.children}</Wrap>;\n }\n};\n\nclass Wrap extends React.Component<{\n onGestureHandlerEvent?: unknown;\n // implicit `children` prop has been removed in @types/react^18.0.0\n children?: React.ReactNode;\n}> {\n render() {\n try {\n // I don't think that fighting with types over such a simple function is worth it\n // The only thing it does is add 'collapsable: false' to the child component\n // to make sure it is in the native view hierarchy so the detector can find\n // correct viewTag to attach to.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const child: any = React.Children.only(this.props.children);\n return React.cloneElement(\n child,\n { collapsable: false },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n child.props.children\n );\n } catch (e) {\n throw new Error(\n tagMessage(\n `GestureDetector got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`\n )\n );\n }\n }\n}\n\nconst AnimatedWrap = Reanimated?.default?.createAnimatedComponent(Wrap) ?? Wrap;\n","import { FlingGestureHandlerEventPayload } from '../FlingGestureHandler';\nimport { ForceTouchGestureHandlerEventPayload } from '../ForceTouchGestureHandler';\nimport {\n HitSlop,\n CommonGestureConfig,\n GestureTouchEvent,\n GestureStateChangeEvent,\n GestureUpdateEvent,\n} from '../gestureHandlerCommon';\nimport { getNextHandlerTag } from '../handlersRegistry';\nimport { GestureStateManagerType } from './gestureStateManager';\nimport { LongPressGestureHandlerEventPayload } from '../LongPressGestureHandler';\nimport { PanGestureHandlerEventPayload } from '../PanGestureHandler';\nimport { PinchGestureHandlerEventPayload } from '../PinchGestureHandler';\nimport { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';\nimport { TapGestureHandlerEventPayload } from '../TapGestureHandler';\nimport { NativeViewGestureHandlerPayload } from '../NativeViewGestureHandler';\nimport { isRemoteDebuggingEnabled } from '../../utils';\n\nexport type GestureType =\n | BaseGesture<Record<string, unknown>>\n | BaseGesture<Record<string, never>>\n | BaseGesture<TapGestureHandlerEventPayload>\n | BaseGesture<PanGestureHandlerEventPayload>\n | BaseGesture<LongPressGestureHandlerEventPayload>\n | BaseGesture<RotationGestureHandlerEventPayload>\n | BaseGesture<PinchGestureHandlerEventPayload>\n | BaseGesture<FlingGestureHandlerEventPayload>\n | BaseGesture<ForceTouchGestureHandlerEventPayload>\n | BaseGesture<NativeViewGestureHandlerPayload>;\n\nexport type GestureRef =\n | number\n | GestureType\n | React.RefObject<GestureType | undefined>\n | React.RefObject<React.ComponentType | undefined>; // allow adding a ref to a gesture handler\nexport interface BaseGestureConfig\n extends CommonGestureConfig,\n Record<string, unknown> {\n ref?: React.MutableRefObject<GestureType | undefined>;\n requireToFail?: GestureRef[];\n simultaneousWith?: GestureRef[];\n needsPointerData?: boolean;\n manualActivation?: boolean;\n runOnJS?: boolean;\n testId?: string;\n cancelsTouchesInView?: boolean;\n}\n\ntype TouchEventHandlerType = (\n event: GestureTouchEvent,\n stateManager: GestureStateManagerType\n) => void;\n\nexport type HandlerCallbacks<EventPayloadT extends Record<string, unknown>> = {\n gestureId: number;\n handlerTag: number;\n onBegin?: (event: GestureStateChangeEvent<EventPayloadT>) => void;\n onStart?: (event: GestureStateChangeEvent<EventPayloadT>) => void;\n onEnd?: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void;\n onFinalize?: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void;\n onUpdate?: (event: GestureUpdateEvent<EventPayloadT>) => void;\n onChange?: (event: any) => void;\n onTouchesDown?: TouchEventHandlerType;\n onTouchesMove?: TouchEventHandlerType;\n onTouchesUp?: TouchEventHandlerType;\n onTouchesCancelled?: TouchEventHandlerType;\n changeEventCalculator?: (\n current: GestureUpdateEvent<Record<string, unknown>>,\n previous?: GestureUpdateEvent<Record<string, unknown>>\n ) => GestureUpdateEvent<Record<string, unknown>>;\n isWorklet: boolean[];\n};\n\nexport const CALLBACK_TYPE = {\n UNDEFINED: 0,\n BEGAN: 1,\n START: 2,\n UPDATE: 3,\n CHANGE: 4,\n END: 5,\n FINALIZE: 6,\n TOUCHES_DOWN: 7,\n TOUCHES_MOVE: 8,\n TOUCHES_UP: 9,\n TOUCHES_CANCELLED: 10,\n} as const;\n\n// Allow using CALLBACK_TYPE as object and type\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type CALLBACK_TYPE = typeof CALLBACK_TYPE[keyof typeof CALLBACK_TYPE];\n\nexport abstract class Gesture {\n /**\n * Return array of gestures, providing the same interface for creating and updating\n * handlers, no matter which object was used to create gesture instance.\n */\n abstract toGestureArray(): GestureType[];\n\n /**\n * Assign handlerTag to the gesture instance and set ref.current (if a ref is set)\n */\n abstract initialize(): void;\n\n /**\n * Make sure that values of properties defining relations are arrays. Do any necessary\n * preprocessing required to configure relations between handlers. Called just before\n * updating the handler on the native side.\n */\n abstract prepare(): void;\n}\n\nlet nextGestureId = 0;\nexport abstract class BaseGesture<\n EventPayloadT extends Record<string, unknown>\n> extends Gesture {\n private gestureId = -1;\n public handlerTag = -1;\n public handlerName = '';\n public config: BaseGestureConfig = {};\n public handlers: HandlerCallbacks<EventPayloadT> = {\n gestureId: -1,\n handlerTag: -1,\n isWorklet: [],\n };\n\n constructor() {\n super();\n\n // Used to check whether the gesture config has been updated when wrapping it\n // with `useMemo`. Since every config will have a unique id, when the dependencies\n // don't change, the config won't be recreated and the id will stay the same.\n // If the id is different, it means that the config has changed and the gesture\n // needs to be updated.\n this.gestureId = nextGestureId++;\n this.handlers.gestureId = this.gestureId;\n }\n\n private addDependency(\n key: 'simultaneousWith' | 'requireToFail',\n gesture: Exclude<GestureRef, number>\n ) {\n const value = this.config[key];\n this.config[key] = value\n ? Array<GestureRef>().concat(value, gesture)\n : [gesture];\n }\n\n withRef(ref: React.MutableRefObject<GestureType | undefined>) {\n this.config.ref = ref;\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n protected isWorklet(callback: Function) {\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n return callback.__workletHash !== undefined;\n }\n\n onBegin(callback: (event: GestureStateChangeEvent<EventPayloadT>) => void) {\n this.handlers.onBegin = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.BEGAN] = this.isWorklet(callback);\n return this;\n }\n\n onStart(callback: (event: GestureStateChangeEvent<EventPayloadT>) => void) {\n this.handlers.onStart = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.START] = this.isWorklet(callback);\n return this;\n }\n\n onEnd(\n callback: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void\n ) {\n this.handlers.onEnd = callback;\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n this.handlers.isWorklet[CALLBACK_TYPE.END] = this.isWorklet(callback);\n return this;\n }\n\n onFinalize(\n callback: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void\n ) {\n this.handlers.onFinalize = callback;\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n this.handlers.isWorklet[CALLBACK_TYPE.FINALIZE] = this.isWorklet(callback);\n return this;\n }\n\n onTouchesDown(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesDown = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_DOWN] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesMove(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesMove = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_MOVE] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesUp(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesUp = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_UP] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesCancelled(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesCancelled = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_CANCELLED] =\n this.isWorklet(callback);\n\n return this;\n }\n\n enabled(enabled: boolean) {\n this.config.enabled = enabled;\n return this;\n }\n\n shouldCancelWhenOutside(value: boolean) {\n this.config.shouldCancelWhenOutside = value;\n return this;\n }\n\n hitSlop(hitSlop: HitSlop) {\n this.config.hitSlop = hitSlop;\n return this;\n }\n\n runOnJS(runOnJS: boolean) {\n this.config.runOnJS = runOnJS;\n return this;\n }\n\n simultaneousWithExternalGesture(...gestures: Exclude<GestureRef, number>[]) {\n for (const gesture of gestures) {\n this.addDependency('simultaneousWith', gesture);\n }\n return this;\n }\n\n requireExternalGestureToFail(...gestures: Exclude<GestureRef, number>[]) {\n for (const gesture of gestures) {\n this.addDependency('requireToFail', gesture);\n }\n return this;\n }\n\n withTestId(id: string) {\n this.config.testId = id;\n return this;\n }\n\n cancelsTouchesInView(value: boolean) {\n this.config.cancelsTouchesInView = value;\n return this;\n }\n\n initialize() {\n this.handlerTag = getNextHandlerTag();\n\n this.handlers = { ...this.handlers, handlerTag: this.handlerTag };\n\n if (this.config.ref) {\n this.config.ref.current = this as GestureType;\n }\n }\n\n toGestureArray(): GestureType[] {\n return [this as GestureType];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n prepare() {}\n\n get shouldUseReanimated(): boolean {\n // use Reanimated when runOnJS isn't set explicitly,\n // and all defined callbacks are worklets,\n // and remote debugging is disabled\n return (\n this.config.runOnJS !== true &&\n !this.handlers.isWorklet.includes(false) &&\n !isRemoteDebuggingEnabled()\n );\n }\n}\n\nexport abstract class ContinousBaseGesture<\n EventPayloadT extends Record<string, unknown>,\n EventChangePayloadT extends Record<string, unknown>\n> extends BaseGesture<EventPayloadT> {\n onUpdate(callback: (event: GestureUpdateEvent<EventPayloadT>) => void) {\n this.handlers.onUpdate = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.UPDATE] = this.isWorklet(callback);\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<EventPayloadT & EventChangePayloadT>\n ) => void\n ) {\n this.handlers.onChange = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.CHANGE] = this.isWorklet(callback);\n return this;\n }\n\n manualActivation(manualActivation: boolean) {\n this.config.manualActivation = manualActivation;\n return this;\n }\n}\n","// Used by GestureDetector (unsupported on web at the moment) to check whether the\n// attached view may get flattened on Fabric. This implementation causes errors\n// on web due to the static resolution of `require` statements by webpack breaking\n// the conditional importing. Solved by making .web file.\nlet findHostInstance_DEPRECATED: (ref: any) => void;\n\nexport function getShadowNodeFromRef(ref: any) {\n // load findHostInstance_DEPRECATED lazily because it may not be available before render\n if (findHostInstance_DEPRECATED === undefined) {\n try {\n findHostInstance_DEPRECATED =\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;\n } catch (e) {\n findHostInstance_DEPRECATED = (_ref: any) => null;\n }\n }\n\n // @ts-ignore Fabric\n return findHostInstance_DEPRECATED(ref)._internalInstanceHandle.stateNode\n .node;\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nexport { default as RNRenderer } from 'react-native/Libraries/Renderer/shims/ReactNative';\n","import { Platform } from 'react-native';\n\nlet EXPERIMENTAL_WEB_IMPLEMENTATION = false;\nlet getWasCalled = false;\n\nexport function enableExperimentalWebImplementation(shouldEnable = true): void {\n if (\n Platform.OS !== 'web' ||\n EXPERIMENTAL_WEB_IMPLEMENTATION === shouldEnable\n ) {\n return;\n }\n\n if (getWasCalled) {\n console.error(\n 'Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.'\n );\n return;\n }\n\n EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;\n}\n\nexport function isExperimentalWebImplementationEnabled(): boolean {\n getWasCalled = true;\n return EXPERIMENTAL_WEB_IMPLEMENTATION;\n}\n","import { FlingGesture } from './flingGesture';\nimport { ForceTouchGesture } from './forceTouchGesture';\nimport { Gesture } from './gesture';\nimport {\n ComposedGesture,\n ExclusiveGesture,\n SimultaneousGesture,\n} from './gestureComposition';\nimport { LongPressGesture } from './longPressGesture';\nimport { PanGesture } from './panGesture';\nimport { PinchGesture } from './pinchGesture';\nimport { RotationGesture } from './rotationGesture';\nimport { TapGesture } from './tapGesture';\nimport { NativeGesture } from './nativeGesture';\nimport { ManualGesture } from './manualGesture';\n\nexport const GestureObjects = {\n Tap: () => {\n return new TapGesture();\n },\n\n Pan: () => {\n return new PanGesture();\n },\n\n Pinch: () => {\n return new PinchGesture();\n },\n\n Rotation: () => {\n return new RotationGesture();\n },\n\n Fling: () => {\n return new FlingGesture();\n },\n\n LongPress: () => {\n return new LongPressGesture();\n },\n\n ForceTouch: () => {\n return new ForceTouchGesture();\n },\n\n Native: () => {\n return new NativeGesture();\n },\n\n Manual: () => {\n return new ManualGesture();\n },\n\n /**\n * Builds a composed gesture consisting of gestures provided as parameters.\n * The first one that becomes active cancels the rest of gestures.\n */\n Race: (...gestures: Gesture[]) => {\n return new ComposedGesture(...gestures);\n },\n\n /**\n * Builds a composed gesture that allows all base gestures to run simultaneously.\n */\n Simultaneous(...gestures: Gesture[]) {\n return new SimultaneousGesture(...gestures);\n },\n\n /**\n * Builds a composed gesture where only one of the provided gestures can become active.\n * Priority is decided through the order of gestures: the first one has higher priority\n * than the second one, second one has higher priority than the third one, and so on.\n * For example, to make a gesture that recognizes both single and double tap you need\n * to call Exclusive(doubleTap, singleTap).\n */\n Exclusive(...gestures: Gesture[]) {\n return new ExclusiveGesture(...gestures);\n },\n};\n","import { BaseGesture, BaseGestureConfig } from './gesture';\nimport {\n FlingGestureConfig,\n FlingGestureHandlerEventPayload,\n} from '../FlingGestureHandler';\n\nexport class FlingGesture extends BaseGesture<FlingGestureHandlerEventPayload> {\n public config: BaseGestureConfig & FlingGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'FlingGestureHandler';\n }\n\n numberOfPointers(pointers: number) {\n this.config.numberOfPointers = pointers;\n return this;\n }\n\n direction(direction: number) {\n this.config.direction = direction;\n return this;\n }\n}\n\nexport type FlingGestureType = InstanceType<typeof FlingGesture>;\n","import { BaseGestureConfig, ContinousBaseGesture } from './gesture';\nimport {\n ForceTouchGestureConfig,\n ForceTouchGestureHandlerEventPayload,\n} from '../ForceTouchGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\nexport type ForceTouchGestureChangeEventPayload = {\n forceChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent<ForceTouchGestureHandlerEventPayload>,\n previous?: GestureUpdateEvent<ForceTouchGestureHandlerEventPayload>\n) {\n 'worklet';\n let changePayload: ForceTouchGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n forceChange: current.force,\n };\n } else {\n changePayload = {\n forceChange: current.force - previous.force,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class ForceTouchGesture extends ContinousBaseGesture<\n ForceTouchGestureHandlerEventPayload,\n ForceTouchGestureChangeEventPayload\n> {\n public config: BaseGestureConfig & ForceTouchGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'ForceTouchGestureHandler';\n }\n\n minForce(force: number) {\n this.config.minForce = force;\n return this;\n }\n\n maxForce(force: number) {\n this.config.maxForce = force;\n return this;\n }\n\n feedbackOnActivation(value: boolean) {\n this.config.feedbackOnActivation = value;\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n GestureUpdateEvent<\n ForceTouchGestureHandlerEventPayload &\n ForceTouchGestureChangeEventPayload\n >\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, ForceTouchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type ForceTouchGestureType = InstanceType<typeof ForceTouchGesture>;\n","import { BaseGesture, Gesture, GestureRef, GestureType } from './gesture';\n\nfunction extendRelation(\n currentRelation: GestureRef[] | undefined,\n extendWith: GestureType[]\n) {\n if (currentRelation === undefined) {\n return [...extendWith];\n } else {\n return [...currentRelation, ...extendWith];\n }\n}\n\nexport class ComposedGesture extends Gesture {\n protected gestures: Gesture[] = [];\n protected simultaneousGestures: GestureType[] = [];\n protected requireGesturesToFail: GestureType[] = [];\n\n constructor(...gestures: Gesture[]) {\n super();\n this.gestures = gestures;\n }\n\n protected prepareSingleGesture(\n gesture: Gesture,\n simultaneousGestures: GestureType[],\n requireGesturesToFail: GestureType[]\n ) {\n if (gesture instanceof BaseGesture) {\n const newConfig = { ...gesture.config };\n\n newConfig.simultaneousWith = extendRelation(\n newConfig.simultaneousWith,\n simultaneousGestures\n );\n newConfig.requireToFail = extendRelation(\n newConfig.requireToFail,\n requireGesturesToFail\n );\n\n gesture.config = newConfig;\n } else if (gesture instanceof ComposedGesture) {\n gesture.simultaneousGestures = simultaneousGestures;\n gesture.requireGesturesToFail = requireGesturesToFail;\n gesture.prepare();\n }\n }\n\n prepare() {\n for (const gesture of this.gestures) {\n this.prepareSingleGesture(\n gesture,\n this.simultaneousGestures,\n this.requireGesturesToFail\n );\n }\n }\n\n initialize() {\n for (const gesture of this.gestures) {\n gesture.initialize();\n }\n }\n\n toGestureArray(): GestureType[] {\n return this.gestures.flatMap((gesture) => gesture.toGestureArray());\n }\n}\n\nexport class SimultaneousGesture extends ComposedGesture {\n prepare() {\n // this piece of magic works something like this:\n // for every gesture in the array\n const simultaneousArrays = this.gestures.map((gesture) =>\n // we take the array it's in\n this.gestures\n // and make a copy without it\n .filter((x) => x !== gesture)\n // then we flatmap the result to get list of raw (not composed) gestures\n // this way we don't make the gestures simultaneous with themselves, which is\n // important when the gesture is `ExclusiveGesture` - we don't want to make\n // exclusive gestures simultaneous\n .flatMap((x) => x.toGestureArray())\n );\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(\n this.gestures[i],\n simultaneousArrays[i],\n this.requireGesturesToFail\n );\n }\n }\n}\n\nexport class ExclusiveGesture extends ComposedGesture {\n prepare() {\n // transforms the array of gestures into array of grouped raw (not composed) gestures\n // i.e. [gesture1, gesture2, ComposedGesture(gesture3, gesture4)] -> [[gesture1], [gesture2], [gesture3, gesture4]]\n const gestureArrays = this.gestures.map((gesture) =>\n gesture.toGestureArray()\n );\n\n let requireToFail: GestureType[] = [];\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(\n this.gestures[i],\n this.simultaneousGestures,\n this.requireGesturesToFail.concat(requireToFail)\n );\n\n // every group gets to wait for all groups before it\n requireToFail = requireToFail.concat(gestureArrays[i]);\n }\n }\n}\n\nexport type ComposedGestureType = InstanceType<typeof ComposedGesture>;\nexport type RaceGestureType = ComposedGestureType;\nexport type SimultaneousGestureType = InstanceType<typeof SimultaneousGesture>;\nexport type ExclusiveGestureType = InstanceType<typeof ExclusiveGesture>;\n","import { BaseGesture, BaseGestureConfig } from './gesture';\nimport {\n LongPressGestureConfig,\n LongPressGestureHandlerEventPayload,\n} from '../LongPressGestureHandler';\n\nexport class LongPressGesture extends BaseGesture<LongPressGestureHandlerEventPayload> {\n public config: BaseGestureConfig & LongPressGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'LongPressGestureHandler';\n this.shouldCancelWhenOutside(true);\n }\n\n minDuration(duration: number) {\n this.config.minDurationMs = duration;\n return this;\n }\n\n maxDistance(distance: number) {\n this.config.maxDist = distance;\n return this;\n }\n}\n\nexport type LongPressGestureType = InstanceType<typeof LongPressGesture>;\n","import { BaseGestureConfig, ContinousBaseGesture } from './gesture';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\nimport {\n PanGestureConfig,\n PanGestureHandlerEventPayload,\n} from '../PanGestureHandler';\n\nexport type PanGestureChangeEventPayload = {\n changeX: number;\n changeY: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent<PanGestureHandlerEventPayload>,\n previous?: GestureUpdateEvent<PanGestureHandlerEventPayload>\n) {\n 'worklet';\n let changePayload: PanGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n changeX: current.translationX,\n changeY: current.translationY,\n };\n } else {\n changePayload = {\n changeX: current.translationX - previous.translationX,\n changeY: current.translationY - previous.translationY,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class PanGesture extends ContinousBaseGesture<\n PanGestureHandlerEventPayload,\n PanGestureChangeEventPayload\n> {\n public config: BaseGestureConfig & PanGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'PanGestureHandler';\n }\n\n activeOffsetY(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.activeOffsetYStart = offset[0];\n this.config.activeOffsetYEnd = offset[1];\n } else if (offset < 0) {\n this.config.activeOffsetYStart = offset;\n } else {\n this.config.activeOffsetYEnd = offset;\n }\n return this;\n }\n\n activeOffsetX(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.activeOffsetXStart = offset[0];\n this.config.activeOffsetXEnd = offset[1];\n } else if (offset < 0) {\n this.config.activeOffsetXStart = offset;\n } else {\n this.config.activeOffsetXEnd = offset;\n }\n return this;\n }\n\n failOffsetY(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.failOffsetYStart = offset[0];\n this.config.failOffsetYEnd = offset[1];\n } else if (offset < 0) {\n this.config.failOffsetYStart = offset;\n } else {\n this.config.failOffsetYEnd = offset;\n }\n return this;\n }\n\n failOffsetX(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.failOffsetXStart = offset[0];\n this.config.failOffsetXEnd = offset[1];\n } else if (offset < 0) {\n this.config.failOffsetXStart = offset;\n } else {\n this.config.failOffsetXEnd = offset;\n }\n return this;\n }\n\n minPointers(minPointers: number) {\n this.config.minPointers = minPointers;\n return this;\n }\n\n maxPointers(maxPointers: number) {\n this.config.maxPointers = maxPointers;\n return this;\n }\n\n minDistance(distance: number) {\n this.config.minDist = distance;\n return this;\n }\n\n minVelocity(velocity: number) {\n this.config.minVelocity = velocity;\n return this;\n }\n\n minVelocityX(velocity: number) {\n this.config.minVelocityX = velocity;\n return this;\n }\n\n minVelocityY(velocity: number) {\n this.config.minVelocityY = velocity;\n return this;\n }\n\n averageTouches(value: boolean) {\n this.config.avgTouches = value;\n return this;\n }\n\n enableTrackpadTwoFingerGesture(value: boolean) {\n this.config.enableTrackpadTwoFingerGesture = value;\n return this;\n }\n\n activateAfterLongPress(duration: number) {\n this.config.activateAfterLongPress = duration;\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n PanGestureHandlerEventPayload & PanGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, PanGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type PanGestureType = InstanceType<typeof PanGesture>;\n","import { ContinousBaseGesture } from './gesture';\nimport { PinchGestureHandlerEventPayload } from '../PinchGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\nexport type PinchGestureChangeEventPayload = {\n scaleChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent<PinchGestureHandlerEventPayload>,\n previous?: GestureUpdateEvent<PinchGestureHandlerEventPayload>\n) {\n 'worklet';\n let changePayload: PinchGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n scaleChange: current.scale,\n };\n } else {\n changePayload = {\n scaleChange: current.scale / previous.scale,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class PinchGesture extends ContinousBaseGesture<\n PinchGestureHandlerEventPayload,\n PinchGestureChangeEventPayload\n> {\n constructor() {\n super();\n\n this.handlerName = 'PinchGestureHandler';\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n PinchGestureHandlerEventPayload & PinchGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, PinchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type PinchGestureType = InstanceType<typeof PinchGesture>;\n","import { ContinousBaseGesture } from './gesture';\nimport { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\ntype RotationGestureChangeEventPayload = {\n rotationChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent<RotationGestureHandlerEventPayload>,\n previous?: GestureUpdateEvent<RotationGestureHandlerEventPayload>\n) {\n 'worklet';\n let changePayload: RotationGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n rotationChange: current.rotation,\n };\n } else {\n changePayload = {\n rotationChange: current.rotation - previous.rotation,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class RotationGesture extends ContinousBaseGesture<\n RotationGestureHandlerEventPayload,\n RotationGestureChangeEventPayload\n> {\n constructor() {\n super();\n\n this.handlerName = 'RotationGestureHandler';\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n RotationGestureHandlerEventPayload & RotationGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, RotationGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type RotationGestureType = InstanceType<typeof RotationGesture>;\n","import { BaseGestureConfig, BaseGesture } from './gesture';\nimport {\n TapGestureConfig,\n TapGestureHandlerEventPayload,\n} from '../TapGestureHandler';\n\nexport class TapGesture extends BaseGesture<TapGestureHandlerEventPayload> {\n public config: BaseGestureConfig & TapGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'TapGestureHandler';\n this.shouldCancelWhenOutside(true);\n }\n\n minPointers(minPointers: number) {\n this.config.minPointers = minPointers;\n return this;\n }\n\n numberOfTaps(count: number) {\n this.config.numberOfTaps = count;\n return this;\n }\n\n maxDistance(maxDist: number) {\n this.config.maxDist = maxDist;\n return this;\n }\n\n maxDuration(duration: number) {\n this.config.maxDurationMs = duration;\n return this;\n }\n\n maxDelay(delay: number) {\n this.config.maxDelayMs = delay;\n return this;\n }\n\n maxDeltaX(delta: number) {\n this.config.maxDeltaX = delta;\n return this;\n }\n\n maxDeltaY(delta: number) {\n this.config.maxDeltaY = delta;\n return this;\n }\n}\n\nexport type TapGestureType = InstanceType<typeof TapGesture>;\n","import { BaseGestureConfig, BaseGesture } from './gesture';\nimport {\n NativeViewGestureConfig,\n NativeViewGestureHandlerPayload,\n} from '../NativeViewGestureHandler';\n\nexport class NativeGesture extends BaseGesture<NativeViewGestureHandlerPayload> {\n public config: BaseGestureConfig & NativeViewGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'NativeViewGestureHandler';\n }\n\n shouldActivateOnStart(value: boolean) {\n this.config.shouldActivateOnStart = value;\n return this;\n }\n\n disallowInterruption(value: boolean) {\n this.config.disallowInterruption = value;\n return this;\n }\n}\n\nexport type NativeGestureType = InstanceType<typeof NativeGesture>;\n","import { GestureUpdateEvent } from '../gestureHandlerCommon';\nimport { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent<Record<string, never>>,\n _previous?: GestureUpdateEvent<Record<string, never>>\n) {\n 'worklet';\n return current;\n}\n\nexport class ManualGesture extends ContinousBaseGesture<\n Record<string, never>,\n Record<string, never>\n> {\n constructor() {\n super();\n\n this.handlerName = 'ManualGestureHandler';\n }\n\n onChange(\n callback: (event: GestureUpdateEvent<Record<string, never>>) => void\n ) {\n // @ts-ignore TS being overprotective, Record<string, never> is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type ManualGestureType = InstanceType<typeof ManualGesture>;\n","import * as React from 'react';\nimport {\n Animated,\n Platform,\n processColor,\n StyleSheet,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\nimport GestureHandlerButton from './GestureHandlerButton';\nimport { State } from '../State';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n NativeViewGestureHandlerPayload,\n NativeViewGestureHandlerProps,\n} from '../handlers/NativeViewGestureHandler';\n\nexport interface RawButtonProps extends NativeViewGestureHandlerProps {\n /**\n * Defines if more than one button could be pressed simultaneously. By default\n * set true.\n */\n exclusive?: boolean;\n // TODO: we should transform props in `createNativeWrapper`\n\n /**\n * Android only.\n *\n * Defines color of native ripple animation used since API level 21.\n */\n rippleColor?: any; // it was present in BaseButtonProps before but is used here in code\n\n /**\n * Android only.\n *\n * Defines radius of native ripple animation used since API level 21.\n */\n rippleRadius?: number | null;\n\n /**\n * Android only.\n *\n * Set this to true if you want the ripple animation to render outside the view bounds.\n */\n borderless?: boolean;\n\n /**\n * Android only.\n *\n * Defines whether the ripple animation should be drawn on the foreground of the view.\n */\n foreground?: boolean;\n\n /**\n * Android only.\n *\n * Set this to true if you don't want the system to play sound when the button is pressed.\n */\n touchSoundDisabled?: boolean;\n}\n\nexport interface BaseButtonProps extends RawButtonProps {\n /**\n * Called when the button gets pressed (analogous to `onPress` in\n * `TouchableHighlight` from RN core).\n */\n onPress?: (pointerInside: boolean) => void;\n\n /**\n * Called when the button gets pressed and is held for `delayLongPress`\n * milliseconds.\n */\n onLongPress?: () => void;\n\n /**\n * Called when button changes from inactive to active and vice versa. It\n * passes active state as a boolean variable as a first parameter for that\n * method.\n */\n onActiveStateChange?: (active: boolean) => void;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n\n /**\n * Delay, in milliseconds, after which the `onLongPress` callback gets called.\n * Defaults to 600.\n */\n delayLongPress?: number;\n}\n\nexport interface RectButtonProps extends BaseButtonProps {\n /**\n * Background color that will be dimmed when button is in active state.\n */\n underlayColor?: string;\n\n /**\n * iOS only.\n *\n * Opacity applied to the underlay when button is in active state.\n */\n activeOpacity?: number;\n}\n\nexport interface BorderlessButtonProps extends BaseButtonProps {\n /**\n * iOS only.\n *\n * Opacity applied to the button when it is in an active state.\n */\n activeOpacity?: number;\n}\n\nexport const RawButton = createNativeWrapper(GestureHandlerButton, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: false,\n});\n\nexport class BaseButton extends React.Component<BaseButtonProps> {\n static defaultProps = {\n delayLongPress: 600,\n };\n\n private lastActive: boolean;\n private longPressTimeout: ReturnType<typeof setTimeout> | undefined;\n private longPressDetected: boolean;\n\n constructor(props: BaseButtonProps) {\n super(props);\n this.lastActive = false;\n this.longPressDetected = false;\n }\n\n private handleEvent = ({\n nativeEvent,\n }: HandlerStateChangeEvent<NativeViewGestureHandlerPayload>) => {\n const { state, oldState, pointerInside } = nativeEvent;\n const active = pointerInside && state === State.ACTIVE;\n\n if (active !== this.lastActive && this.props.onActiveStateChange) {\n this.props.onActiveStateChange(active);\n }\n\n if (\n !this.longPressDetected &&\n oldState === State.ACTIVE &&\n state !== State.CANCELLED &&\n this.lastActive &&\n this.props.onPress\n ) {\n this.props.onPress(active);\n }\n\n if (\n !this.lastActive &&\n // NativeViewGestureHandler sends different events based on platform\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&\n pointerInside\n ) {\n this.longPressDetected = false;\n if (this.props.onLongPress) {\n this.longPressTimeout = setTimeout(\n this.onLongPress,\n this.props.delayLongPress\n );\n }\n } else if (\n // cancel longpress timeout if it's set and the finger moved out of the view\n state === State.ACTIVE &&\n !pointerInside &&\n this.longPressTimeout !== undefined\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n } else if (\n // cancel longpress timeout if it's set and the gesture has finished\n this.longPressTimeout !== undefined &&\n (state === State.END ||\n state === State.CANCELLED ||\n state === State.FAILED)\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n }\n\n this.lastActive = active;\n };\n\n private onLongPress = () => {\n this.longPressDetected = true;\n this.props.onLongPress?.();\n };\n\n // Normally, the parent would execute it's handler first, then forward the\n // event to listeners. However, here our handler is virtually only forwarding\n // events to listeners, so we reverse the order to keep the proper order of\n // the callbacks (from \"raw\" ones to \"processed\").\n private onHandlerStateChange = (\n e: HandlerStateChangeEvent<NativeViewGestureHandlerPayload>\n ) => {\n this.props.onHandlerStateChange?.(e);\n this.handleEvent(e);\n };\n\n private onGestureEvent = (\n e: GestureEvent<NativeViewGestureHandlerPayload>\n ) => {\n this.props.onGestureEvent?.(e);\n this.handleEvent(\n e as HandlerStateChangeEvent<NativeViewGestureHandlerPayload>\n ); // TODO: maybe it is not correct\n };\n\n render() {\n const { rippleColor, ...rest } = this.props;\n\n return (\n <RawButton\n rippleColor={processColor(rippleColor)}\n {...rest}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.onHandlerStateChange}\n />\n );\n }\n}\n\nconst AnimatedBaseButton = Animated.createAnimatedComponent(BaseButton);\n\nconst btnStyles = StyleSheet.create({\n underlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n top: 0,\n },\n});\n\nexport class RectButton extends React.Component<RectButtonProps> {\n static defaultProps = {\n activeOpacity: 0.105,\n underlayColor: 'black',\n };\n\n private opacity: Animated.Value;\n\n constructor(props: RectButtonProps) {\n super(props);\n this.opacity = new Animated.Value(0);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 0);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, ...rest } = this.props;\n\n const resolvedStyle = StyleSheet.flatten(style ?? {});\n\n return (\n <BaseButton\n {...rest}\n style={resolvedStyle}\n onActiveStateChange={this.onActiveStateChange}>\n <Animated.View\n style={[\n btnStyles.underlay,\n {\n opacity: this.opacity,\n backgroundColor: this.props.underlayColor,\n borderRadius: resolvedStyle.borderRadius,\n borderTopLeftRadius: resolvedStyle.borderTopLeftRadius,\n borderTopRightRadius: resolvedStyle.borderTopRightRadius,\n borderBottomLeftRadius: resolvedStyle.borderBottomLeftRadius,\n borderBottomRightRadius: resolvedStyle.borderBottomRightRadius,\n },\n ]}\n />\n {children}\n </BaseButton>\n );\n }\n}\n\nexport class BorderlessButton extends React.Component<BorderlessButtonProps> {\n static defaultProps = {\n activeOpacity: 0.3,\n borderless: true,\n };\n\n private opacity: Animated.Value;\n\n constructor(props: BorderlessButtonProps) {\n super(props);\n this.opacity = new Animated.Value(1);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 1);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, ...rest } = this.props;\n\n return (\n <AnimatedBaseButton\n {...rest}\n onActiveStateChange={this.onActiveStateChange}\n style={[style, Platform.OS === 'ios' && { opacity: this.opacity }]}>\n {children}\n </AnimatedBaseButton>\n );\n }\n}\n\nexport { default as PureNativeButton } from './GestureHandlerButton';\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport { HostComponent, requireNativeComponent } from 'react-native';\nimport { RawButtonProps } from './GestureButtons';\nimport { shouldUseCodegenNativeComponent } from '../utils';\n\nconst RNGestureHandlerButtonNativeComponent = shouldUseCodegenNativeComponent()\n ? require('../fabric/RNGestureHandlerButtonNativeComponent').default\n : requireNativeComponent('RNGestureHandlerButton');\n\nexport default RNGestureHandlerButtonNativeComponent as HostComponent<RawButtonProps>;\n","import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type {\n Int32,\n WithDefault,\n} from 'react-native/Libraries/Types/CodegenTypes';\nimport type { ViewProps, ColorValue } from 'react-native';\n\ninterface NativeProps extends ViewProps {\n exclusive?: WithDefault<boolean, true>;\n foreground?: boolean;\n borderless?: boolean;\n enabled?: WithDefault<boolean, true>;\n rippleColor?: ColorValue;\n rippleRadius?: Int32;\n touchSoundDisabled?: WithDefault<boolean, false>;\n}\n\nexport default codegenNativeComponent<NativeProps>('RNGestureHandlerButton');\n","export { default as TouchableNativeFeedback } from './TouchableNativeFeedback';\nexport { default as TouchableWithoutFeedback } from './TouchableWithoutFeedback';\nexport { default as TouchableOpacity } from './TouchableOpacity';\nexport { default as TouchableHighlight } from './TouchableHighlight';\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport GenericTouchable, { GenericTouchableProps } from './GenericTouchable';\n\nconst TouchableWithoutFeedback = React.forwardRef<\n GenericTouchable,\n PropsWithChildren<GenericTouchableProps>\n>((props, ref) => <GenericTouchable ref={ref} {...props} />);\n\nTouchableWithoutFeedback.defaultProps = GenericTouchable.defaultProps;\n\nexport default TouchableWithoutFeedback;\n","import * as React from 'react';\nimport { Component } from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n ViewStyle,\n TouchableWithoutFeedbackProps,\n} from 'react-native';\n\nimport { State } from '../../State';\nimport { BaseButton } from '../GestureButtons';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../../handlers/gestureHandlerCommon';\nimport { NativeViewGestureHandlerPayload } from '../../handlers/NativeViewGestureHandler';\nimport { TouchableNativeFeedbackExtraProps } from './TouchableNativeFeedback.android';\n\n/**\n * Each touchable is a states' machine which preforms transitions.\n * On very beginning (and on the very end or recognition) touchable is\n * UNDETERMINED. Then it moves to BEGAN. If touchable recognizes that finger\n * travel outside it transits to special MOVED_OUTSIDE state. Gesture recognition\n * finishes in UNDETERMINED state.\n */\nexport const TOUCHABLE_STATE = {\n UNDETERMINED: 0,\n BEGAN: 1,\n MOVED_OUTSIDE: 2,\n} as const;\n\ntype TouchableState = typeof TOUCHABLE_STATE[keyof typeof TOUCHABLE_STATE];\n\nexport interface GenericTouchableProps extends TouchableWithoutFeedbackProps {\n // Decided to drop not used fields from RN's implementation.\n // e.g. onBlur and onFocus as well as deprecated props. - TODO: this comment may be unuseful in this moment\n\n // TODO: in RN these events get native event parameter, which prolly could be used in our implementation too\n onPress?: () => void;\n onPressIn?: () => void;\n onPressOut?: () => void;\n onLongPress?: () => void;\n\n nativeID?: string;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n\n containerStyle?: StyleProp<ViewStyle>;\n}\n\ninterface InternalProps {\n extraButtonProps: TouchableNativeFeedbackExtraProps;\n onStateChange?: (oldState: TouchableState, newState: TouchableState) => void;\n}\n\n// TODO: maybe can be better\n// TODO: all clearTimeout have ! added, maybe they shouldn't ?\ntype Timeout = ReturnType<typeof setTimeout> | null | undefined;\n\n/**\n * GenericTouchable is not intented to be used as it is.\n * Should be treated as a source for the rest of touchables\n */\n\nexport default class GenericTouchable extends Component<\n GenericTouchableProps & InternalProps\n> {\n static defaultProps = {\n delayLongPress: 600,\n extraButtonProps: {\n rippleColor: 'transparent',\n exclusive: true,\n },\n };\n\n // timeout handlers\n pressInTimeout: Timeout;\n pressOutTimeout: Timeout;\n longPressTimeout: Timeout;\n\n // This flag is required since recognition of longPress implies not-invoking onPress\n longPressDetected = false;\n\n pointerInside = true;\n\n // State of touchable\n STATE: TouchableState = TOUCHABLE_STATE.UNDETERMINED;\n\n // handlePressIn in called on first touch on traveling inside component.\n // Handles state transition with delay.\n handlePressIn() {\n if (this.props.delayPressIn) {\n this.pressInTimeout = setTimeout(() => {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n this.pressInTimeout = null;\n }, this.props.delayPressIn);\n } else {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n if (this.props.onLongPress) {\n const time =\n (this.props.delayPressIn || 0) + (this.props.delayLongPress || 0);\n this.longPressTimeout = setTimeout(this.onLongPressDetected, time);\n }\n }\n // handleMoveOutside in called on traveling outside component.\n // Handles state transition with delay.\n handleMoveOutside() {\n if (this.props.delayPressOut) {\n this.pressOutTimeout =\n this.pressOutTimeout ||\n setTimeout(() => {\n this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);\n this.pressOutTimeout = null;\n }, this.props.delayPressOut);\n } else {\n this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);\n }\n }\n\n // handleGoToUndetermined transits to UNDETERMINED state with proper delay\n handleGoToUndetermined() {\n clearTimeout(this.pressOutTimeout!); // TODO: maybe it can be undefined\n if (this.props.delayPressOut) {\n this.pressOutTimeout = setTimeout(() => {\n if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n this.pressOutTimeout = null;\n }, this.props.delayPressOut);\n } else {\n if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n }\n }\n\n componentDidMount() {\n this.reset();\n }\n // reset timeout to prevent memory leaks.\n reset() {\n this.longPressDetected = false;\n this.pointerInside = true;\n clearTimeout(this.pressInTimeout!);\n clearTimeout(this.pressOutTimeout!);\n clearTimeout(this.longPressTimeout!);\n this.pressOutTimeout = null;\n this.longPressTimeout = null;\n this.pressInTimeout = null;\n }\n\n // All states' transitions are defined here.\n moveToState(newState: TouchableState) {\n if (newState === this.STATE) {\n // Ignore dummy transitions\n return;\n }\n if (newState === TOUCHABLE_STATE.BEGAN) {\n // First touch and moving inside\n this.props.onPressIn?.();\n } else if (newState === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n // Moving outside\n this.props.onPressOut?.();\n } else if (newState === TOUCHABLE_STATE.UNDETERMINED) {\n // Need to reset each time on transition to UNDETERMINED\n this.reset();\n if (this.STATE === TOUCHABLE_STATE.BEGAN) {\n // ... and if it happens inside button.\n this.props.onPressOut?.();\n }\n }\n // Finally call lister (used by subclasses)\n this.props.onStateChange?.(this.STATE, newState);\n // ... and make transition.\n this.STATE = newState;\n }\n\n onGestureEvent = ({\n nativeEvent: { pointerInside },\n }: GestureEvent<NativeViewGestureHandlerPayload>) => {\n if (this.pointerInside !== pointerInside) {\n if (pointerInside) {\n this.onMoveIn();\n } else {\n this.onMoveOut();\n }\n }\n this.pointerInside = pointerInside;\n };\n\n onHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<NativeViewGestureHandlerPayload>) => {\n const { state } = nativeEvent;\n if (state === State.CANCELLED || state === State.FAILED) {\n // Need to handle case with external cancellation (e.g. by ScrollView)\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n } else if (\n // This platform check is an implication of slightly different behavior of handlers on different platform.\n // And Android \"Active\" state is achieving on first move of a finger, not on press in.\n // On iOS event on \"Began\" is not delivered.\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&\n this.STATE === TOUCHABLE_STATE.UNDETERMINED\n ) {\n // Moving inside requires\n this.handlePressIn();\n } else if (state === State.END) {\n const shouldCallOnPress =\n !this.longPressDetected &&\n this.STATE !== TOUCHABLE_STATE.MOVED_OUTSIDE &&\n this.pressOutTimeout === null;\n this.handleGoToUndetermined();\n if (shouldCallOnPress) {\n // Calls only inside component whether no long press was called previously\n this.props.onPress?.();\n }\n }\n };\n\n onLongPressDetected = () => {\n this.longPressDetected = true;\n // checked for in the caller of `onLongPressDetected`, but better to check twice\n this.props.onLongPress?.();\n };\n\n componentWillUnmount() {\n // to prevent memory leaks\n this.reset();\n }\n\n onMoveIn() {\n if (this.STATE === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n // This call is not throttled with delays (like in RN's implementation).\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n }\n\n onMoveOut() {\n // long press should no longer be detected\n clearTimeout(this.longPressTimeout!);\n this.longPressTimeout = null;\n if (this.STATE === TOUCHABLE_STATE.BEGAN) {\n this.handleMoveOutside();\n }\n }\n\n render() {\n const coreProps = {\n accessible: this.props.accessible !== false,\n accessibilityLabel: this.props.accessibilityLabel,\n accessibilityHint: this.props.accessibilityHint,\n accessibilityRole: this.props.accessibilityRole,\n // TODO: check if changed to no 's' correctly, also removed 2 props that are no longer available: `accessibilityComponentType` and `accessibilityTraits`,\n // would be good to check if it is ok for sure, see: https://github.com/facebook/react-native/issues/24016\n accessibilityState: this.props.accessibilityState,\n accessibilityActions: this.props.accessibilityActions,\n onAccessibilityAction: this.props.onAccessibilityAction,\n nativeID: this.props.nativeID,\n onLayout: this.props.onLayout,\n hitSlop: this.props.hitSlop,\n };\n\n return (\n <BaseButton\n style={this.props.containerStyle}\n onHandlerStateChange={\n // TODO: not sure if it can be undefined instead of null\n this.props.disabled ? undefined : this.onHandlerStateChange\n }\n onGestureEvent={this.onGestureEvent}\n hitSlop={this.props.hitSlop}\n shouldActivateOnStart={this.props.shouldActivateOnStart}\n disallowInterruption={this.props.disallowInterruption}\n testID={this.props.testID}\n touchSoundDisabled={this.props.touchSoundDisabled ?? false}\n enabled={!this.props.disabled}\n {...this.props.extraButtonProps}>\n <Animated.View {...coreProps} style={this.props.style}>\n {this.props.children}\n </Animated.View>\n </BaseButton>\n );\n }\n}\n","import {\n Animated,\n Easing,\n StyleSheet,\n View,\n TouchableOpacityProps,\n} from 'react-native';\nimport GenericTouchable, {\n TOUCHABLE_STATE,\n GenericTouchableProps,\n} from './GenericTouchable';\nimport * as React from 'react';\nimport { Component } from 'react';\n\ninterface GHTouchableOpacityProps {\n useNativeAnimations?: boolean;\n}\n\n/**\n * TouchableOpacity bases on timing animation which has been used in RN's core\n */\nexport default class TouchableOpacity extends Component<\n TouchableOpacityProps & GenericTouchableProps & GHTouchableOpacityProps\n> {\n static defaultProps = {\n ...GenericTouchable.defaultProps,\n activeOpacity: 0.2,\n };\n\n // opacity is 1 one by default but could be overwritten\n getChildStyleOpacityWithDefault = () => {\n const childStyle = StyleSheet.flatten(this.props.style) || {};\n return childStyle.opacity == null ? 1 : childStyle.opacity;\n };\n\n opacity = new Animated.Value(this.getChildStyleOpacityWithDefault());\n\n setOpacityTo = (value: number, duration: number) => {\n Animated.timing(this.opacity, {\n toValue: value,\n duration: duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: this.props.useNativeAnimations ?? true,\n }).start();\n };\n\n onStateChange = (_from: number, to: number) => {\n if (to === TOUCHABLE_STATE.BEGAN) {\n this.setOpacityTo(this.props.activeOpacity!, 0);\n } else if (\n to === TOUCHABLE_STATE.UNDETERMINED ||\n to === TOUCHABLE_STATE.MOVED_OUTSIDE\n ) {\n this.setOpacityTo(this.getChildStyleOpacityWithDefault(), 150);\n }\n };\n\n render() {\n const { style = {}, ...rest } = this.props;\n return (\n <GenericTouchable\n {...rest}\n style={[\n style,\n {\n opacity: this.opacity as unknown as number, // TODO: fix this\n },\n ]}\n onStateChange={this.onStateChange}>\n {this.props.children ? this.props.children : <View />}\n </GenericTouchable>\n );\n }\n}\n","import * as React from 'react';\nimport { Component } from 'react';\nimport GenericTouchable, {\n GenericTouchableProps,\n TOUCHABLE_STATE,\n} from './GenericTouchable';\nimport {\n StyleSheet,\n View,\n TouchableHighlightProps,\n ColorValue,\n ViewProps,\n} from 'react-native';\n\ninterface State {\n extraChildStyle: null | {\n opacity?: number;\n };\n extraUnderlayStyle: null | {\n backgroundColor?: ColorValue;\n };\n}\n\n/**\n * TouchableHighlight follows RN's implementation\n */\nexport default class TouchableHighlight extends Component<\n TouchableHighlightProps & GenericTouchableProps,\n State\n> {\n static defaultProps = {\n ...GenericTouchable.defaultProps,\n activeOpacity: 0.85,\n delayPressOut: 100,\n underlayColor: 'black',\n };\n\n constructor(props: TouchableHighlightProps & GenericTouchableProps) {\n super(props);\n this.state = {\n extraChildStyle: null,\n extraUnderlayStyle: null,\n };\n }\n\n // Copied from RN\n showUnderlay = () => {\n if (!this.hasPressHandler()) {\n return;\n }\n this.setState({\n extraChildStyle: {\n opacity: this.props.activeOpacity,\n },\n extraUnderlayStyle: {\n backgroundColor: this.props.underlayColor,\n },\n });\n this.props.onShowUnderlay?.();\n };\n\n hasPressHandler = () =>\n this.props.onPress ||\n this.props.onPressIn ||\n this.props.onPressOut ||\n this.props.onLongPress;\n\n hideUnderlay = () => {\n this.setState({\n extraChildStyle: null,\n extraUnderlayStyle: null,\n });\n this.props.onHideUnderlay?.();\n };\n\n renderChildren() {\n if (!this.props.children) {\n return <View />;\n }\n\n const child = React.Children.only(\n this.props.children\n ) as React.ReactElement<ViewProps>; // TODO: not sure if OK but fixes error\n return React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, this.state.extraChildStyle),\n });\n }\n\n onStateChange = (_from: number, to: number) => {\n if (to === TOUCHABLE_STATE.BEGAN) {\n this.showUnderlay();\n } else if (\n to === TOUCHABLE_STATE.UNDETERMINED ||\n to === TOUCHABLE_STATE.MOVED_OUTSIDE\n ) {\n this.hideUnderlay();\n }\n };\n\n render() {\n const { style = {}, ...rest } = this.props;\n const { extraUnderlayStyle } = this.state;\n return (\n <GenericTouchable\n {...rest}\n style={[style, extraUnderlayStyle]}\n onStateChange={this.onStateChange}>\n {this.renderChildren()}\n </GenericTouchable>\n );\n }\n}\n","import * as React from 'react';\nimport {\n PropsWithChildren,\n ForwardedRef,\n RefAttributes,\n ReactElement,\n} from 'react';\nimport {\n ScrollView as RNScrollView,\n ScrollViewProps as RNScrollViewProps,\n Switch as RNSwitch,\n SwitchProps as RNSwitchProps,\n TextInput as RNTextInput,\n TextInputProps as RNTextInputProps,\n DrawerLayoutAndroid as RNDrawerLayoutAndroid,\n DrawerLayoutAndroidProps as RNDrawerLayoutAndroidProps,\n FlatList as RNFlatList,\n FlatListProps as RNFlatListProps,\n RefreshControl as RNRefreshControl,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\n\nimport {\n NativeViewGestureHandlerProps,\n nativeViewProps,\n} from '../handlers/NativeViewGestureHandler';\n\nimport { toArray } from '../utils';\n\nexport const RefreshControl = createNativeWrapper(RNRefreshControl, {\n disallowInterruption: true,\n shouldCancelWhenOutside: false,\n});\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type RefreshControl = typeof RefreshControl & RNRefreshControl;\n\nconst GHScrollView = createNativeWrapper<PropsWithChildren<RNScrollViewProps>>(\n RNScrollView,\n {\n disallowInterruption: true,\n shouldCancelWhenOutside: false,\n }\n);\nexport const ScrollView = React.forwardRef<\n RNScrollView,\n RNScrollViewProps & NativeViewGestureHandlerProps\n>((props, ref) => {\n const refreshControlGestureRef = React.useRef<RefreshControl>(null);\n const { refreshControl, waitFor, ...rest } = props;\n\n return (\n <GHScrollView\n {...rest}\n // @ts-ignore `ref` exists on `GHScrollView`\n ref={ref}\n waitFor={[...toArray(waitFor ?? []), refreshControlGestureRef]}\n // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref\n refreshControl={\n refreshControl\n ? React.cloneElement(refreshControl, {\n // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS\n ref: refreshControlGestureRef,\n })\n : undefined\n }\n />\n );\n});\n// backward type compatibility with https://github.com/software-mansion/react-native-gesture-handler/blob/db78d3ca7d48e8ba57482d3fe9b0a15aa79d9932/react-native-gesture-handler.d.ts#L440-L457\n// include methods of wrapped components by creating an intersection type with the RN component instead of duplicating them.\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type ScrollView = typeof GHScrollView & RNScrollView;\n\nexport const Switch = createNativeWrapper<RNSwitchProps>(RNSwitch, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: true,\n disallowInterruption: true,\n});\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Switch = typeof Switch & RNSwitch;\n\nexport const TextInput = createNativeWrapper<RNTextInputProps>(RNTextInput);\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type TextInput = typeof TextInput & RNTextInput;\n\nexport const DrawerLayoutAndroid = createNativeWrapper<\n PropsWithChildren<RNDrawerLayoutAndroidProps>\n>(RNDrawerLayoutAndroid, { disallowInterruption: true });\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type DrawerLayoutAndroid = typeof DrawerLayoutAndroid &\n RNDrawerLayoutAndroid;\n\nexport const FlatList = React.forwardRef((props, ref) => {\n const refreshControlGestureRef = React.useRef<RefreshControl>(null);\n\n const { waitFor, refreshControl, ...rest } = props;\n\n const flatListProps = {};\n const scrollViewProps = {};\n for (const [propName, value] of Object.entries(rest)) {\n // https://github.com/microsoft/TypeScript/issues/26255\n if ((nativeViewProps as readonly string[]).includes(propName)) {\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n scrollViewProps[propName] = value;\n } else {\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n flatListProps[propName] = value;\n }\n }\n\n return (\n // @ts-ignore - this function cannot have generic type so we have to ignore this error\n <RNFlatList\n ref={ref}\n {...flatListProps}\n renderScrollComponent={(scrollProps) => (\n <ScrollView\n {...{\n ...scrollProps,\n ...scrollViewProps,\n waitFor: [...toArray(waitFor ?? []), refreshControlGestureRef],\n }}\n />\n )}\n // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref\n refreshControl={\n refreshControl\n ? React.cloneElement(refreshControl, {\n // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS\n ref: refreshControlGestureRef,\n })\n : undefined\n }\n />\n );\n}) as <ItemT = any>(\n props: PropsWithChildren<\n RNFlatListProps<ItemT> &\n RefAttributes<FlatList<ItemT>> &\n NativeViewGestureHandlerProps\n >,\n ref: ForwardedRef<FlatList<ItemT>>\n) => ReactElement | null;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type FlatList<ItemT = any> = typeof FlatList & RNFlatList<ItemT>;\n","// Similarily to the DrawerLayout component this deserves to be put in a\n// separate repo. Although, keeping it here for the time being will allow us to\n// move faster and fix possible issues quicker\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport {\n Animated,\n StyleSheet,\n View,\n I18nManager,\n LayoutChangeEvent,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n PanGestureHandler,\n PanGestureHandlerEventPayload,\n PanGestureHandlerProps,\n} from '../handlers/PanGestureHandler';\nimport {\n TapGestureHandler,\n TapGestureHandlerEventPayload,\n} from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\ntype SwipeableExcludes = Exclude<\n keyof PanGestureHandlerProps,\n 'onGestureEvent' | 'onHandlerStateChange'\n>;\n\n// Animated.AnimatedInterpolation has been converted to a generic type\n// in @types/react-native 0.70. This way we can maintain compatibility\n// with all versions of @types/react-native\ntype AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;\n\nexport interface SwipeableProps\n extends Pick<PanGestureHandlerProps, SwipeableExcludes> {\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance. e.g. value of 1 will indicate that the swipeable panel\n * should exactly follow the gesture, 2 means it is going to be two times\n * \"slower\".\n */\n friction?: number;\n\n /**\n * Distance from the left edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n leftThreshold?: number;\n\n /**\n * Distance from the right edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n rightThreshold?: number;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the left\n * actions panel's width. It is set to true by default as long as the left\n * panel render method is present.\n */\n overshootLeft?: boolean;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the\n * right actions panel's width. It is set to true by default as long as the\n * right panel render method is present.\n */\n overshootRight?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance at overshoot. Default value is 1, it mean no friction, for\n * a native feel, try 8 or above.\n */\n overshootFriction?: number;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when left action panel gets open.\n */\n onSwipeableLeftOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when right action panel gets open.\n */\n onSwipeableRightOpen?: () => void;\n\n /**\n * Called when action panel gets open (either right or left).\n */\n onSwipeableOpen?: (direction: 'left' | 'right', swipeable: Swipeable) => void;\n\n /**\n * Called when action panel is closed.\n */\n onSwipeableClose?: (\n direction: 'left' | 'right',\n swipeable: Swipeable\n ) => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when left action panel starts animating on open.\n */\n onSwipeableLeftWillOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when right action panel starts animating on open.\n */\n onSwipeableRightWillOpen?: () => void;\n\n /**\n * Called when action panel starts animating on open (either right or left).\n */\n onSwipeableWillOpen?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts animating on close.\n */\n onSwipeableWillClose?: (direction: 'left' | 'right') => void;\n\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, +]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderLeftActions?: (\n progressAnimatedValue: AnimatedInterpolation,\n dragAnimatedValue: AnimatedInterpolation\n ) => React.ReactNode;\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, -]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderRightActions?: (\n progressAnimatedValue: AnimatedInterpolation,\n dragAnimatedValue: AnimatedInterpolation,\n swipeable: Swipeable\n ) => React.ReactNode;\n\n useNativeAnimations?: boolean;\n\n animationOptions?: Record<string, unknown>;\n\n /**\n * Style object for the container (`Animated.View`), for example to override\n * `overflow: 'hidden'`.\n */\n containerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Style object for the children container (`Animated.View`), for example to\n * apply `flex: 1`\n */\n childrenContainerStyle?: StyleProp<ViewStyle>;\n}\n\ntype SwipeableState = {\n dragX: Animated.Value;\n rowTranslation: Animated.Value;\n rowState: number;\n leftWidth?: number;\n rightOffset?: number;\n rowWidth?: number;\n};\n\nexport default class Swipeable extends Component<\n SwipeableProps,\n SwipeableState\n> {\n static defaultProps = {\n friction: 1,\n overshootFriction: 1,\n useNativeAnimations: true,\n };\n\n constructor(props: SwipeableProps) {\n super(props);\n const dragX = new Animated.Value(0);\n this.state = {\n dragX,\n rowTranslation: new Animated.Value(0),\n rowState: 0,\n leftWidth: undefined,\n rightOffset: undefined,\n rowWidth: undefined,\n };\n this.updateAnimatedEvent(props, this.state);\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragX } }],\n { useNativeDriver: props.useNativeAnimations! }\n );\n }\n\n shouldComponentUpdate(props: SwipeableProps, state: SwipeableState) {\n if (\n this.props.friction !== props.friction ||\n this.props.overshootLeft !== props.overshootLeft ||\n this.props.overshootRight !== props.overshootRight ||\n this.props.overshootFriction !== props.overshootFriction ||\n this.state.leftWidth !== state.leftWidth ||\n this.state.rightOffset !== state.rightOffset ||\n this.state.rowWidth !== state.rowWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n private onGestureEvent?: (\n event: GestureEvent<PanGestureHandlerEventPayload>\n ) => void;\n private transX?: AnimatedInterpolation;\n private showLeftAction?: AnimatedInterpolation | Animated.Value;\n private leftActionTranslate?: AnimatedInterpolation;\n private showRightAction?: AnimatedInterpolation | Animated.Value;\n private rightActionTranslate?: AnimatedInterpolation;\n\n private updateAnimatedEvent = (\n props: SwipeableProps,\n state: SwipeableState\n ) => {\n const { friction, overshootFriction } = props;\n const { dragX, rowTranslation, leftWidth = 0, rowWidth = 0 } = state;\n const { rightOffset = rowWidth } = state;\n const rightWidth = Math.max(0, rowWidth - rightOffset);\n\n const { overshootLeft = leftWidth > 0, overshootRight = rightWidth > 0 } =\n props;\n\n const transX = Animated.add(\n rowTranslation,\n dragX.interpolate({\n inputRange: [0, friction!],\n outputRange: [0, 1],\n })\n ).interpolate({\n inputRange: [-rightWidth - 1, -rightWidth, leftWidth, leftWidth + 1],\n outputRange: [\n -rightWidth - (overshootRight ? 1 / overshootFriction! : 0),\n -rightWidth,\n leftWidth,\n leftWidth + (overshootLeft ? 1 / overshootFriction! : 0),\n ],\n });\n this.transX = transX;\n this.showLeftAction =\n leftWidth > 0\n ? transX.interpolate({\n inputRange: [-1, 0, leftWidth],\n outputRange: [0, 0, 1],\n })\n : new Animated.Value(0);\n this.leftActionTranslate = this.showLeftAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n this.showRightAction =\n rightWidth > 0\n ? transX.interpolate({\n inputRange: [-rightWidth, 0, 1],\n outputRange: [1, 0, 0],\n })\n : new Animated.Value(0);\n this.rightActionTranslate = this.showRightAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<TapGestureHandlerEventPayload>) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.close();\n }\n };\n\n private onHandlerStateChange = (\n ev: HandlerStateChangeEvent<PanGestureHandlerEventPayload>\n ) => {\n if (ev.nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease(ev);\n }\n };\n\n private handleRelease = (\n ev: HandlerStateChangeEvent<PanGestureHandlerEventPayload>\n ) => {\n const { velocityX, translationX: dragX } = ev.nativeEvent;\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n const {\n friction,\n leftThreshold = leftWidth / 2,\n rightThreshold = rightWidth / 2,\n } = this.props;\n\n const startOffsetX = this.currentOffset() + dragX / friction!;\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction!;\n\n let toValue = 0;\n if (rowState === 0) {\n if (translationX > leftThreshold) {\n toValue = leftWidth;\n } else if (translationX < -rightThreshold) {\n toValue = -rightWidth;\n }\n } else if (rowState === 1) {\n // swiped to left\n if (translationX > -leftThreshold) {\n toValue = leftWidth;\n }\n } else {\n // swiped to right\n if (translationX < rightThreshold) {\n toValue = -rightWidth;\n }\n }\n\n this.animateRow(startOffsetX, toValue, velocityX / friction!);\n };\n\n private animateRow = (\n fromValue: number,\n toValue: number,\n velocityX?:\n | number\n | {\n x: number;\n y: number;\n }\n ) => {\n const { dragX, rowTranslation } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(fromValue);\n\n this.setState({ rowState: Math.sign(toValue) });\n Animated.spring(rowTranslation, {\n restSpeedThreshold: 1.7,\n restDisplacementThreshold: 0.4,\n velocity: velocityX,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n ...this.props.animationOptions,\n }).start(({ finished }) => {\n if (finished) {\n if (toValue > 0) {\n this.props.onSwipeableLeftOpen?.();\n this.props.onSwipeableOpen?.('left', this);\n } else if (toValue < 0) {\n this.props.onSwipeableRightOpen?.();\n this.props.onSwipeableOpen?.('right', this);\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableClose?.(closingDirection, this);\n }\n }\n });\n if (toValue > 0) {\n this.props.onSwipeableLeftWillOpen?.();\n this.props.onSwipeableWillOpen?.('left');\n } else if (toValue < 0) {\n this.props.onSwipeableRightWillOpen?.();\n this.props.onSwipeableWillOpen?.('right');\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableWillClose?.(closingDirection);\n }\n };\n\n private onRowLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ rowWidth: nativeEvent.layout.width });\n };\n\n private currentOffset = () => {\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n if (rowState === 1) {\n return leftWidth;\n } else if (rowState === -1) {\n return -rightWidth;\n }\n return 0;\n };\n\n close = () => {\n this.animateRow(this.currentOffset(), 0);\n };\n\n openLeft = () => {\n const { leftWidth = 0 } = this.state;\n this.animateRow(this.currentOffset(), leftWidth);\n };\n\n openRight = () => {\n const { rowWidth = 0 } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n this.animateRow(this.currentOffset(), -rightWidth);\n };\n\n render() {\n const { rowState } = this.state;\n const { children, renderLeftActions, renderRightActions } = this.props;\n\n const left = renderLeftActions && (\n <Animated.View\n style={[\n styles.leftActions,\n // all those and below parameters can have ! since they are all\n // asigned in constructor in `updateAnimatedEvent` but TS cannot spot\n // it for some reason\n { transform: [{ translateX: this.leftActionTranslate! }] },\n ]}>\n {renderLeftActions(this.showLeftAction!, this.transX!)}\n <View\n onLayout={({ nativeEvent }) =>\n this.setState({ leftWidth: nativeEvent.layout.x })\n }\n />\n </Animated.View>\n );\n\n const right = renderRightActions && (\n <Animated.View\n style={[\n styles.rightActions,\n { transform: [{ translateX: this.rightActionTranslate! }] },\n ]}>\n {renderRightActions(this.showRightAction!, this.transX!, this)}\n <View\n onLayout={({ nativeEvent }) =>\n this.setState({ rightOffset: nativeEvent.layout.x })\n }\n />\n </Animated.View>\n );\n\n return (\n <PanGestureHandler\n activeOffsetX={[-10, 10]}\n {...this.props}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.onHandlerStateChange}>\n <Animated.View\n onLayout={this.onRowLayout}\n style={[styles.container, this.props.containerStyle]}>\n {left}\n {right}\n <TapGestureHandler\n enabled={rowState !== 0}\n onHandlerStateChange={this.onTapHandlerStateChange}>\n <Animated.View\n pointerEvents={rowState === 0 ? 'auto' : 'box-only'}\n style={[\n {\n transform: [{ translateX: this.transX! }],\n },\n this.props.childrenContainerStyle,\n ]}>\n {children}\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </PanGestureHandler>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n leftActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n rightActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse',\n },\n});\n","// This component is based on RN's DrawerLayoutAndroid API\n//\n// It perhaps deserves to be put in a separate repo, but since it relies on\n// react-native-gesture-handler library which isn't very popular at the moment I\n// decided to keep it here for the time being. It will allow us to move faster\n// and fix issues that may arise in gesture handler library that could be found\n// when using the drawer component\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport invariant from 'invariant';\nimport {\n Animated,\n StyleSheet,\n View,\n Keyboard,\n StatusBar,\n I18nManager,\n StatusBarAnimation,\n StyleProp,\n ViewStyle,\n LayoutChangeEvent,\n NativeSyntheticEvent,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n UserSelect,\n} from '../handlers/gestureHandlerCommon';\nimport {\n PanGestureHandler,\n PanGestureHandlerEventPayload,\n} from '../handlers/PanGestureHandler';\nimport {\n TapGestureHandler,\n TapGestureHandlerEventPayload,\n} from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\nconst IDLE: DrawerState = 'Idle';\nconst DRAGGING: DrawerState = 'Dragging';\nconst SETTLING: DrawerState = 'Settling';\n\nexport type DrawerPosition = 'left' | 'right';\n\nexport type DrawerState = 'Idle' | 'Dragging' | 'Settling';\n\nexport type DrawerType = 'front' | 'back' | 'slide';\n\nexport type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';\n\nexport type DrawerKeyboardDismissMode = 'none' | 'on-drag';\n\n// Animated.AnimatedInterpolation has been converted to a generic type\n// in @types/react-native 0.70. This way we can maintain compatibility\n// with all versions of @types/react-native`\ntype AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;\nexport interface DrawerLayoutProps {\n /**\n * This attribute is present in the standard implementation already and is one\n * of the required params. Gesture handler version of DrawerLayout make it\n * possible for the function passed as `renderNavigationView` to take an\n * Animated value as a parameter that indicates the progress of drawer\n * opening/closing animation (progress value is 0 when closed and 1 when\n * opened). This can be used by the drawer component to animated its children\n * while the drawer is opening or closing.\n */\n renderNavigationView: (\n progressAnimatedValue: Animated.Value\n ) => React.ReactNode;\n\n drawerPosition?: DrawerPosition;\n\n drawerWidth?: number;\n\n drawerBackgroundColor?: string;\n\n drawerLockMode?: DrawerLockMode;\n\n keyboardDismissMode?: DrawerKeyboardDismissMode;\n\n /**\n * Called when the drawer is closed.\n */\n onDrawerClose?: () => void;\n\n /**\n * Called when the drawer is opened.\n */\n onDrawerOpen?: () => void;\n\n /**\n * Called when the status of the drawer changes.\n */\n onDrawerStateChanged?: (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => void;\n useNativeAnimations?: boolean;\n\n drawerType?: DrawerType;\n\n /**\n * Defines how far from the edge of the content view the gesture should\n * activate.\n */\n edgeWidth?: number;\n\n minSwipeDistance?: number;\n\n /**\n * When set to true Drawer component will use\n * {@link https://reactnative.dev/docs/statusbar StatusBar} API to hide the OS\n * status bar whenever the drawer is pulled or when its in an \"open\" state.\n */\n hideStatusBar?: boolean;\n\n /**\n * @default 'slide'\n *\n * Can be used when hideStatusBar is set to true and will select the animation\n * used for hiding/showing the status bar. See\n * {@link https://reactnative.dev/docs/statusbar StatusBar} documentation for\n * more details\n */\n statusBarAnimation?: StatusBarAnimation;\n\n /**\n * @default black\n *\n * Color of a semi-transparent overlay to be displayed on top of the content\n * view when drawer gets open. A solid color should be used as the opacity is\n * added by the Drawer itself and the opacity of the overlay is animated (from\n * 0% to 70%).\n */\n overlayColor?: string;\n\n contentContainerStyle?: StyleProp<ViewStyle>;\n\n drawerContainerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n onDrawerSlide?: (position: number) => void;\n\n onGestureRef?: (ref: PanGestureHandler) => void;\n\n // implicit `children` prop has been removed in @types/react^18.0.0\n children?:\n | React.ReactNode\n | ((openValue?: AnimatedInterpolation) => React.ReactNode);\n\n /**\n * @default 'none'\n * Defines which userSelect property should be used.\n * Values: 'none'|'text'|'auto'\n */\n userSelect?: UserSelect;\n}\n\nexport type DrawerLayoutState = {\n dragX: Animated.Value;\n touchX: Animated.Value;\n drawerTranslation: Animated.Value;\n containerWidth: number;\n drawerState: DrawerState;\n drawerOpened: boolean;\n};\n\nexport type DrawerMovementOption = {\n velocity?: number;\n speed?: number;\n};\nexport default class DrawerLayout extends Component<\n DrawerLayoutProps,\n DrawerLayoutState\n> {\n static defaultProps = {\n drawerWidth: 200,\n drawerPosition: 'left',\n useNativeAnimations: true,\n drawerType: 'front',\n edgeWidth: 20,\n minSwipeDistance: 3,\n overlayColor: 'rgba(0, 0, 0, 0.7)',\n drawerLockMode: 'unlocked',\n enableTrackpadTwoFingerGesture: false,\n };\n\n constructor(props: DrawerLayoutProps) {\n super(props);\n\n const dragX = new Animated.Value(0);\n const touchX = new Animated.Value(0);\n const drawerTranslation = new Animated.Value(0);\n\n this.state = {\n dragX,\n touchX,\n drawerTranslation,\n containerWidth: 0,\n drawerState: IDLE,\n drawerOpened: false,\n };\n\n this.updateAnimatedEvent(props, this.state);\n }\n\n shouldComponentUpdate(props: DrawerLayoutProps, state: DrawerLayoutState) {\n if (\n this.props.drawerPosition !== props.drawerPosition ||\n this.props.drawerWidth !== props.drawerWidth ||\n this.props.drawerType !== props.drawerType ||\n this.state.containerWidth !== state.containerWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n private openValue?: AnimatedInterpolation;\n private onGestureEvent?: (\n event: GestureEvent<PanGestureHandlerEventPayload>\n ) => void;\n private accessibilityIsModalView = React.createRef<View>();\n private pointerEventsView = React.createRef<View>();\n private panGestureHandler = React.createRef<PanGestureHandler | null>();\n private drawerShown = false;\n\n static positions = {\n Left: 'left',\n Right: 'right',\n };\n\n private updateAnimatedEvent = (\n props: DrawerLayoutProps,\n state: DrawerLayoutState\n ) => {\n // Event definition is based on\n const { drawerPosition, drawerWidth, drawerType } = props;\n const {\n dragX: dragXValue,\n touchX: touchXValue,\n drawerTranslation,\n containerWidth,\n } = state;\n\n let dragX = dragXValue;\n let touchX = touchXValue;\n\n if (drawerPosition !== 'left') {\n // Most of the code is written in a way to handle left-side drawer. In\n // order to handle right-side drawer the only thing we need to do is to\n // reverse events coming from gesture handler in a way they emulate\n // left-side drawer gestures. E.g. dragX is simply -dragX, and touchX is\n // calulcated by subtracing real touchX from the width of the container\n // (such that when touch happens at the right edge the value is simply 0)\n dragX = Animated.multiply(\n new Animated.Value(-1),\n dragXValue\n ) as Animated.Value; // TODO(TS): (for all \"as\" in this file) make sure we can map this\n touchX = Animated.add(\n new Animated.Value(containerWidth),\n Animated.multiply(new Animated.Value(-1), touchXValue)\n ) as Animated.Value; // TODO(TS): make sure we can map this;\n touchXValue.setValue(containerWidth);\n } else {\n touchXValue.setValue(0);\n }\n\n // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep\n // start position of the gesture. Then we use that value to calculate how\n // much we need to subtract from the dragX. If the gesture started on the\n // greyed out area we take the distance from the edge of the drawer to the\n // start position. Otherwise we don't subtract at all and the drawer be\n // pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n //\n let translationX = dragX;\n if (drawerType === 'front') {\n const startPositionX = Animated.add(\n touchX,\n Animated.multiply(new Animated.Value(-1), dragX)\n );\n\n const dragOffsetFromOnStartPosition = startPositionX.interpolate({\n inputRange: [drawerWidth! - 1, drawerWidth!, drawerWidth! + 1],\n outputRange: [0, 0, 1],\n });\n translationX = Animated.add(\n dragX,\n dragOffsetFromOnStartPosition\n ) as Animated.Value; // TODO: as above\n }\n\n this.openValue = Animated.add(translationX, drawerTranslation).interpolate({\n inputRange: [0, drawerWidth!],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n });\n\n const gestureOptions: {\n useNativeDriver: boolean;\n // TODO: make sure it is correct\n listener?: (\n ev: NativeSyntheticEvent<PanGestureHandlerEventPayload>\n ) => void;\n } = {\n useNativeDriver: props.useNativeAnimations!,\n };\n\n if (this.props.onDrawerSlide) {\n gestureOptions.listener = (ev) => {\n const translationX = Math.floor(Math.abs(ev.nativeEvent.translationX));\n const position = translationX / this.state.containerWidth;\n\n this.props.onDrawerSlide?.(position);\n };\n }\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragXValue, x: touchXValue } }],\n gestureOptions\n );\n };\n\n private handleContainerLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ containerWidth: nativeEvent.layout.width });\n };\n\n private emitStateChanged = (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => {\n this.props.onDrawerStateChanged?.(newState, drawerWillShow);\n };\n\n private openingHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<PanGestureHandlerEventPayload>) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease({ nativeEvent });\n } else if (nativeEvent.state === State.ACTIVE) {\n this.emitStateChanged(DRAGGING, false);\n this.setState({ drawerState: DRAGGING });\n if (this.props.keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(true, this.props.statusBarAnimation || 'slide');\n }\n }\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<TapGestureHandlerEventPayload>) => {\n if (\n this.drawerShown &&\n nativeEvent.oldState === State.ACTIVE &&\n this.props.drawerLockMode !== 'locked-open'\n ) {\n this.closeDrawer();\n }\n };\n\n private handleRelease = ({\n nativeEvent,\n }: HandlerStateChangeEvent<PanGestureHandlerEventPayload>) => {\n const { drawerWidth, drawerPosition, drawerType } = this.props;\n const { containerWidth } = this.state;\n let { translationX: dragX, velocityX, x: touchX } = nativeEvent;\n\n if (drawerPosition !== 'left') {\n // See description in _updateAnimatedEvent about why events are flipped\n // for right-side drawer\n dragX = -dragX;\n touchX = containerWidth - touchX;\n velocityX = -velocityX;\n }\n\n const gestureStartX = touchX - dragX;\n let dragOffsetBasedOnStart = 0;\n\n if (drawerType === 'front') {\n dragOffsetBasedOnStart =\n gestureStartX > drawerWidth! ? gestureStartX - drawerWidth! : 0;\n }\n\n const startOffsetX =\n dragX + dragOffsetBasedOnStart + (this.drawerShown ? drawerWidth! : 0);\n const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;\n\n const shouldOpen = projOffsetX > drawerWidth! / 2;\n\n if (shouldOpen) {\n this.animateDrawer(startOffsetX, drawerWidth!, velocityX);\n } else {\n this.animateDrawer(startOffsetX, 0, velocityX);\n }\n };\n\n private updateShowing = (showing: boolean) => {\n this.drawerShown = showing;\n this.accessibilityIsModalView.current?.setNativeProps({\n accessibilityViewIsModal: showing,\n });\n this.pointerEventsView.current?.setNativeProps({\n pointerEvents: showing ? 'auto' : 'none',\n });\n const { drawerPosition, minSwipeDistance, edgeWidth } = this.props;\n const fromLeft = drawerPosition === 'left';\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: showing ? undefined : edgeWidth }\n : { right: 0, width: showing ? undefined : edgeWidth };\n // @ts-ignore internal API, maybe could be fixed in handler types\n this.panGestureHandler.current?.setNativeProps({\n hitSlop,\n activeOffsetX: gestureOrientation * minSwipeDistance!,\n });\n };\n\n private animateDrawer = (\n fromValue: number | null | undefined,\n toValue: number,\n velocity: number,\n speed?: number\n ) => {\n this.state.dragX.setValue(0);\n this.state.touchX.setValue(\n this.props.drawerPosition === 'left' ? 0 : this.state.containerWidth\n );\n\n if (fromValue != null) {\n let nextFramePosition = fromValue;\n if (this.props.useNativeAnimations) {\n // When using native driver, we predict the next position of the\n // animation because it takes one frame of a roundtrip to pass RELEASE\n // event from native driver to JS before we can start animating. Without\n // it, it is more noticable that the frame is dropped.\n if (fromValue < toValue && velocity > 0) {\n nextFramePosition = Math.min(fromValue + velocity / 60.0, toValue);\n } else if (fromValue > toValue && velocity < 0) {\n nextFramePosition = Math.max(fromValue + velocity / 60.0, toValue);\n }\n }\n this.state.drawerTranslation.setValue(nextFramePosition);\n }\n\n const willShow = toValue !== 0;\n this.updateShowing(willShow);\n this.emitStateChanged(SETTLING, willShow);\n this.setState({ drawerState: SETTLING });\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(willShow, this.props.statusBarAnimation || 'slide');\n }\n Animated.spring(this.state.drawerTranslation, {\n velocity,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n speed: speed ?? undefined,\n }).start(({ finished }) => {\n if (finished) {\n this.emitStateChanged(IDLE, willShow);\n this.setState({ drawerOpened: willShow });\n if (this.state.drawerState !== DRAGGING) {\n // it's possilbe that user started drag while the drawer\n // was settling, don't override state in this case\n this.setState({ drawerState: IDLE });\n }\n if (willShow) {\n this.props.onDrawerOpen?.();\n } else {\n this.props.onDrawerClose?.();\n }\n }\n });\n };\n\n openDrawer = (options: DrawerMovementOption = {}) => {\n this.animateDrawer(\n // TODO: decide if it should be null or undefined is the proper value\n undefined,\n this.props.drawerWidth!,\n options.velocity ? options.velocity : 0,\n options.speed\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would not be clickable\n this.forceUpdate();\n };\n\n closeDrawer = (options: DrawerMovementOption = {}) => {\n // TODO: decide if it should be null or undefined is the proper value\n this.animateDrawer(\n undefined,\n 0,\n options.velocity ? options.velocity : 0,\n options.speed\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would be still clickable\n this.forceUpdate();\n };\n\n private renderOverlay = () => {\n /* Overlay styles */\n invariant(this.openValue, 'should be set');\n let overlayOpacity;\n\n if (this.state.drawerState !== IDLE) {\n overlayOpacity = this.openValue;\n } else {\n overlayOpacity = this.state.drawerOpened ? 1 : 0;\n }\n\n const dynamicOverlayStyles = {\n opacity: overlayOpacity,\n backgroundColor: this.props.overlayColor,\n };\n\n return (\n <TapGestureHandler onHandlerStateChange={this.onTapHandlerStateChange}>\n <Animated.View\n pointerEvents={this.drawerShown ? 'auto' : 'none'}\n ref={this.pointerEventsView}\n style={[styles.overlay, dynamicOverlayStyles]}\n />\n </TapGestureHandler>\n );\n };\n\n private renderDrawer = () => {\n const {\n drawerBackgroundColor,\n drawerWidth,\n drawerPosition,\n drawerType,\n drawerContainerStyle,\n contentContainerStyle,\n } = this.props;\n\n const fromLeft = drawerPosition === 'left';\n const drawerSlide = drawerType !== 'back';\n const containerSlide = drawerType !== 'front';\n\n // we rely on row and row-reverse flex directions to position the drawer\n // properly. Apparently for RTL these are flipped which requires us to use\n // the opposite setting for the drawer to appear from left or right\n // according to the drawerPosition prop\n const reverseContentDirection = I18nManager.isRTL ? fromLeft : !fromLeft;\n\n const dynamicDrawerStyles = {\n backgroundColor: drawerBackgroundColor,\n width: drawerWidth,\n };\n const openValue = this.openValue;\n invariant(openValue, 'should be set');\n\n let containerStyles;\n if (containerSlide) {\n const containerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: fromLeft ? [0, drawerWidth!] : [0, -drawerWidth!],\n extrapolate: 'clamp',\n });\n containerStyles = {\n transform: [{ translateX: containerTranslateX }],\n };\n }\n\n let drawerTranslateX: number | AnimatedInterpolation = 0;\n if (drawerSlide) {\n const closedDrawerOffset = fromLeft ? -drawerWidth! : drawerWidth!;\n if (this.state.drawerState !== IDLE) {\n drawerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [closedDrawerOffset, 0],\n extrapolate: 'clamp',\n });\n } else {\n drawerTranslateX = this.state.drawerOpened ? 0 : closedDrawerOffset;\n }\n }\n const drawerStyles: {\n transform: { translateX: number | AnimatedInterpolation }[];\n flexDirection: 'row-reverse' | 'row';\n } = {\n transform: [{ translateX: drawerTranslateX }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n\n return (\n <Animated.View style={styles.main} onLayout={this.handleContainerLayout}>\n <Animated.View\n style={[\n drawerType === 'front'\n ? styles.containerOnBack\n : styles.containerInFront,\n containerStyles,\n contentContainerStyle,\n ]}\n importantForAccessibility={\n this.drawerShown ? 'no-hide-descendants' : 'yes'\n }>\n {typeof this.props.children === 'function'\n ? this.props.children(this.openValue)\n : this.props.children}\n {this.renderOverlay()}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n ref={this.accessibilityIsModalView}\n accessibilityViewIsModal={this.drawerShown}\n style={[styles.drawerContainer, drawerStyles, drawerContainerStyle]}>\n <View style={dynamicDrawerStyles}>\n {this.props.renderNavigationView(this.openValue as Animated.Value)}\n </View>\n </Animated.View>\n </Animated.View>\n );\n };\n\n private setPanGestureRef = (ref: PanGestureHandler) => {\n // TODO(TS): make sure it is OK taken from\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842\n (\n this.panGestureHandler as React.MutableRefObject<PanGestureHandler>\n ).current = ref;\n this.props.onGestureRef?.(ref);\n };\n\n render() {\n const { drawerPosition, drawerLockMode, edgeWidth, minSwipeDistance } =\n this.props;\n\n const fromLeft = drawerPosition === 'left';\n\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: this.drawerShown ? undefined : edgeWidth }\n : { right: 0, width: this.drawerShown ? undefined : edgeWidth };\n\n return (\n <PanGestureHandler\n // @ts-ignore could be fixed in handler types\n userSelect={this.props.userSelect}\n ref={this.setPanGestureRef}\n hitSlop={hitSlop}\n activeOffsetX={gestureOrientation * minSwipeDistance!}\n failOffsetY={[-15, 15]}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.openingHandlerStateChange}\n enableTrackpadTwoFingerGesture={\n this.props.enableTrackpadTwoFingerGesture\n }\n enabled={\n drawerLockMode !== 'locked-closed' && drawerLockMode !== 'locked-open'\n }>\n {this.renderDrawer()}\n </PanGestureHandler>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n drawerContainer: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1001,\n flexDirection: 'row',\n },\n containerInFront: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1002,\n },\n containerOnBack: {\n ...StyleSheet.absoluteFillObject,\n },\n main: {\n flex: 1,\n zIndex: 0,\n overflow: 'hidden',\n },\n overlay: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1000,\n },\n});\n","export * from '@react-navigation/core';\nexport * from '@react-navigation/native';\n\n// Export each item individually so that they can be evaluated lazily\n// https://babeljs.io/docs/en/babel-plugin-transform-modules-commonjs#lazy\nexport {\n createNavigationContainer,\n createStackNavigator,\n createBottomTabNavigator,\n createMaterialTopTabNavigator,\n createDrawerNavigator,\n StackGestureContext,\n DrawerGestureContext,\n DrawerRouter,\n DrawerActions,\n Transitioner,\n StackView,\n StackViewCard,\n StackViewTransitionConfigs,\n Header,\n HeaderTitle,\n HeaderBackButton,\n HeaderStyleInterpolator,\n DrawerView,\n DrawerItems,\n DrawerSidebar,\n BottomTabBar,\n MaterialTopTabBar,\n} from './deprecations';\n","/* eslint-disable import/no-commonjs */\nmodule.exports = {\n get StateUtils() {\n return require('./StateUtils').default;\n },\n\n get getNavigation() {\n return require('./getNavigation').default;\n },\n\n // Navigators\n get createNavigator() {\n return require('./navigators/createNavigator').default;\n },\n\n get NavigationContext() {\n return require('./views/NavigationContext').default;\n },\n\n get NavigationProvider() {\n return require('./views/NavigationContext').default.Provider;\n },\n\n get NavigationConsumer() {\n return require('./views/NavigationContext').default.Consumer;\n },\n\n get createSwitchNavigator() {\n return require('./navigators/createSwitchNavigator').default;\n },\n\n // Themes\n get ThemeContext() {\n return require('./views/ThemeContext').default;\n },\n\n get ThemeProvider() {\n return require('./views/ThemeContext').default.Provider;\n },\n\n get ThemeConsumer() {\n return require('./views/ThemeContext').default.Consumer;\n },\n\n get ThemeColors() {\n return require('./ThemeColors').default;\n },\n\n get useTheme() {\n return require('./useTheme').default;\n },\n\n // Actions\n get NavigationActions() {\n return require('./NavigationActions');\n },\n\n get StackActions() {\n return require('./routers/StackActions');\n },\n\n get SwitchActions() {\n return require('./routers/SwitchActions');\n },\n\n // Routers\n get StackRouter() {\n return require('./routers/StackRouter').default;\n },\n\n get TabRouter() {\n return require('./routers/TabRouter').default;\n },\n\n get SwitchRouter() {\n return require('./routers/SwitchRouter').default;\n },\n\n get createConfigGetter() {\n return require('./routers/createConfigGetter').default;\n },\n\n get getScreenForRouteName() {\n return require('./routers/getScreenForRouteName').default;\n },\n\n get validateRouteConfigMap() {\n return require('./routers/validateRouteConfigMap').default;\n },\n\n // Utils\n get getActiveChildNavigationOptions() {\n return require('./utils/getActiveChildNavigationOptions').default;\n },\n\n get pathUtils() {\n return require('./routers/pathUtils');\n },\n\n get SceneView() {\n return require('./views/SceneView').default;\n },\n\n // SwitchView\n get SwitchView() {\n return require('./views/SwitchView/SwitchView').default;\n },\n\n // NavigationEvents\n get NavigationEvents() {\n return require('./views/NavigationEvents').default;\n },\n\n // HOCs\n get withNavigation() {\n return require('./views/withNavigation').default;\n },\n\n get withNavigationFocus() {\n return require('./views/withNavigationFocus').default;\n }\n\n};\n//# sourceMappingURL=index.js.map","import invariant from './utils/invariant';\n/**\n * Utilities to perform atomic operation with navigate state and routes.\n *\n * ```javascript\n * const state1 = {key: 'screen 1'};\n * const state2 = NavigationStateUtils.push(state1, {key: 'screen 2'});\n * ```\n */\n\nconst StateUtils = {\n /**\n * Gets a route by key. If the route isn't found, returns `null`.\n */\n get(state, key) {\n return state.routes.find(route => route.key === key) || null;\n },\n\n /**\n * Returns the first index at which a given route's key can be found in the\n * routes of the navigation state, or -1 if it is not present.\n */\n indexOf(state, key) {\n return state.routes.findIndex(route => route.key === key);\n },\n\n /**\n * Returns `true` at which a given route's key can be found in the\n * routes of the navigation state.\n */\n has(state, key) {\n return !!state.routes.some(route => route.key === key);\n },\n\n /**\n * Pushes a new route into the navigation state.\n * Note that this moves the index to the position to where the last route in the\n * stack is at.\n */\n push(state, route) {\n invariant(StateUtils.indexOf(state, route.key) === -1, 'should not push route with duplicated key %s', route.key);\n const routes = state.routes.slice();\n routes.push(route);\n return { ...state,\n index: routes.length - 1,\n routes\n };\n },\n\n /**\n * Pops out a route from the navigation state.\n * Note that this moves the index to the position to where the last route in the\n * stack is at.\n */\n pop(state) {\n if (state.index <= 0) {\n // [Note]: Over-popping does not throw error. Instead, it will be no-op.\n return state;\n }\n\n const routes = state.routes.slice(0, -1);\n return { ...state,\n index: routes.length - 1,\n routes\n };\n },\n\n /**\n * Sets the focused route of the navigation state by index.\n */\n jumpToIndex(state, index) {\n if (index === state.index) {\n return state;\n }\n\n invariant(!!state.routes[index], 'invalid index %s to jump to', index);\n return { ...state,\n index\n };\n },\n\n /**\n * Sets the focused route of the navigation state by key.\n */\n jumpTo(state, key) {\n const index = StateUtils.indexOf(state, key);\n invariant(index !== -1, 'attempt to jump to unknown key \"%s\"', key);\n return StateUtils.jumpToIndex(state, index);\n },\n\n /**\n * Sets the focused route to the previous route.\n */\n back(state) {\n const index = state.index - 1;\n const route = state.routes[index];\n return route ? StateUtils.jumpToIndex(state, index) : state;\n },\n\n /**\n * Sets the focused route to the next route.\n */\n forward(state) {\n const index = state.index + 1;\n const route = state.routes[index];\n return route ? StateUtils.jumpToIndex(state, index) : state;\n },\n\n /**\n * Replace a route by a key.\n * Note that this moves the index to the position to where the new route in the\n * stack is at and updates the routes array accordingly.\n */\n replaceAndPrune(state, key, route) {\n const index = StateUtils.indexOf(state, key);\n const replaced = StateUtils.replaceAtIndex(state, index, route);\n return { ...replaced,\n routes: replaced.routes.slice(0, index + 1)\n };\n },\n\n /**\n * Replace a route by a key.\n * Note that this moves the index to the position to where the new route in the\n * stack is at. Does not prune the routes.\n * If preserveIndex is true then replacing the route does not cause the index\n * to change to the index of that route.\n */\n replaceAt(state, key, route, preserveIndex = false) {\n const index = StateUtils.indexOf(state, key);\n const nextIndex = preserveIndex ? state.index : index;\n let nextState = StateUtils.replaceAtIndex(state, index, route);\n nextState.index = nextIndex;\n return nextState;\n },\n\n /**\n * Replace a route by a index.\n * Note that this moves the index to the position to where the new route in the\n * stack is at.\n */\n replaceAtIndex(state, index, route) {\n invariant(!!state.routes[index], 'invalid index %s for replacing route %s', index, route.key);\n\n if (state.routes[index] === route && index === state.index) {\n return state;\n }\n\n const routes = state.routes.slice();\n routes[index] = route;\n return { ...state,\n index,\n routes\n };\n },\n\n /**\n * Resets all routes.\n * Note that this moves the index to the position to where the last route in the\n * stack is at if the param `index` isn't provided.\n */\n reset(state, routes, index) {\n invariant(routes.length && Array.isArray(routes), 'invalid routes to replace');\n const nextIndex = index === undefined ? routes.length - 1 : index;\n\n if (state.routes.length === routes.length && state.index === nextIndex) {\n const compare = (route, ii) => routes[ii] === route;\n\n if (state.routes.every(compare)) {\n return state;\n }\n }\n\n invariant(!!routes[nextIndex], 'invalid index %s to reset', nextIndex);\n return { ...state,\n index: nextIndex,\n routes\n };\n }\n\n};\nexport default StateUtils;\n//# sourceMappingURL=StateUtils.js.map","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\nlet validateFormat = function () {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function (format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, ...args) {\n validateFormat(format);\n\n if (!condition) {\n let error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.');\n } else {\n let argIndex = 0;\n error = new Error(format.replace(/%s/g, () => args[argIndex++]));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n}\n\nexport default invariant;\n//# sourceMappingURL=invariant.js.map","import getNavigationActionCreators from './routers/getNavigationActionCreators';\nimport getChildNavigation from './getChildNavigation';\nimport getChildrenNavigationCache from './getChildrenNavigationCache';\nexport default function getNavigation(router, state, dispatch, actionSubscribers, getScreenProps, getCurrentNavigation) {\n const actions = router.getActionCreators(state, null);\n const navigation = {\n actions,\n router,\n state,\n dispatch,\n getScreenProps,\n getChildNavigation: childKey => getChildNavigation(navigation, childKey, getCurrentNavigation),\n isFocused: childKey => {\n const {\n routes,\n index\n } = getCurrentNavigation().state;\n\n if (childKey == null || routes[index].key === childKey) {\n return true;\n }\n\n return false;\n },\n addListener: (eventName, handler) => {\n if (eventName !== 'action') {\n return {\n remove: () => {}\n };\n }\n\n actionSubscribers.add(handler);\n return {\n remove: () => {\n actionSubscribers.delete(handler);\n }\n };\n },\n dangerouslyGetParent: () => null,\n isFirstRouteInParent: () => true,\n _childrenNavigation: getChildrenNavigationCache(getCurrentNavigation())\n };\n const actionCreators = { ...getNavigationActionCreators(navigation.state),\n ...actions\n };\n Object.keys(actionCreators).forEach(actionName => {\n navigation[actionName] = (...args) => navigation.dispatch(actionCreators[actionName](...args));\n });\n return navigation;\n}\n//# sourceMappingURL=getNavigation.js.map","import * as NavigationActions from '../NavigationActions';\nimport invariant from '../utils/invariant';\n\n// TODO: Type `route`\nconst getNavigationActionCreators = route => {\n return {\n goBack: key => {\n let actualizedKey = key;\n\n if (key === undefined && route.key) {\n invariant(typeof route.key === 'string', 'key should be a string');\n actualizedKey = route.key;\n }\n\n return NavigationActions.back({\n key: actualizedKey\n });\n },\n navigate: (navigateTo, params, action) => {\n if (typeof navigateTo === 'string') {\n return NavigationActions.navigate({\n routeName: navigateTo,\n params,\n action\n });\n }\n\n invariant(typeof navigateTo === 'object', 'Must navigateTo an object or a string');\n invariant(params == null, 'Params must not be provided to .navigate() when specifying an object');\n invariant(action == null, 'Child action must not be provided to .navigate() when specifying an object');\n return NavigationActions.navigate(navigateTo);\n },\n setParams: params => {\n invariant(route.key && typeof route.key === 'string', 'setParams cannot be called by root navigator');\n return NavigationActions.setParams({\n params,\n key: route.key\n });\n }\n };\n};\n\nexport default getNavigationActionCreators;\n//# sourceMappingURL=getNavigationActionCreators.js.map","// Action constants\nexport const BACK = 'Navigation/BACK';\nexport const INIT = 'Navigation/INIT';\nexport const NAVIGATE = 'Navigation/NAVIGATE';\nexport const SET_PARAMS = 'Navigation/SET_PARAMS'; // Action creators\n\nexport const back = (payload = {}) => ({\n type: BACK,\n key: payload.key,\n immediate: payload.immediate\n});\nexport const init = (payload = {}) => {\n const action = {\n type: INIT\n };\n\n if (payload.params) {\n action.params = payload.params;\n }\n\n return action;\n};\nexport const navigate = payload => {\n const action = {\n type: NAVIGATE,\n routeName: payload.routeName\n };\n\n if (payload.params) {\n action.params = payload.params;\n }\n\n if (payload.action) {\n action.action = payload.action;\n }\n\n if (payload.key) {\n action.key = payload.key;\n }\n\n return action;\n};\nexport const setParams = payload => ({\n type: SET_PARAMS,\n key: payload.key,\n params: payload.params,\n preserveFocus: true\n});\n//# sourceMappingURL=NavigationActions.js.map","import getChildRouter from './getChildRouter';\nimport getNavigationActionCreators from './routers/getNavigationActionCreators';\nimport getChildrenNavigationCache from './getChildrenNavigationCache';\nimport getEventManager from './getEventManager';\n\nconst createParamGetter = route => (paramName, defaultValue) => {\n const params = route.params;\n\n if (params && paramName in params) {\n return params[paramName];\n }\n\n return defaultValue;\n};\n\nfunction getChildNavigation(navigation, childKey, getCurrentParentNavigation) {\n const children = getChildrenNavigationCache(navigation);\n const childRoute = navigation.state.routes.find(r => r.key === childKey);\n\n if (!childRoute) {\n return null;\n }\n\n if (children[childKey] && children[childKey].state === childRoute) {\n return children[childKey];\n }\n\n const childRouter = getChildRouter(navigation.router, childRoute.routeName); // If the route has children, we'll use this to pass in to the action creators\n // for the childRouter so that any action that depends on the active route will\n // behave as expected. We don't explicitly require that routers implement routes\n // and index properties, but if we did then we would put an invariant here to\n // ensure that a focusedGrandChildRoute exists if childRouter is defined.\n\n const focusedGrandChildRoute = childRoute.routes && typeof childRoute.index === 'number' ? childRoute.routes[childRoute.index] : null;\n const actionCreators = { ...navigation.actions,\n ...navigation.router.getActionCreators(childRoute, navigation.state.key),\n ...(childRouter ? childRouter.getActionCreators(focusedGrandChildRoute, childRoute.key) : {}),\n ...getNavigationActionCreators(childRoute)\n };\n const actionHelpers = {};\n Object.keys(actionCreators).forEach(actionName => {\n actionHelpers[actionName] = (...args) => {\n const actionCreator = actionCreators[actionName];\n const action = actionCreator(...args);\n return navigation.dispatch(action);\n };\n });\n let isFirstRouteInParent = true;\n const parentNavigation = getCurrentParentNavigation();\n\n if (parentNavigation) {\n isFirstRouteInParent = parentNavigation.state.routes.indexOf(childRoute) === 0;\n }\n\n if (children[childKey] && children[childKey].isFirstRouteInParent() === isFirstRouteInParent) {\n children[childKey] = { ...children[childKey],\n ...actionHelpers,\n state: childRoute,\n router: childRouter,\n actions: actionCreators,\n getParam: createParamGetter(childRoute)\n };\n return children[childKey];\n } else {\n const {\n addListener,\n emit\n } = getEventManager(childKey);\n children[childKey] = { ...actionHelpers,\n state: childRoute,\n router: childRouter,\n actions: actionCreators,\n getParam: createParamGetter(childRoute),\n getChildNavigation: grandChildKey => getChildNavigation(children[childKey], grandChildKey, () => {\n const nav = getCurrentParentNavigation();\n return nav && nav.getChildNavigation(childKey);\n }),\n isFocused: () => {\n const currentNavigation = getCurrentParentNavigation();\n\n if (!currentNavigation) {\n return false;\n }\n\n const {\n routes,\n index\n } = currentNavigation.state;\n\n if (!currentNavigation.isFocused()) {\n return false;\n }\n\n if (routes[index].key === childKey) {\n return true;\n }\n\n return false;\n },\n isFirstRouteInParent: () => isFirstRouteInParent,\n dispatch: navigation.dispatch,\n getScreenProps: navigation.getScreenProps,\n dangerouslyGetParent: getCurrentParentNavigation,\n addListener,\n emit\n };\n return children[childKey];\n }\n}\n\nexport default getChildNavigation;\n//# sourceMappingURL=getChildNavigation.js.map","export default function getChildRouter(router, routeName) {\n var _router$childRouters;\n\n if ((_router$childRouters = router.childRouters) === null || _router$childRouters === void 0 ? void 0 : _router$childRouters[routeName]) {\n return router.childRouters[routeName];\n }\n\n const Component = router.getComponentForRouteName(routeName);\n return Component.router;\n}\n//# sourceMappingURL=getChildRouter.js.map","export default function getChildrenNavigationCache(navigation) {\n if (!navigation) {\n return {};\n }\n\n let childrenNavigationCache = navigation._childrenNavigation || (navigation._childrenNavigation = {});\n let childKeys = navigation.state.routes.map(route => route.key);\n Object.keys(childrenNavigationCache).forEach(cacheKey => {\n if (!childKeys.includes(cacheKey) && !navigation.state.isTransitioning) {\n delete childrenNavigationCache[cacheKey];\n }\n });\n return navigation._childrenNavigation;\n}\n//# sourceMappingURL=getChildrenNavigationCache.js.map","// @ts-check\n\n/**\n * @param {string} target\n */\nexport default function getEventManager(target) {\n /**\n * @type {Record<string, Record<string, ((e: any) => void)[]>>}\n */\n const listeners = {};\n /**\n * @param {string} type\n * @param {() => void} callback\n */\n\n const removeListener = (type, callback) => {\n const callbacks = listeners[type] ? listeners[type][target] : undefined;\n\n if (!callbacks) {\n return;\n }\n\n const index = callbacks.indexOf(callback);\n callbacks.splice(index, 1);\n };\n /**\n * @param {string} type\n * @param {() => void} callback\n */\n\n\n const addListener = (type, callback) => {\n listeners[type] = listeners[type] || {};\n listeners[type][target] = listeners[type][target] || [];\n listeners[type][target].push(callback);\n return {\n remove: () => removeListener(type, callback)\n };\n };\n\n return {\n addListener,\n\n /**\n * @param {string} type\n * @param {any} [data]\n */\n emit: (type, data) => {\n const items = listeners[type] || {};\n /**\n * Copy the current list of callbacks in case they are mutated during execution\n * @type {((data: any) => void)[] | undefined}\n */\n\n const callbacks = items[target] && items[target].slice();\n callbacks === null || callbacks === void 0 ? void 0 : callbacks.forEach(cb => cb(data));\n }\n };\n}\n//# sourceMappingURL=getEventManager.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport invariant from '../utils/invariant';\nimport ThemeContext from '../views/ThemeContext';\nimport NavigationFocusEvents from '../views/NavigationFocusEvents';\n\nfunction createNavigator(NavigatorView, router, navigationConfig) {\n class Navigator extends React.Component {\n // eslint-disable-next-line react/sort-comp\n constructor(props, context) {\n super(props, context);\n this.state = {\n descriptors: {},\n screenProps: this.props.screenProps,\n theme: context,\n themeContext: context\n };\n }\n\n static getDerivedStateFromProps(nextProps, currentState) {\n const prevDescriptors = currentState.descriptors;\n const {\n navigation,\n screenProps\n } = nextProps;\n invariant(navigation != null, 'The navigation prop is missing for this navigator. In react-navigation v3 and v4 you must set up your app container directly. More info: https://reactnavigation.org/docs/en/app-containers.html');\n const {\n state\n } = navigation;\n const {\n routes\n } = state;\n\n if (typeof routes === 'undefined') {\n throw new TypeError('No \"routes\" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop');\n }\n\n const descriptors = routes.reduce((descriptors, route) => {\n if (prevDescriptors && prevDescriptors[route.key] && route === prevDescriptors[route.key].state && screenProps === currentState.screenProps && currentState.themeContext === currentState.theme) {\n descriptors[route.key] = prevDescriptors[route.key];\n return descriptors;\n }\n\n const getComponent = router.getComponentForRouteName.bind(null, route.routeName);\n const childNavigation = navigation.getChildNavigation(route.key);\n const options = router.getScreenOptions(childNavigation, screenProps, currentState.themeContext);\n descriptors[route.key] = {\n key: route.key,\n getComponent,\n options,\n state: route,\n navigation: childNavigation\n };\n return descriptors;\n }, {});\n return {\n descriptors,\n screenProps,\n theme: state.themeContext\n };\n }\n\n componentDidUpdate() {\n if (this.context !== this.state.themeContext) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n themeContext: this.context\n });\n }\n }\n\n render() {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NavigationFocusEvents, {\n navigation: this.props.navigation,\n onEvent: (target, type, data) => {\n var _this$state$descripto;\n\n (_this$state$descripto = this.state.descriptors[target]) === null || _this$state$descripto === void 0 ? void 0 : _this$state$descripto.navigation.emit(type, data);\n }\n }), /*#__PURE__*/React.createElement(NavigatorView, _extends({}, this.props, {\n screenProps: this.state.screenProps,\n navigation: this.props.navigation,\n navigationConfig: navigationConfig,\n descriptors: this.state.descriptors\n })));\n }\n\n }\n\n _defineProperty(Navigator, \"contextType\", ThemeContext);\n\n _defineProperty(Navigator, \"router\", router);\n\n _defineProperty(Navigator, \"navigationOptions\", navigationConfig.navigationOptions);\n\n return Navigator;\n}\n\nexport default createNavigator;\n//# sourceMappingURL=createNavigator.js.map","import * as React from 'react'; // Only light and dark are supported currently. Arbitrary theming not available.\n\nexport default /*#__PURE__*/React.createContext('light');\n//# sourceMappingURL=ThemeContext.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// @ts-check\nimport * as React from 'react';\n/**\n * @typedef {object} State\n * @prop {number} index\n * @prop {({ key: string } & (State | {}))[]} routes\n * @prop {boolean} [isTransitioning]\n *\n * @typedef {object} ParentPayload\n * @prop {string} type\n * @prop {object} action\n * @prop {State} state\n * @prop {State | {key: string, routes?: undefined, index?: undefined, isTransitioning?: undefined} | undefined | null} lastState\n * @prop {string} [context]\n *\n * @typedef {object} Payload\n * @prop {string} type\n * @prop {object} action\n * @prop {State | {key: string}} state\n * @prop {State | {key: string} | undefined | null} lastState\n * @prop {string} [context]\n *\n * @typedef {object} Props\n * @prop {object} navigation\n * @prop {Function} navigation.addListener\n * @prop {Function} navigation.removeListener\n * @prop {() => boolean} navigation.isFocused\n * @prop {() => object | undefined} navigation.dangerouslyGetParent\n * @prop {State} navigation.state\n * @prop {(target: string, type: string, data: any) => void} onEvent\n *\n * @extends {React.Component<Props>}\n */\n\nexport default class NavigationEventManager extends React.Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"_actionSubscription\", void 0);\n\n _defineProperty(this, \"_willFocusSubscription\", void 0);\n\n _defineProperty(this, \"_willBlurSubscription\", void 0);\n\n _defineProperty(this, \"_didFocusSubscription\", void 0);\n\n _defineProperty(this, \"_didBlurSubscription\", void 0);\n\n _defineProperty(this, \"_refocusSubscription\", void 0);\n\n _defineProperty(this, \"_lastWillBlurKey\", void 0);\n\n _defineProperty(this, \"_lastWillFocusKey\", void 0);\n\n _defineProperty(this, \"_lastDidBlurKey\", void 0);\n\n _defineProperty(this, \"_lastDidFocusKey\", void 0);\n\n _defineProperty(this, \"_handleAction\", ({\n state,\n lastState,\n action,\n type,\n context\n }) => {\n var _lastState$routes;\n\n const {\n navigation,\n onEvent\n } = this.props; // We should only emit events when the navigator is focused\n // When navigator is not focused, screens inside shouldn't receive focused status either\n\n if (!navigation.isFocused()) {\n return;\n }\n\n const previous = lastState ? (_lastState$routes = lastState.routes) === null || _lastState$routes === void 0 ? void 0 : _lastState$routes[lastState.index] : undefined;\n const current = state.routes[state.index];\n const payload = {\n context: \"\".concat(current.key, \":\").concat(action.type, \"_\").concat(context || 'Root'),\n state: current,\n lastState: previous,\n action,\n type\n };\n\n if ((previous === null || previous === void 0 ? void 0 : previous.key) !== current.key) {\n this._emitWillFocus(current.key, payload);\n\n if (previous === null || previous === void 0 ? void 0 : previous.key) {\n this._emitWillBlur(previous.key, payload);\n }\n }\n\n if ((lastState === null || lastState === void 0 ? void 0 : lastState.isTransitioning) !== state.isTransitioning && state.isTransitioning === false) {\n if (this._lastWillBlurKey) {\n this._emitDidBlur(this._lastWillBlurKey, payload);\n }\n\n if (this._lastWillFocusKey) {\n this._emitDidFocus(this._lastWillFocusKey, payload);\n }\n }\n\n onEvent(current.key, 'action', payload);\n });\n\n _defineProperty(this, \"_handleWillFocus\", ({\n lastState,\n action,\n context,\n type\n }) => {\n var _lastState$routes2;\n\n const {\n navigation\n } = this.props;\n const route = navigation.state.routes[navigation.state.index];\n\n this._emitWillFocus(route.key, {\n context: \"\".concat(route.key, \":\").concat(action.type, \"_\").concat(context || 'Root'),\n state: route,\n lastState: lastState === null || lastState === void 0 ? void 0 : (_lastState$routes2 = lastState.routes) === null || _lastState$routes2 === void 0 ? void 0 : _lastState$routes2.find(r => r.key === route.key),\n action,\n type\n });\n });\n\n _defineProperty(this, \"_handleWillBlur\", ({\n lastState,\n action,\n context,\n type\n }) => {\n var _lastState$routes3;\n\n const {\n navigation\n } = this.props;\n const route = navigation.state.routes[navigation.state.index];\n\n this._emitWillBlur(route.key, {\n context: \"\".concat(route.key, \":\").concat(action.type, \"_\").concat(context || 'Root'),\n state: route,\n lastState: lastState === null || lastState === void 0 ? void 0 : (_lastState$routes3 = lastState.routes) === null || _lastState$routes3 === void 0 ? void 0 : _lastState$routes3.find(r => r.key === route.key),\n action,\n type\n });\n });\n\n _defineProperty(this, \"_handleDidFocus\", ({\n lastState,\n action,\n context,\n type\n }) => {\n const {\n navigation\n } = this.props;\n\n if (this._lastWillFocusKey) {\n const route = navigation.state.routes.find(r => r.key === this._lastWillFocusKey);\n\n if (route) {\n var _lastState$routes4;\n\n this._emitDidFocus(route.key, {\n context: \"\".concat(route.key, \":\").concat(action.type, \"_\").concat(context || 'Root'),\n state: route,\n lastState: lastState === null || lastState === void 0 ? void 0 : (_lastState$routes4 = lastState.routes) === null || _lastState$routes4 === void 0 ? void 0 : _lastState$routes4.find(r => r.key === route.key),\n action,\n type\n });\n }\n }\n });\n\n _defineProperty(this, \"_handleDidBlur\", ({\n lastState,\n action,\n context,\n type\n }) => {\n const {\n navigation\n } = this.props;\n\n if (this._lastWillBlurKey) {\n const route = navigation.state.routes.find(r => r.key === this._lastWillBlurKey);\n\n if (route) {\n var _lastState$routes5;\n\n this._emitDidBlur(route.key, {\n context: \"\".concat(route.key, \":\").concat(action.type, \"_\").concat(context || 'Root'),\n state: route,\n lastState: lastState === null || lastState === void 0 ? void 0 : (_lastState$routes5 = lastState.routes) === null || _lastState$routes5 === void 0 ? void 0 : _lastState$routes5.find(r => r.key === route.key),\n action,\n type\n });\n }\n }\n });\n\n _defineProperty(this, \"_handleRefocus\", () => {\n const {\n onEvent,\n navigation\n } = this.props;\n const route = navigation.state.routes[navigation.state.index];\n onEvent(route.key, 'refocus');\n });\n\n _defineProperty(this, \"_emitWillFocus\", (target, payload) => {\n if (this._lastWillBlurKey === target) {\n this._lastWillBlurKey = undefined;\n }\n\n if (this._lastWillFocusKey === target) {\n return;\n }\n\n this._lastDidFocusKey = undefined;\n this._lastWillFocusKey = target;\n const {\n navigation,\n onEvent\n } = this.props;\n onEvent(target, 'willFocus', payload);\n\n if (typeof navigation.state.isTransitioning !== 'boolean' || navigation.state.isTransitioning !== true && !navigation.dangerouslyGetParent()) {\n this._emitDidFocus(target, payload);\n }\n });\n\n _defineProperty(this, \"_emitWillBlur\", (target, payload) => {\n if (this._lastWillFocusKey === target) {\n this._lastWillFocusKey = undefined;\n }\n\n if (this._lastWillBlurKey === target) {\n return;\n }\n\n this._lastDidBlurKey = undefined;\n this._lastWillBlurKey = target;\n const {\n navigation,\n onEvent\n } = this.props;\n onEvent(target, 'willBlur', payload);\n\n if (typeof navigation.state.isTransitioning !== 'boolean' || navigation.state.isTransitioning !== true && !navigation.dangerouslyGetParent()) {\n this._emitDidBlur(target, payload);\n }\n });\n\n _defineProperty(this, \"_emitDidFocus\", (target, payload) => {\n if (this._lastWillFocusKey !== target || this._lastDidFocusKey === target) {\n return;\n }\n\n this._lastDidFocusKey = target;\n const {\n onEvent\n } = this.props;\n onEvent(target, 'didFocus', payload);\n });\n\n _defineProperty(this, \"_emitDidBlur\", (target, payload) => {\n if (this._lastWillBlurKey !== target || this._lastDidBlurKey === target) {\n return;\n }\n\n this._lastDidBlurKey = target;\n const {\n onEvent\n } = this.props;\n onEvent(target, 'didBlur', payload);\n });\n }\n\n componentDidMount() {\n const {\n navigation\n } = this.props;\n this._actionSubscription = navigation.addListener('action', this._handleAction);\n this._willFocusSubscription = navigation.addListener('willFocus', this._handleWillFocus);\n this._willBlurSubscription = navigation.addListener('willBlur', this._handleWillBlur);\n this._didFocusSubscription = navigation.addListener('didFocus', this._handleDidFocus);\n this._didBlurSubscription = navigation.addListener('didBlur', this._handleDidBlur);\n this._refocusSubscription = navigation.addListener('refocus', this._handleRefocus);\n }\n\n componentWillUnmount() {\n var _this$_actionSubscrip, _this$_willFocusSubsc, _this$_willBlurSubscr, _this$_didFocusSubscr, _this$_didBlurSubscri, _this$_refocusSubscri;\n\n (_this$_actionSubscrip = this._actionSubscription) === null || _this$_actionSubscrip === void 0 ? void 0 : _this$_actionSubscrip.remove();\n (_this$_willFocusSubsc = this._willFocusSubscription) === null || _this$_willFocusSubsc === void 0 ? void 0 : _this$_willFocusSubsc.remove();\n (_this$_willBlurSubscr = this._willBlurSubscription) === null || _this$_willBlurSubscr === void 0 ? void 0 : _this$_willBlurSubscr.remove();\n (_this$_didFocusSubscr = this._didFocusSubscription) === null || _this$_didFocusSubscr === void 0 ? void 0 : _this$_didFocusSubscr.remove();\n (_this$_didBlurSubscri = this._didBlurSubscription) === null || _this$_didBlurSubscri === void 0 ? void 0 : _this$_didBlurSubscri.remove();\n (_this$_refocusSubscri = this._refocusSubscription) === null || _this$_refocusSubscri === void 0 ? void 0 : _this$_refocusSubscri.remove();\n }\n /**\n * @type {{ remove(): void } | undefined}\n */\n\n\n render() {\n return null;\n }\n\n}\n//# sourceMappingURL=NavigationFocusEvents.js.map","import * as React from 'react'; // Change undefined to null in next major version bump\n\nexport default /*#__PURE__*/React.createContext(undefined);\n//# sourceMappingURL=NavigationContext.js.map","import createNavigator from '../navigators/createNavigator';\nimport SwitchRouter from '../routers/SwitchRouter';\nimport SwitchView from '../views/SwitchView/SwitchView';\n\nfunction createSwitchNavigator(routeConfigMap, switchConfig = {}) {\n const router = SwitchRouter(routeConfigMap, switchConfig);\n const Navigator = createNavigator(SwitchView, router, switchConfig);\n return Navigator;\n}\n\nexport default createSwitchNavigator;\n//# sourceMappingURL=createSwitchNavigator.js.map","import invariant from '../utils/invariant';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport createConfigGetter from './createConfigGetter';\nimport * as NavigationActions from '../NavigationActions';\nimport * as SwitchActions from './SwitchActions';\nimport * as StackActions from './StackActions';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport { createPathParser } from './pathUtils';\n\nconst defaultActionCreators = () => ({});\n\nexport default ((routeConfigs, config = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n const order = config.order || Object.keys(routeConfigs);\n const getCustomActionCreators = config.getCustomActionCreators || defaultActionCreators;\n const {\n initialRouteParams\n } = config;\n const initialRouteName = config.initialRouteName || order[0];\n const backBehavior = config.backBehavior || 'none';\n const resetOnBlur = config.hasOwnProperty('resetOnBlur') ? config.resetOnBlur : true;\n const initialRouteIndex = order.indexOf(initialRouteName);\n\n if (initialRouteIndex === -1) {\n throw new Error(\"Invalid initialRouteName '\".concat(initialRouteName, \"'.\") + \"Should be one of \".concat(order.map(n => \"\\\"\".concat(n, \"\\\"\")).join(', ')));\n }\n\n const childRouters = {};\n order.forEach(routeName => {\n childRouters[routeName] = null;\n const screen = getScreenForRouteName(routeConfigs, routeName);\n\n if (screen.router) {\n childRouters[routeName] = screen.router;\n }\n });\n\n function getParamsForRoute(routeName, params) {\n let routeConfig = routeConfigs[routeName];\n\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params,\n ...params\n };\n } else {\n return params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams\n } = createPathParser(childRouters, routeConfigs, config);\n\n function resetChildRoute(routeName) {\n let initialParams = routeName === initialRouteName ? initialRouteParams : null; // note(brentvatne): merging initialRouteParams *on top* of default params\n // on the route seems incorrect but it's consistent with existing behavior\n // in stackrouter\n\n let params = getParamsForRoute(routeName, initialParams);\n const childRouter = childRouters[routeName];\n\n if (childRouter) {\n const childAction = NavigationActions.init();\n return { ...childRouter.getStateForAction(childAction),\n key: routeName,\n routeName,\n ...(params ? {\n params\n } : {})\n };\n }\n\n return {\n key: routeName,\n routeName,\n ...(params ? {\n params\n } : {})\n };\n }\n\n function getNextState(action, prevState, possibleNextState) {\n function updateNextStateHistory(prevState, nextState) {\n if (backBehavior !== 'history' || prevState && nextState && nextState.index === prevState.index) {\n return nextState;\n }\n\n let nextRouteKeyHistory = prevState ? prevState.routeKeyHistory : [];\n\n if (action.type === NavigationActions.NAVIGATE) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n\n const keyToAdd = nextState.routes[nextState.index].key;\n nextRouteKeyHistory = nextRouteKeyHistory.filter(k => k !== keyToAdd); // dedup\n\n nextRouteKeyHistory.push(keyToAdd);\n } else if (action.type === NavigationActions.BACK) {\n nextRouteKeyHistory = [...nextRouteKeyHistory]; // copy\n\n nextRouteKeyHistory.pop();\n }\n\n return { ...nextState,\n routeKeyHistory: nextRouteKeyHistory\n };\n }\n\n let nextState = possibleNextState;\n\n if (prevState && possibleNextState && prevState.index !== possibleNextState.index && resetOnBlur) {\n const prevRouteName = prevState.routes[prevState.index].routeName;\n const nextRoutes = [...possibleNextState.routes];\n nextRoutes[prevState.index] = resetChildRoute(prevRouteName);\n nextState = { ...possibleNextState,\n routes: nextRoutes\n };\n }\n\n return updateNextStateHistory(prevState, nextState);\n }\n\n function getInitialState() {\n const routes = order.map(resetChildRoute);\n const initialState = {\n routes,\n index: initialRouteIndex\n };\n\n if (backBehavior === 'history') {\n const initialKey = routes[initialRouteIndex].key;\n initialState['routeKeyHistory'] = [initialKey];\n }\n\n return initialState;\n }\n\n return {\n childRouters,\n\n getActionCreators(route, stateKey) {\n return getCustomActionCreators(route, stateKey);\n },\n\n getStateForAction(action, inputState) {\n let prevState = inputState ? { ...inputState\n } : inputState;\n let state = inputState || getInitialState();\n let activeChildIndex = state.index;\n\n if (action.type === NavigationActions.INIT) {\n // NOTE(brentvatne): this seems weird... why are we merging these\n // params into child routes?\n // ---------------------------------------------------------------\n // Merge any params from the action into all the child routes\n const {\n params\n } = action;\n\n if (params) {\n state.routes = state.routes.map(route => ({ ...route,\n params: { ...route.params,\n ...params,\n ...(route.routeName === initialRouteName ? initialRouteParams : null)\n }\n }));\n }\n }\n\n if (action.type === SwitchActions.JUMP_TO && (action.key == null || action.key === state.key)) {\n const {\n params\n } = action;\n const index = state.routes.findIndex(route => route.routeName === action.routeName);\n\n if (index === -1) {\n throw new Error(\"There is no route named '\".concat(action.routeName, \"' in the navigator with the key '\").concat(action.key, \"'.\\n\") + \"Must be one of: \".concat(state.routes.map(route => \"'\".concat(route.routeName, \"'\")).join(',')));\n }\n\n return getNextState(action, prevState, { ...state,\n routes: params ? state.routes.map((route, i) => i === index ? { ...route,\n params: { ...route.params,\n ...params\n }\n } : route) : state.routes,\n index\n });\n } // Let the current child handle it\n\n\n const activeChildLastState = state.routes[state.index];\n const activeChildRouter = childRouters[order[state.index]];\n\n if (activeChildRouter) {\n const activeChildState = activeChildRouter.getStateForAction(action, activeChildLastState);\n\n if (!activeChildState && inputState) {\n return null;\n }\n\n if (activeChildState && activeChildState !== activeChildLastState) {\n const routes = [...state.routes];\n routes[state.index] = activeChildState;\n return getNextState(action, prevState, { ...state,\n routes\n });\n }\n } // Handle tab changing. Do this after letting the current tab try to\n // handle the action, to allow inner children to change first\n\n\n const isBackEligible = action.key == null || action.key === activeChildLastState.key;\n\n if (action.type === NavigationActions.BACK) {\n if (isBackEligible && backBehavior === 'initialRoute') {\n activeChildIndex = initialRouteIndex;\n } else if (isBackEligible && backBehavior === 'order') {\n activeChildIndex = Math.max(0, activeChildIndex - 1);\n } // The history contains current route, so we can only go back\n // if there is more than one item in the history\n else if (isBackEligible && backBehavior === 'history' && state.routeKeyHistory.length > 1) {\n const routeKey = state.routeKeyHistory[state.routeKeyHistory.length - 2];\n activeChildIndex = order.indexOf(routeKey);\n }\n }\n\n let didNavigate = false;\n\n if (action.type === NavigationActions.NAVIGATE) {\n didNavigate = !!order.find((childId, i) => {\n if (childId === action.routeName) {\n activeChildIndex = i;\n return true;\n }\n\n return false;\n });\n\n if (didNavigate) {\n const childState = state.routes[activeChildIndex];\n const childRouter = childRouters[action.routeName];\n let newChildState = childState;\n\n if (action.action && childRouter) {\n const childStateUpdate = childRouter.getStateForAction(action.action, childState);\n\n if (childStateUpdate) {\n newChildState = childStateUpdate;\n }\n }\n\n if (action.params) {\n newChildState = { ...newChildState,\n params: { ...(newChildState.params || {}),\n ...action.params\n }\n };\n }\n\n if (newChildState !== childState) {\n const routes = [...state.routes];\n routes[activeChildIndex] = newChildState;\n const nextState = { ...state,\n routes,\n index: activeChildIndex\n };\n return getNextState(action, prevState, nextState);\n } else if (newChildState === childState && state.index === activeChildIndex && prevState) {\n return null;\n }\n }\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n\n if (lastRoute) {\n const params = { ...lastRoute.params,\n ...action.params\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = { ...lastRoute,\n params\n };\n return getNextState(action, prevState, { ...state,\n routes\n });\n }\n }\n\n if (activeChildIndex !== state.index) {\n return getNextState(action, prevState, { ...state,\n index: activeChildIndex\n });\n } else if (didNavigate && !inputState) {\n return state;\n } else if (didNavigate) {\n return { ...state\n };\n }\n\n const isActionBackOrPop = action.type === NavigationActions.BACK || action.type === StackActions.POP || action.type === StackActions.POP_TO_TOP;\n const sendActionToInactiveChildren = !isActionBackOrPop || action.type === NavigationActions.BACK && action.key != null; // Let other children handle it and switch to the first child that returns a new state\n // Do not do this for StackActions.POP or NavigationActions.BACK actions without a key:\n // it would be unintuitive for these actions to switch to another tab just because that tab had a Stack that could accept a back action\n\n if (sendActionToInactiveChildren) {\n let index = state.index;\n let routes = state.routes;\n order.find((childId, i) => {\n const childRouter = childRouters[childId];\n\n if (i === index) {\n return false;\n }\n\n let childState = routes[i];\n\n if (childRouter) {\n childState = childRouter.getStateForAction(action, childState);\n }\n\n if (!childState) {\n index = i;\n return true;\n }\n\n if (childState !== routes[i]) {\n routes = [...routes];\n routes[i] = childState;\n index = i;\n return true;\n }\n\n return false;\n }); // Nested routers can be updated after switching children with actions such as SET_PARAMS\n // and COMPLETE_TRANSITION.\n\n if (action.preserveFocus) {\n index = state.index;\n }\n\n if (index !== state.index || routes !== state.routes) {\n return getNextState(action, prevState, { ...state,\n index,\n routes\n });\n }\n }\n\n return state;\n },\n\n getComponentForState(state) {\n const routeName = state.routes[state.index].routeName;\n invariant(routeName, \"There is no route defined for index \".concat(state.index, \". Check that\\n that you passed in a navigation state with a valid tab/screen index.\"));\n const childRouter = childRouters[routeName];\n\n if (childRouter) {\n return childRouter.getComponentForState(state.routes[state.index]);\n }\n\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(routeConfigs, config.defaultNavigationOptions)\n };\n});\n//# sourceMappingURL=SwitchRouter.js.map","import { isValidElementType } from 'react-is';\nimport invariant from '../utils/invariant';\n/**\n * Simple helper that gets a single screen (React component or navigator)\n * out of the navigator config.\n */\n\nexport default function getScreenForRouteName(routeConfigs, routeName) {\n const routeConfig = routeConfigs[routeName];\n\n if (!routeConfig) {\n throw new Error(\"There is no route defined for key \".concat(routeName, \".\\n\") + \"Must be one of: \".concat(Object.keys(routeConfigs).map(a => \"'\".concat(a, \"'\")).join(',')));\n }\n\n if (routeConfig.screen) {\n return routeConfig.screen;\n }\n\n if (typeof routeConfig.getScreen === 'function') {\n const screen = routeConfig.getScreen();\n invariant(isValidElementType(screen), \"The getScreen defined for route '\".concat(routeName, \" didn't return a valid \") + 'screen or navigator.\\n\\n' + 'Please pass it like this:\\n' + \"\".concat(routeName, \": {\\n getScreen: () => require('./MyScreen').default\\n}\"));\n return screen;\n }\n\n return routeConfig;\n}\n//# sourceMappingURL=getScreenForRouteName.js.map","import invariant from '../utils/invariant';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport validateScreenOptions from './validateScreenOptions';\n\nfunction applyConfig(configurer, navigationOptions, configProps) {\n if (typeof configurer === 'function') {\n return { ...navigationOptions,\n ...configurer({ ...configProps,\n navigationOptions\n })\n };\n }\n\n if (typeof configurer === 'object') {\n return { ...navigationOptions,\n ...configurer\n };\n }\n\n return navigationOptions;\n}\n\nexport default ((routeConfigs, navigatorScreenConfig) => (navigation, screenProps, theme) => {\n const {\n state\n } = navigation;\n const route = state;\n invariant(route.routeName && typeof route.routeName === 'string', 'Cannot get config because the route does not have a routeName.');\n const Component = getScreenForRouteName(routeConfigs, route.routeName);\n const routeConfig = routeConfigs[route.routeName];\n const routeScreenConfig = routeConfig === Component ? null : routeConfig.navigationOptions;\n const componentScreenConfig = Component.navigationOptions;\n const configOptions = {\n navigation,\n screenProps: screenProps || {},\n theme\n };\n let outputConfig = applyConfig(navigatorScreenConfig, {}, configOptions);\n outputConfig = applyConfig(componentScreenConfig, outputConfig, configOptions);\n outputConfig = applyConfig(routeScreenConfig, outputConfig, configOptions);\n validateScreenOptions(outputConfig, route);\n return outputConfig;\n});\n//# sourceMappingURL=createConfigGetter.js.map","const deprecatedKeys = ['tabBar'];\n/**\n * Make sure screen options returned by the `getScreenOption`\n * are valid\n */\n\nexport default ((screenOptions, route) => {\n const keys = Object.keys(screenOptions);\n const deprecatedKey = keys.find(key => deprecatedKeys.includes(key));\n\n if (typeof screenOptions.title === 'function') {\n throw new Error([\"`title` cannot be defined as a function in navigation options for `\".concat(route.routeName, \"` screen. \\n\"), 'Try replacing the following:', '{', ' title: ({ state }) => state...', '}', '', 'with:', '({ navigation }) => ({', ' title: navigation.state...', '})'].join('\\n'));\n }\n\n if (deprecatedKey && typeof screenOptions[deprecatedKey] === 'function') {\n throw new Error([\"`\".concat(deprecatedKey, \"` cannot be defined as a function in navigation options for `\").concat(route.routeName, \"` screen. \\n\"), 'Try replacing the following:', '{', \" \".concat(deprecatedKey, \": ({ state }) => ({\"), ' key: state...', ' })', '}', '', 'with:', '({ navigation }) => ({', \" \".concat(deprecatedKey, \"Key: navigation.state...\"), '})'].join('\\n'));\n }\n\n if (deprecatedKey && typeof screenOptions[deprecatedKey] === 'object') {\n throw new Error([\"Invalid key `\".concat(deprecatedKey, \"` defined in navigation options for `\").concat(route.routeName, \"` screen.\"), '\\n', 'Try replacing the following navigation options:', '{', \" \".concat(deprecatedKey, \": {\"), ...Object.keys(screenOptions[deprecatedKey]).map(key => \" \".concat(key, \": ...,\")), ' },', '}', '\\n', 'with:', '{', ...Object.keys(screenOptions[deprecatedKey]).map(key => \" \".concat(deprecatedKey + key[0].toUpperCase() + key.slice(1), \": ...,\")), '}'].join('\\n'));\n }\n});\n//# sourceMappingURL=validateScreenOptions.js.map","export const JUMP_TO = 'Navigation/JUMP_TO';\nexport const jumpTo = payload => ({\n type: JUMP_TO,\n preserveFocus: true,\n ...payload\n});\n//# sourceMappingURL=SwitchActions.js.map","export const POP = 'Navigation/POP';\nexport const POP_TO_TOP = 'Navigation/POP_TO_TOP';\nexport const PUSH = 'Navigation/PUSH';\nexport const RESET = 'Navigation/RESET';\nexport const REPLACE = 'Navigation/REPLACE';\nexport const COMPLETE_TRANSITION = 'Navigation/COMPLETE_TRANSITION';\nexport const pop = payload => ({\n type: POP,\n ...payload\n});\nexport const popToTop = payload => ({\n type: POP_TO_TOP,\n ...payload\n});\nexport const push = payload => ({\n type: PUSH,\n ...payload\n});\nexport const reset = payload => ({\n type: RESET,\n key: null,\n ...payload\n});\nexport const replace = payload => ({\n type: REPLACE,\n ...payload\n});\nexport const completeTransition = payload => ({\n type: COMPLETE_TRANSITION,\n preserveFocus: true,\n ...payload\n});\n//# sourceMappingURL=StackActions.js.map","import { isValidElementType } from 'react-is';\nimport invariant from '../utils/invariant';\n/**\n * Make sure the config passed e.g. to StackRouter, TabRouter has\n * the correct format, and throw a clear error if it doesn't.\n */\n\nfunction validateRouteConfigMap(routeConfigs) {\n const routeNames = Object.keys(routeConfigs);\n invariant(routeNames.length > 0, 'Please specify at least one route when configuring a navigator.');\n routeNames.forEach(routeName => {\n const routeConfig = routeConfigs[routeName];\n const screenComponent = getScreenComponent(routeConfig);\n\n if (!screenComponent || !isValidElementType(screenComponent) && !routeConfig.getScreen) {\n throw new Error(\"The component for route '\".concat(routeName, \"' must be a React component. For example:\\n\\nimport MyScreen from './MyScreen';\\n...\\n\").concat(routeName, \": MyScreen,\\n}\\n\\nYou can also use a navigator:\\n\\nimport MyNavigator from './MyNavigator';\\n...\\n\").concat(routeName, \": MyNavigator,\\n}\"));\n }\n\n if (routeConfig.screen && routeConfig.getScreen) {\n throw new Error(\"Route '\".concat(routeName, \"' should declare a screen or a getScreen, not both.\"));\n }\n });\n}\n\nfunction getScreenComponent(routeConfig) {\n if (!routeConfig) {\n return null;\n }\n\n return routeConfig.screen ? routeConfig.screen : routeConfig;\n}\n\nexport default validateRouteConfigMap;\n//# sourceMappingURL=validateRouteConfigMap.js.map","/* eslint-disable import/no-commonjs */\nimport pathToRegexp, { compile } from 'path-to-regexp';\nimport * as NavigationActions from '../NavigationActions';\nimport invariant from '../utils/invariant';\n\nconst queryString = require('query-string');\n\nexport const getParamsFromPath = (inputParams, pathMatch, pathMatchKeys) => {\n const params = pathMatch.slice(1).reduce( // iterate over matched path params\n (paramsOut, matchResult, i) => {\n const key = pathMatchKeys[i];\n\n if (!key || key.asterisk) {\n return paramsOut;\n }\n\n const paramName = key.name;\n let decodedMatchResult;\n\n if (matchResult) {\n try {\n decodedMatchResult = decodeURIComponent(matchResult);\n } catch (e) {// ignore `URIError: malformed URI`\n }\n }\n\n paramsOut[paramName] = decodedMatchResult || matchResult;\n return paramsOut;\n }, { // start with the input(query string) params, which will get overridden by path params\n ...inputParams\n });\n return params;\n};\n\nconst getRestOfPath = (pathMatch, pathMatchKeys) => {\n const rest = pathMatch[pathMatchKeys.findIndex(k => k.asterisk) + 1];\n return rest;\n};\n\nconst determineDelimiter = (uri, uriPrefix) => {\n if (Array.isArray(uriPrefix)) {\n if (uriPrefix.length === 1) return uriPrefix[0];\n\n for (let prefix of uriPrefix) {\n if (uri.startsWith(prefix)) return prefix;\n }\n\n return null;\n }\n\n return uriPrefix;\n};\n\nexport const urlToPathAndParams = (url, uriPrefix) => {\n const searchMatch = url.match(/^(.*)\\?(.*)$/);\n const [, urlWithoutQuery, query] = searchMatch || [null, url, {}];\n const params = queryString.parse(query);\n const delimiter = determineDelimiter(urlWithoutQuery, uriPrefix) || '://';\n let path = urlWithoutQuery.split(delimiter)[1];\n\n if (path === undefined) {\n path = urlWithoutQuery;\n }\n\n if (path === '/') {\n path = '';\n }\n\n if (path[path.length - 1] === '/') {\n path = path.slice(0, -1);\n }\n\n return {\n path,\n params\n };\n};\nexport const createPathParser = (childRouters, routeConfigs, {\n paths: pathConfigs = {},\n disableRouteNamePaths\n}) => {\n const pathsByRouteNames = {};\n let paths = []; // Build pathsByRouteNames, which includes a regex to match paths for each route. Keep in mind, the regex will pass for the route and all child routes. The code that uses pathsByRouteNames will need to also verify that the child router produces an action, in the case of isPathMatchable false (a null path).\n\n Object.keys(childRouters).forEach(routeName => {\n let pathPattern; // First check for paths on the router, then check the route config\n\n if (pathConfigs[routeName] !== undefined) {\n pathPattern = pathConfigs[routeName];\n } else {\n pathPattern = routeConfigs[routeName].path;\n }\n\n if (pathPattern === undefined) {\n // If the user hasn't specified a path at all nor disableRouteNamePaths, then we assume the routeName is an appropriate path\n pathPattern = disableRouteNamePaths ? null : routeName;\n }\n\n invariant(pathPattern === null || typeof pathPattern === 'string', \"Route path for \".concat(routeName, \" must be specified as a string, or null.\")); // the path may be specified as null, which is similar to empty string because it allows child routers to handle the action, but it will not match empty paths\n\n const isPathMatchable = pathPattern !== null; // pathPattern is a string with inline params, such as people/:id/*foo\n\n const exactReKeys = [];\n const exactRe = isPathMatchable ? pathToRegexp(pathPattern, exactReKeys) : null;\n const extendedPathReKeys = [];\n const isWildcard = pathPattern === '' || !isPathMatchable;\n const extendedPathRe = pathToRegexp(isWildcard ? '*' : \"\".concat(pathPattern, \"/*\"), extendedPathReKeys);\n pathsByRouteNames[routeName] = {\n exactRe,\n exactReKeys,\n extendedPathRe,\n extendedPathReKeys,\n isWildcard,\n toPath: pathPattern === null ? () => '' : compile(pathPattern)\n };\n });\n paths = Object.entries(pathsByRouteNames);\n\n const getActionForPathAndParams = (pathToResolve = '', inputParams = {}) => {\n // Attempt to match `pathToResolve` with a route in this router's routeConfigs, deferring to child routers\n for (const [routeName, path] of paths) {\n const {\n exactRe,\n exactReKeys,\n extendedPathRe,\n extendedPathReKeys\n } = path;\n const childRouter = childRouters[routeName];\n const exactMatch = exactRe && exactRe.exec(pathToResolve);\n\n if (exactMatch && exactMatch.length) {\n const extendedMatch = extendedPathRe && extendedPathRe.exec(pathToResolve);\n let childAction = null;\n\n if (extendedMatch && childRouter) {\n const restOfPath = getRestOfPath(extendedMatch, extendedPathReKeys);\n childAction = childRouter.getActionForPathAndParams(restOfPath, inputParams);\n }\n\n return NavigationActions.navigate({\n routeName,\n params: getParamsFromPath(inputParams, exactMatch, exactReKeys),\n action: childAction\n });\n }\n }\n\n for (const [routeName, path] of paths) {\n const {\n extendedPathRe,\n extendedPathReKeys\n } = path;\n const childRouter = childRouters[routeName];\n const extendedMatch = extendedPathRe && extendedPathRe.exec(pathToResolve);\n\n if (extendedMatch && extendedMatch.length) {\n const restOfPath = getRestOfPath(extendedMatch, extendedPathReKeys);\n let childAction = null;\n\n if (childRouter) {\n childAction = childRouter.getActionForPathAndParams(restOfPath, inputParams);\n }\n\n if (!childAction) {\n continue;\n }\n\n return NavigationActions.navigate({\n routeName,\n params: getParamsFromPath(inputParams, extendedMatch, extendedPathReKeys),\n action: childAction\n });\n }\n }\n\n return null;\n };\n\n const getPathAndParamsForRoute = route => {\n const {\n routeName,\n params\n } = route;\n const childRouter = childRouters[routeName];\n const {\n toPath,\n exactReKeys\n } = pathsByRouteNames[routeName];\n const subPath = toPath(params);\n const nonPathParams = {};\n\n if (params) {\n Object.keys(params).filter(paramName => !exactReKeys.find(k => k.name === paramName)).forEach(paramName => {\n nonPathParams[paramName] = params[paramName];\n });\n }\n\n if (childRouter) {\n // If it has a router it's a navigator.\n // If it doesn't have router it's an ordinary React component.\n const child = childRouter.getPathAndParamsForState(route);\n return {\n path: subPath ? \"\".concat(subPath, \"/\").concat(child.path) : child.path,\n params: child.params ? { ...nonPathParams,\n ...child.params\n } : nonPathParams\n };\n }\n\n return {\n path: subPath,\n params: nonPathParams\n };\n };\n\n return {\n getActionForPathAndParams,\n getPathAndParamsForRoute\n };\n};\n//# sourceMappingURL=pathUtils.js.map","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${encode(object.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","import * as React from 'react';\nimport SceneView from '../SceneView';\nexport default class SwitchView extends React.Component {\n render() {\n const {\n state\n } = this.props.navigation;\n const activeKey = state.routes[state.index].key;\n const descriptor = this.props.descriptors[activeKey];\n const ChildComponent = descriptor.getComponent();\n return /*#__PURE__*/React.createElement(SceneView, {\n component: ChildComponent,\n navigation: descriptor.navigation,\n screenProps: this.props.screenProps\n });\n }\n\n}\n//# sourceMappingURL=SwitchView.js.map","import * as React from 'react';\nimport NavigationContext from './NavigationContext';\nexport default class SceneView extends React.PureComponent {\n render() {\n const {\n screenProps,\n component: Component,\n navigation\n } = this.props;\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(Component, {\n screenProps: screenProps,\n navigation: navigation\n }));\n }\n\n}\n//# sourceMappingURL=SceneView.js.map","export default {\n light: {\n header: '#fff',\n headerBorder: '#a7a7aa',\n body: '#fff',\n bodyBorder: '#a7a7aa',\n bodyContent: '#fff',\n label: 'rgba(0, 0, 0, 0.9)'\n },\n dark: {\n header: '#2a2a2a',\n headerBorder: '#3a3a3a',\n body: '#000',\n bodyBorder: '#343434',\n bodyContent: '#2a2a2a',\n label: '#fff'\n }\n};\n//# sourceMappingURL=ThemeColors.js.map","import { useContext } from 'react';\nimport ThemeContext from './views/ThemeContext';\nexport default (() => useContext(ThemeContext));\n//# sourceMappingURL=useTheme.js.map","import * as NavigationActions from '../NavigationActions';\nimport * as StackActions from './StackActions';\nimport createConfigGetter from './createConfigGetter';\nimport getScreenForRouteName from './getScreenForRouteName';\nimport StateUtils from '../StateUtils';\nimport validateRouteConfigMap from './validateRouteConfigMap';\nimport invariant from '../utils/invariant';\nimport { generateKey } from './KeyGenerator';\nimport { createPathParser } from './pathUtils';\n\nfunction behavesLikePushAction(action) {\n return action.type === NavigationActions.NAVIGATE || action.type === StackActions.PUSH;\n}\n\nconst defaultActionCreators = () => ({});\n\nfunction isResetToRootStack(action) {\n return action.type === StackActions.RESET && action.key === null;\n}\n\nexport default ((routeConfigs, stackConfig = {}) => {\n // Fail fast on invalid route definitions\n validateRouteConfigMap(routeConfigs);\n const childRouters = {};\n const routeNames = Object.keys(routeConfigs); // Loop through routes and find child routers\n\n routeNames.forEach(routeName => {\n // We're not using `getScreenForRouteName` here to preserve the lazy loading\n // behaviour of routes. This means that routes with child routers must be\n // defined using a component directly or with an object with a screen prop.\n const routeConfig = routeConfigs[routeName];\n const screen = routeConfig && routeConfig.screen ? routeConfig.screen : routeConfig;\n\n if (screen && screen.router) {\n // If it has a router it's a navigator.\n childRouters[routeName] = screen.router;\n } else {\n // If it doesn't have router it's an ordinary React component.\n childRouters[routeName] = null;\n }\n });\n const {\n initialRouteParams\n } = stackConfig;\n const getCustomActionCreators = stackConfig.getCustomActionCreators || defaultActionCreators;\n const initialRouteName = stackConfig.initialRouteName || routeNames[0];\n const initialChildRouter = childRouters[initialRouteName];\n\n function getInitialState(action) {\n let route = {};\n const childRouter = childRouters[action.routeName]; // This is a push-like action, and childRouter will be a router or null if we are responsible for this routeName\n\n if (behavesLikePushAction(action) && childRouter !== undefined) {\n let childState = {}; // The router is null for normal leaf routes\n\n if (childRouter !== null) {\n const childAction = action.action || NavigationActions.init({\n params: action.params\n });\n childState = childRouter.getStateForAction(childAction);\n }\n\n return {\n key: 'StackRouterRoot',\n isTransitioning: false,\n index: 0,\n routes: [{\n params: action.params,\n ...childState,\n key: action.key || generateKey(),\n routeName: action.routeName\n }]\n };\n }\n\n if (initialChildRouter) {\n route = initialChildRouter.getStateForAction(NavigationActions.navigate({\n routeName: initialRouteName,\n params: initialRouteParams\n }));\n }\n\n const params = (routeConfigs[initialRouteName].params || route.params || action.params || initialRouteParams) && { ...(routeConfigs[initialRouteName].params || {}),\n ...(route.params || {}),\n ...(action.params || {}),\n ...(initialRouteParams || {})\n };\n const {\n initialRouteKey\n } = stackConfig;\n route = { ...route,\n ...(params ? {\n params\n } : {}),\n routeName: initialRouteName,\n key: action.key || initialRouteKey || generateKey()\n };\n return {\n key: 'StackRouterRoot',\n isTransitioning: false,\n index: 0,\n routes: [route]\n };\n }\n\n function getParamsForRouteAndAction(routeName, action) {\n let routeConfig = routeConfigs[routeName];\n\n if (routeConfig && routeConfig.params) {\n return { ...routeConfig.params,\n ...action.params\n };\n } else {\n return action.params;\n }\n }\n\n const {\n getPathAndParamsForRoute,\n getActionForPathAndParams\n } = createPathParser(childRouters, routeConfigs, stackConfig);\n return {\n childRouters,\n\n getComponentForState(state) {\n const activeChildRoute = state.routes[state.index];\n const {\n routeName\n } = activeChildRoute;\n\n if (childRouters[routeName]) {\n return childRouters[routeName].getComponentForState(activeChildRoute);\n }\n\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getComponentForRouteName(routeName) {\n return getScreenForRouteName(routeConfigs, routeName);\n },\n\n getActionCreators(route, navStateKey) {\n return { ...getCustomActionCreators(route, navStateKey),\n pop: (n, params) => StackActions.pop({\n n,\n ...params\n }),\n popToTop: params => StackActions.popToTop(params),\n push: (routeName, params, action) => StackActions.push({\n routeName,\n params,\n action\n }),\n replace: (replaceWith, params, action, newKey) => {\n if (typeof replaceWith === 'string') {\n return StackActions.replace({\n routeName: replaceWith,\n params,\n action,\n key: route.key,\n newKey\n });\n }\n\n invariant(typeof replaceWith === 'object', 'Must replaceWith an object or a string');\n invariant(params == null, 'Params must not be provided to .replace() when specifying an object');\n invariant(action == null, 'Child action must not be provided to .replace() when specifying an object');\n invariant(newKey == null, 'Child action must not be provided to .replace() when specifying an object');\n return StackActions.replace(replaceWith);\n },\n reset: (actions, index) => StackActions.reset({\n actions,\n index: index == null ? actions.length - 1 : index,\n key: navStateKey\n }),\n dismiss: () => NavigationActions.back({\n key: navStateKey\n })\n };\n },\n\n getStateForAction(action, state) {\n // Set up the initial state if needed\n if (!state) {\n return getInitialState(action);\n }\n\n const activeChildRoute = state.routes[state.index];\n\n if (!isResetToRootStack(action) && action.type !== NavigationActions.NAVIGATE) {\n // Let the active child router handle the action\n const activeChildRouter = childRouters[activeChildRoute.routeName];\n\n if (activeChildRouter) {\n const route = activeChildRouter.getStateForAction(action, activeChildRoute);\n\n if (route !== null && route !== activeChildRoute) {\n return StateUtils.replaceAt(state, activeChildRoute.key, route, // the following tells replaceAt to NOT change the index to this route for the setParam action, because people don't expect param-setting actions to switch the active route\n action.type === NavigationActions.SET_PARAMS);\n }\n }\n } else if (action.type === NavigationActions.NAVIGATE) {\n // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n for (let childRoute of state.routes.slice().reverse()) {\n let childRouter = childRouters[childRoute.routeName];\n let childAction = action.routeName === childRoute.routeName && action.action ? action.action : action;\n\n if (childRouter) {\n const nextRouteState = childRouter.getStateForAction(childAction, childRoute);\n\n if (nextRouteState === null || nextRouteState !== childRoute) {\n const newState = StateUtils.replaceAndPrune(state, nextRouteState ? nextRouteState.key : childRoute.key, nextRouteState ? nextRouteState : childRoute);\n return { ...newState,\n isTransitioning: state.index !== newState.index ? action.immediate !== true : state.isTransitioning\n };\n }\n }\n }\n } // Handle push and navigate actions. This must happen after the focused\n // child router has had a chance to handle the action.\n\n\n if (behavesLikePushAction(action) && childRouters[action.routeName] !== undefined // undefined means it's not a childRouter or a screen\n ) {\n const childRouter = childRouters[action.routeName];\n let route;\n invariant(action.type !== StackActions.PUSH || action.key == null, 'StackRouter does not support key on the push action'); // Before pushing a new route we first try to find one in the existing route stack\n // More information on this: https://github.com/react-navigation/rfcs/blob/master/text/0004-less-pushy-navigate.md\n\n const lastRouteIndex = state.routes.findIndex(r => {\n if (action.key) {\n return r.key === action.key;\n } else {\n return r.routeName === action.routeName;\n }\n }); // An instance of this route exists already and we're dealing with a navigate action\n\n if (action.type !== StackActions.PUSH && lastRouteIndex !== -1) {\n // If index is unchanged and params are not being set, leave state identity intact\n if (state.index === lastRouteIndex && !action.params) {\n return null;\n } // Remove the now unused routes at the tail of the routes array\n\n\n const routes = state.routes.slice(0, lastRouteIndex + 1); // Apply params if provided, otherwise leave route identity intact\n\n if (action.params) {\n const route = state.routes[lastRouteIndex];\n routes[lastRouteIndex] = { ...route,\n params: { ...route.params,\n ...action.params\n }\n };\n } // Return state with new index. Change isTransitioning only if index has changed\n\n\n return { ...state,\n isTransitioning: state.index !== lastRouteIndex ? action.immediate !== true : state.isTransitioning,\n index: lastRouteIndex,\n routes\n };\n }\n\n if (childRouter) {\n // Delegate to the child router with the given action, or init it\n const childAction = action.action || NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action)\n });\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // note(brentvatne): does it make sense to wipe out the params\n // here? or even to add params at all? need more info about what\n // this solves\n ...childRouter.getStateForAction(childAction),\n routeName: action.routeName,\n key: action.key || generateKey()\n };\n } else {\n // Create the route from scratch\n route = {\n params: getParamsForRouteAndAction(action.routeName, action),\n routeName: action.routeName,\n key: action.key || generateKey()\n };\n }\n\n return { ...StateUtils.push(state, route),\n isTransitioning: action.immediate !== true\n };\n } else if (action.type === StackActions.PUSH && childRouters[action.routeName] === undefined) {\n // Return the state identity to bubble the action up\n return state;\n } // Handle navigation to other child routers that are not yet pushed\n\n\n if (behavesLikePushAction(action)) {\n const childRouterNames = Object.keys(childRouters);\n\n for (let i = 0; i < childRouterNames.length; i++) {\n const childRouterName = childRouterNames[i];\n const childRouter = childRouters[childRouterName];\n\n if (childRouter) {\n // For each child router, start with a blank state\n const initChildRoute = childRouter.getStateForAction(NavigationActions.init()); // Then check to see if the router handles our navigate action\n\n const navigatedChildRoute = childRouter.getStateForAction(action, initChildRoute);\n let routeToPush = null;\n\n if (navigatedChildRoute === null) {\n // Push the route if the router has 'handled' the action and returned null\n routeToPush = initChildRoute;\n } else if (navigatedChildRoute !== initChildRoute) {\n // Push the route if the state has changed in response to this navigation\n routeToPush = navigatedChildRoute;\n }\n\n if (routeToPush) {\n const route = { ...routeToPush,\n routeName: childRouterName,\n key: action.key || generateKey()\n };\n return { ...StateUtils.push(state, route),\n isTransitioning: action.immediate !== true\n };\n }\n }\n }\n } // Handle pop-to-top behavior. Make sure this happens after children have had a chance to handle the action, so that the inner stack pops to top first.\n\n\n if (action.type === StackActions.POP_TO_TOP) {\n // Refuse to handle pop to top if a key is given that doesn't correspond\n // to this router\n if (action.key && state.key !== action.key) {\n return state;\n } // If we're already at the top, then we return the state with a new\n // identity so that the action is handled by this router.\n\n\n if (state.index > 0) {\n return { ...state,\n isTransitioning: action.immediate !== true,\n index: 0,\n routes: [state.routes[0]]\n };\n }\n\n return state;\n } // Handle replace action\n\n\n if (action.type === StackActions.REPLACE) {\n let routeIndex; // If the key param is undefined, set the index to the last route in the stack\n\n if (action.key === undefined && state.routes.length) {\n routeIndex = state.routes.length - 1;\n } else {\n routeIndex = state.routes.findIndex(r => r.key === action.key);\n } // Only replace if the key matches one of our routes\n\n\n if (routeIndex !== -1) {\n const childRouter = childRouters[action.routeName];\n let childState = {};\n\n if (childRouter) {\n const childAction = action.action || NavigationActions.init({\n params: getParamsForRouteAndAction(action.routeName, action)\n });\n childState = childRouter.getStateForAction(childAction);\n }\n\n const routes = [...state.routes];\n routes[routeIndex] = {\n params: getParamsForRouteAndAction(action.routeName, action),\n // merge the child state in this order to allow params override\n ...childState,\n routeName: action.routeName,\n key: action.newKey || generateKey()\n };\n return { ...state,\n routes\n };\n }\n } // Update transitioning state\n\n\n if (action.type === StackActions.COMPLETE_TRANSITION && (action.key == null || action.key === state.key) && action.toChildKey === state.routes[state.index].key && state.isTransitioning) {\n return { ...state,\n isTransitioning: false\n };\n }\n\n if (action.type === NavigationActions.SET_PARAMS) {\n const key = action.key;\n const lastRoute = state.routes.find(route => route.key === key);\n\n if (lastRoute) {\n const params = { ...lastRoute.params,\n ...action.params\n };\n const routes = [...state.routes];\n routes[state.routes.indexOf(lastRoute)] = { ...lastRoute,\n params\n };\n return { ...state,\n routes\n };\n }\n }\n\n if (action.type === StackActions.RESET) {\n // Only handle reset actions that are unspecified or match this state key\n if (action.key != null && action.key !== state.key) {\n // Deliberately use != instead of !== so we can match null with\n // undefined on either the state or the action\n return state;\n }\n\n const newStackActions = action.actions;\n return { ...state,\n routes: newStackActions.map(newStackAction => {\n const router = childRouters[newStackAction.routeName];\n let childState = {};\n\n if (router) {\n const childAction = newStackAction.action || NavigationActions.init({\n params: getParamsForRouteAndAction(newStackAction.routeName, newStackAction)\n });\n childState = router.getStateForAction(childAction);\n }\n\n return {\n params: getParamsForRouteAndAction(newStackAction.routeName, newStackAction),\n ...childState,\n routeName: newStackAction.routeName,\n key: newStackAction.key || generateKey()\n };\n }),\n index: action.index\n };\n }\n\n if (action.type === NavigationActions.BACK || action.type === StackActions.POP) {\n const {\n key,\n n,\n immediate,\n prune\n } = action;\n\n if (action.type === StackActions.POP && prune === false && key) {\n const index = state.routes.findIndex(r => r.key === key);\n\n if (index > 0) {\n const count = Math.max(index - (n !== null && n !== void 0 ? n : 1) + 1, 1);\n const routes = state.routes.slice(0, count).concat(state.routes.slice(index + 1));\n\n if (routes.length) {\n return { ...state,\n routes,\n index: routes.length - 1,\n isTransitioning: immediate !== true\n };\n }\n }\n } else {\n let backRouteIndex = state.index;\n\n if (action.type === StackActions.POP && n != null) {\n // determine the index to go back *from*. In this case, n=1 means to go\n // back from state.index, as if it were a normal \"BACK\" action\n backRouteIndex = Math.max(1, state.index - n + 1);\n } else if (key) {\n const backRoute = state.routes.find(route => route.key === key);\n backRouteIndex = state.routes.indexOf(backRoute);\n }\n\n if (backRouteIndex > 0) {\n return { ...state,\n routes: state.routes.slice(0, backRouteIndex),\n index: backRouteIndex - 1,\n isTransitioning: immediate !== true\n };\n }\n }\n } // By this point in the router's state handling logic, we have handled the behavior of the active route, and handled any stack actions.\n // If we haven't returned by now, we should allow non-active child routers to handle this action, and switch to that index if the child state (route) does change..\n\n\n const keyIndex = action.key ? StateUtils.indexOf(state, action.key) : -1; // Traverse routes from the top of the stack to the bottom, so the\n // active route has the first opportunity, then the one before it, etc.\n\n for (let childRoute of state.routes.slice().reverse()) {\n if (childRoute.key === activeChildRoute.key) {\n // skip over the active child because we let it attempt to handle the action earlier\n continue;\n } // If a key is provided and in routes state then let's use that\n // knowledge to skip extra getStateForAction calls on other child\n // routers\n\n\n if (keyIndex >= 0 && childRoute.key !== action.key) {\n continue;\n }\n\n let childRouter = childRouters[childRoute.routeName];\n\n if (childRouter) {\n const route = childRouter.getStateForAction(action, childRoute);\n\n if (route === null) {\n return state;\n } else if (route && route !== childRoute) {\n return StateUtils.replaceAt(state, childRoute.key, route, // People don't expect these actions to switch the active route\n // TODO: We should switch to action.preserveFocus: true for drawer in future\n action.preserveFocus || action.type.includes('DRAWER'));\n }\n }\n }\n\n return state;\n },\n\n getPathAndParamsForState(state) {\n const route = state.routes[state.index];\n return getPathAndParamsForRoute(route);\n },\n\n getActionForPathAndParams(path, params) {\n return getActionForPathAndParams(path, params);\n },\n\n getScreenOptions: createConfigGetter(routeConfigs, stackConfig.defaultNavigationOptions)\n };\n});\n//# sourceMappingURL=StackRouter.js.map","let uniqueBaseId = \"id-\".concat(Date.now());\nlet uuidCount = 0;\nexport function _TESTING_ONLY_normalize_keys() {\n uniqueBaseId = \"id\";\n uuidCount = 0;\n}\nexport function generateKey() {\n return \"\".concat(uniqueBaseId, \"-\").concat(uuidCount++);\n}\n//# sourceMappingURL=KeyGenerator.js.map","import SwitchRouter from './SwitchRouter';\nimport withDefaultValue from '../utils/withDefaultValue';\nexport default ((routeConfigs, config = {}) => {\n config = { ...config\n };\n config = withDefaultValue(config, 'resetOnBlur', false);\n config = withDefaultValue(config, 'backBehavior', 'initialRoute');\n const switchRouter = SwitchRouter(routeConfigs, config);\n return switchRouter;\n});\n//# sourceMappingURL=TabRouter.js.map","export default ((obj, key, defaultValue) => {\n if (obj.hasOwnProperty(key) && typeof obj[key] !== 'undefined') {\n return obj;\n }\n\n obj[key] = defaultValue;\n return obj;\n});\n//# sourceMappingURL=withDefaultValue.js.map","const getActiveChildNavigationOptions = (navigation, screenProps, theme = 'light') => {\n const {\n state,\n router,\n getChildNavigation\n } = navigation;\n const activeRoute = state.routes[state.index];\n const activeNavigation = getChildNavigation(activeRoute.key);\n const options = router.getScreenOptions(activeNavigation, screenProps, theme);\n return options;\n};\n\nexport default getActiveChildNavigationOptions;\n//# sourceMappingURL=getActiveChildNavigationOptions.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport withNavigation from './withNavigation';\nconst EventNameToPropName = {\n willFocus: 'onWillFocus',\n didFocus: 'onDidFocus',\n willBlur: 'onWillBlur',\n didBlur: 'onDidBlur'\n};\nconst EventNames = Object.keys(EventNameToPropName);\n\nclass NavigationEvents extends React.Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"getPropListener\", eventName => this.props[EventNameToPropName[eventName]]);\n }\n\n componentDidMount() {\n // We register all navigation listeners on mount to ensure listener stability across re-render\n // A former implementation was replacing (removing/adding) listeners on all update (if prop provided)\n // but there were issues (see https://github.com/react-navigation/react-navigation/issues/5058)\n this.subscribeAll();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.navigation !== prevProps.navigation) {\n this.removeAll();\n this.subscribeAll();\n }\n }\n\n componentWillUnmount() {\n this.removeAll();\n }\n\n subscribeAll() {\n this.subscriptions = {};\n EventNames.forEach(eventName => {\n this.subscriptions[eventName] = this.props.navigation.addListener(eventName, (...args) => {\n const propListener = this.getPropListener(eventName);\n return propListener && propListener(...args);\n });\n });\n }\n\n removeAll() {\n EventNames.forEach(eventName => {\n this.subscriptions[eventName].remove();\n });\n }\n\n render() {\n return null;\n }\n\n}\n\nexport default withNavigation(NavigationEvents);\n//# sourceMappingURL=NavigationEvents.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from '../utils/invariant';\nimport NavigationContext from './NavigationContext';\nexport default function withNavigation(Component, config = {\n forwardRef: true\n}) {\n class ComponentWithNavigation extends React.Component {\n render() {\n const navigationProp = this.props.navigation;\n return /*#__PURE__*/React.createElement(NavigationContext.Consumer, null, navigationContext => {\n const navigation = navigationProp || navigationContext;\n invariant(!!navigation, 'withNavigation can only be used on a view hierarchy of a navigator. The wrapped component is unable to get access to navigation from props or context.');\n return /*#__PURE__*/React.createElement(Component, _extends({}, this.props, {\n navigation: navigation,\n ref: config.forwardRef ? this.props.onRef : undefined\n }));\n });\n }\n\n }\n\n _defineProperty(ComponentWithNavigation, \"displayName\", \"withNavigation(\".concat(Component.displayName || Component.name, \")\"));\n\n return hoistStatics(ComponentWithNavigation, Component);\n}\n//# sourceMappingURL=withNavigation.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport withNavigation from './withNavigation';\nexport default function withNavigationFocus(Component) {\n class ComponentWithNavigationFocus extends React.Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"state\", {\n isFocused: this.props.navigation.isFocused()\n });\n }\n\n componentDidMount() {\n const {\n navigation\n } = this.props;\n this.subscriptions = [navigation.addListener('willFocus', () => this.setState({\n isFocused: true\n })), navigation.addListener('willBlur', () => this.setState({\n isFocused: false\n }))];\n }\n\n componentWillUnmount() {\n var _this$subscriptions;\n\n (_this$subscriptions = this.subscriptions) === null || _this$subscriptions === void 0 ? void 0 : _this$subscriptions.forEach(sub => sub.remove());\n }\n\n render() {\n return /*#__PURE__*/React.createElement(Component, _extends({}, this.props, {\n isFocused: this.state.isFocused,\n ref: this.props.onRef\n }));\n }\n\n }\n\n _defineProperty(ComponentWithNavigationFocus, \"displayName\", \"withNavigationFocus(\".concat(Component.displayName || Component.name, \")\"));\n\n return hoistStatics(withNavigation(ComponentWithNavigationFocus, {\n forwardRef: false\n }), Component);\n}\n//# sourceMappingURL=withNavigationFocus.js.map","/* eslint-disable import/no-commonjs */\nmodule.exports = {\n get createAppContainer() {\n return require('./createAppContainer').default;\n },\n\n get createKeyboardAwareNavigator() {\n return require('./createKeyboardAwareNavigator').default;\n },\n\n get createNavigationAwareScrollable() {\n return require('./createNavigationAwareScrollable').default;\n },\n\n get withOrientation() {\n return require('./withOrientation').default;\n },\n\n get ResourceSavingSceneView() {\n return require('./ResourceSavingSceneView').default;\n },\n\n get SafeAreaView() {\n return require('react-native-safe-area-view').default;\n },\n\n get ScrollView() {\n return require('./Scrollables').ScrollView;\n },\n\n get FlatList() {\n return require('./Scrollables').FlatList;\n },\n\n get SectionList() {\n return require('./Scrollables').SectionList;\n },\n\n get Themed() {\n return require('./Themed').default;\n },\n\n get createNavigationFactory() {\n return require('./throwIfWrongVersion').default;\n },\n\n get useNavigationBuilder() {\n return require('./throwIfWrongVersion').default;\n },\n\n get useNavigation() {\n return require('./throwIfWrongVersion').default;\n },\n\n get useRoute() {\n return require('./throwIfWrongVersion').default;\n },\n\n get useFocusEffect() {\n return require('./throwIfWrongVersion').default;\n },\n\n get useIsFocused() {\n return require('./throwIfWrongVersion').default;\n },\n\n get useNavigationState() {\n return require('./throwIfWrongVersion').default;\n },\n\n get NavigationContainer() {\n return require('./throwIfWrongVersion').default;\n }\n\n};\n//# sourceMappingURL=index.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable react/sort-comp */\nimport * as React from 'react';\nimport { Linking, Platform, BackHandler } from 'react-native';\nimport { NavigationActions, ThemeProvider, pathUtils, getNavigation, NavigationProvider } from '@react-navigation/core';\nimport invariant from './utils/invariant';\nimport docsUrl from './utils/docsUrl';\nconst {\n urlToPathAndParams\n} = pathUtils;\n\nfunction isStateful(props) {\n return !props.navigation;\n}\n\nfunction validateProps(props) {\n if (props.persistenceKey) {\n console.warn('You passed persistenceKey prop to a navigator. ' + 'The persistenceKey prop was replaced by a more flexible persistence mechanism, ' + 'please see the navigation state persistence docs for more information. ' + 'Passing the persistenceKey prop is a no-op.');\n }\n\n if (isStateful(props)) {\n return;\n }\n /* eslint-disable no-unused-vars */\n\n\n const {\n navigation,\n screenProps,\n persistNavigationState,\n loadNavigationState,\n theme,\n ...containerProps\n } = props;\n /* eslint-enable no-unused-vars */\n\n const keys = Object.keys(containerProps);\n\n if (keys.length !== 0) {\n throw new Error('This navigator has both navigation and container props, so it is ' + \"unclear if it should own its own state. Remove props: \\\"\".concat(keys.join(', '), \"\\\" \") + 'if the navigator should get its state from the navigation prop. If the ' + 'navigator should maintain its own state, do not pass a navigation prop.');\n }\n\n invariant(persistNavigationState === undefined && loadNavigationState === undefined || typeof persistNavigationState === 'function' && typeof loadNavigationState === 'function', 'both persistNavigationState and loadNavigationState must either be undefined, or be functions');\n} // Track the number of stateful container instances. Warn if >0 and not using the\n// detached prop to explicitly acknowledge the behavior. We should deprecated implicit\n// stateful navigation containers in a future release and require a provider style pattern\n// instead in order to eliminate confusion entirely.\n\n\nlet _statefulContainerCount = 0;\nexport function _TESTING_ONLY_reset_container_count() {\n _statefulContainerCount = 0;\n} // We keep a global flag to catch errors during the state persistence hydrating scenario.\n// The innermost navigator who catches the error will dispatch a new init action.\n\nlet _reactNavigationIsHydratingState = false; // Unfortunate to use global state here, but it seems necessesary for the time\n// being. There seems to be some problems with cascading componentDidCatch\n// handlers. Ideally the inner non-stateful navigator catches the error and\n// re-throws it, to be caught by the top-level stateful navigator.\n\n/**\n * Create an HOC that injects the navigation and manages the navigation state\n * in case it's not passed from above.\n * This allows to use e.g. the StackNavigator and TabNavigator as root-level\n * components.\n */\n\nexport default function createNavigationContainer(Component) {\n class NavigationContainer extends React.Component {\n static getDerivedStateFromProps(nextProps) {\n validateProps(nextProps);\n return null;\n }\n\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"subs\", null);\n\n _defineProperty(this, \"_actionEventSubscribers\", new Set());\n\n _defineProperty(this, \"_handleOpenURL\", ({\n url\n }) => {\n const {\n enableURLHandling,\n uriPrefix\n } = this.props;\n\n if (enableURLHandling === false) {\n return;\n }\n\n const parsedUrl = urlToPathAndParams(url, uriPrefix);\n\n if (parsedUrl) {\n const {\n path,\n params\n } = parsedUrl;\n const action = Component.router.getActionForPathAndParams(path, params);\n\n if (action) {\n this.dispatch(action);\n }\n }\n });\n\n _defineProperty(this, \"_persistNavigationState\", async nav => {\n const {\n persistNavigationState\n } = this.props;\n\n if (persistNavigationState) {\n try {\n await persistNavigationState(nav);\n } catch (err) {\n console.warn('Uncaught exception while calling persistNavigationState()! You should handle exceptions thrown from persistNavigationState(), ignoring them may result in undefined behavior.');\n }\n }\n });\n\n _defineProperty(this, \"dispatch\", action => {\n if (this.props.navigation) {\n return this.props.navigation.dispatch(action);\n } // navState will have the most up-to-date value, because setState sometimes behaves asyncronously\n\n\n this._navState = this._navState || this.state.nav;\n const lastNavState = this._navState;\n invariant(lastNavState, 'should be set in constructor if stateful');\n const reducedState = Component.router.getStateForAction(action, lastNavState);\n const navState = reducedState === null ? lastNavState : reducedState;\n\n const dispatchActionEvents = () => {\n this._actionEventSubscribers.forEach(subscriber => subscriber({\n type: 'action',\n action,\n state: navState,\n lastState: lastNavState\n }));\n };\n\n if (reducedState === null) {\n // The router will return null when action has been handled and the state hasn't changed.\n // dispatch returns true when something has been handled.\n dispatchActionEvents();\n return true;\n }\n\n if (navState !== lastNavState) {\n // Cache updates to state.nav during the tick to ensure that subsequent calls will not discard this change\n this._navState = navState;\n this.setState({\n nav: navState\n }, () => {\n this._onNavigationStateChange(lastNavState, navState, action);\n\n dispatchActionEvents();\n\n this._persistNavigationState(navState);\n });\n return true;\n }\n\n dispatchActionEvents();\n return false;\n });\n\n _defineProperty(this, \"_getScreenProps\", () => this.props.screenProps);\n\n _defineProperty(this, \"_getTheme\", () => {\n if (this.props.theme === 'light' || this.props.theme === 'dark') {\n return this.props.theme;\n } else if (this.props.theme === 'no-preference') {\n return 'light';\n } else {\n console.warn(\"Invalid theme provided: \".concat(this.props.theme, \". Only 'light' and 'dark' are supported. Falling back to 'light'\"));\n return 'light';\n }\n });\n\n validateProps(props);\n this._initialAction = NavigationActions.init();\n\n if (this._isStateful() && BackHandler && typeof BackHandler.addEventListener === 'function') {\n this.subs = BackHandler.addEventListener('hardwareBackPress', () => {\n if (!this._isMounted) {\n this.subs && this.subs.remove();\n } else {\n // dispatch returns true if the action results in a state change,\n // and false otherwise. This maps well to what BackHandler expects\n // from a callback -- true if handled, false if not handled\n return this.dispatch(NavigationActions.back());\n }\n });\n }\n\n this.state = {\n nav: this._isStateful() && !props.loadNavigationState ? Component.router.getStateForAction(this._initialAction) : null\n };\n }\n\n _renderLoading() {\n return this.props.renderLoadingExperimental ? this.props.renderLoadingExperimental() : null;\n }\n\n _isStateful() {\n return isStateful(this.props);\n }\n\n _onNavigationStateChange(prevNav, nav, action) {\n if (typeof this.props.onNavigationStateChange === 'undefined' && this._isStateful() && !!process.env.REACT_NAV_LOGGING) {\n if (console.group) {\n console.group('Navigation Dispatch: ');\n console.log('Action: ', action);\n console.log('New State: ', nav);\n console.log('Last State: ', prevNav);\n console.groupEnd();\n } else {\n console.log('Navigation Dispatch: ', {\n action,\n newState: nav,\n lastState: prevNav\n });\n }\n\n return;\n }\n\n if (typeof this.props.onNavigationStateChange === 'function') {\n this.props.onNavigationStateChange(prevNav, nav, action);\n }\n }\n\n componentDidUpdate() {\n // Clear cached _navState every tick\n if (this._navState === this.state.nav) {\n this._navState = null;\n }\n }\n\n async componentDidMount() {\n this._isMounted = true;\n\n if (!this._isStateful()) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production' && !this.props.detached) {\n if (_statefulContainerCount > 0) {\n // Temporarily only show this on iOS due to this issue:\n // https://github.com/react-navigation/react-navigation/issues/4196#issuecomment-390827829\n if (Platform.OS === 'ios') {\n console.warn(\"You should only render one navigator explicitly in your app, and other navigators should be rendered by including them in that navigator. Full details at: \".concat(docsUrl('common-mistakes.html#explicitly-rendering-more-than-one-navigator')));\n }\n }\n }\n\n _statefulContainerCount++;\n this._linkingSub = Linking.addEventListener('url', this._handleOpenURL); // Pull out anything that can impact state\n\n let parsedUrl = null;\n let userProvidedStartupState = null;\n\n if (this.props.enableURLHandling !== false) {\n ({\n parsedUrl,\n userProvidedStartupState\n } = await this.getStartupParams());\n } // Initialize state. This must be done *after* any async code\n // so we don't end up with a different value for this.state.nav\n // due to changes while async function was resolving\n\n\n let action = this._initialAction; // eslint-disable-next-line react/no-access-state-in-setstate\n\n let startupState = this.state.nav;\n\n if (!startupState && !userProvidedStartupState) {\n !!process.env.REACT_NAV_LOGGING && console.log('Init new Navigation State');\n startupState = Component.router.getStateForAction(action);\n } // Pull user-provided persisted state\n\n\n if (userProvidedStartupState) {\n startupState = userProvidedStartupState;\n _reactNavigationIsHydratingState = true;\n } // Pull state out of URL\n\n\n if (parsedUrl) {\n const {\n path,\n params\n } = parsedUrl;\n const urlAction = Component.router.getActionForPathAndParams(path, params);\n\n if (urlAction) {\n !!process.env.REACT_NAV_LOGGING && console.log('Applying Navigation Action for Initial URL:', parsedUrl);\n action = urlAction;\n startupState = Component.router.getStateForAction(urlAction, startupState);\n }\n }\n\n const dispatchActions = () => this._actionEventSubscribers.forEach(subscriber => subscriber({\n type: 'action',\n action,\n state: this.state.nav,\n lastState: null\n }));\n\n if (startupState === this.state.nav) {\n dispatchActions();\n return;\n } // eslint-disable-next-line react/no-did-mount-set-state\n\n\n this.setState({\n nav: startupState\n }, () => {\n _reactNavigationIsHydratingState = false;\n dispatchActions();\n });\n }\n\n async getStartupParams() {\n const {\n uriPrefix,\n loadNavigationState\n } = this.props;\n let url, loadedNavState;\n\n try {\n [url, loadedNavState] = await Promise.all([Linking.getInitialURL(), loadNavigationState && loadNavigationState()]);\n } catch (err) {// ignore\n }\n\n return {\n parsedUrl: url && urlToPathAndParams(url, uriPrefix),\n userProvidedStartupState: loadedNavState\n };\n }\n\n componentDidCatch(e) {\n if (_reactNavigationIsHydratingState) {\n _reactNavigationIsHydratingState = false;\n console.warn('Uncaught exception while starting app from persisted navigation state! Trying to render again with a fresh navigation state...');\n this.dispatch(NavigationActions.init());\n } else {\n throw e;\n }\n }\n\n componentWillUnmount() {\n var _this$_linkingSub;\n\n this._isMounted = false; // https://github.com/facebook/react-native/commit/6d1aca806cee86ad76de771ed3a1cc62982ebcd7\n\n if ((_this$_linkingSub = this._linkingSub) === null || _this$_linkingSub === void 0 ? void 0 : _this$_linkingSub.remove) {\n var _this$_linkingSub2;\n\n (_this$_linkingSub2 = this._linkingSub) === null || _this$_linkingSub2 === void 0 ? void 0 : _this$_linkingSub2.remove();\n } else {\n Linking.removeEventListener('url', this._handleOpenURL);\n }\n\n this.subs && this.subs.remove();\n\n if (this._isStateful()) {\n _statefulContainerCount--;\n }\n } // Per-tick temporary storage for state.nav\n\n\n render() {\n let navigation = this.props.navigation;\n\n if (this._isStateful()) {\n const navState = this.state.nav;\n\n if (!navState) {\n return this._renderLoading();\n }\n\n if (!this._navigation || this._navigation.state !== navState) {\n this._navigation = getNavigation(Component.router, navState, this.dispatch, this._actionEventSubscribers, this._getScreenProps, () => this._navigation);\n }\n\n navigation = this._navigation;\n }\n\n invariant(navigation, 'failed to get navigation');\n return /*#__PURE__*/React.createElement(ThemeProvider, {\n value: this._getTheme()\n }, /*#__PURE__*/React.createElement(NavigationProvider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(Component, _extends({}, this.props, {\n navigation: navigation\n }))));\n }\n\n }\n\n _defineProperty(NavigationContainer, \"router\", Component.router);\n\n _defineProperty(NavigationContainer, \"navigationOptions\", null);\n\n _defineProperty(NavigationContainer, \"defaultProps\", {\n theme: 'light'\n });\n\n return NavigationContainer;\n}\n//# sourceMappingURL=createAppContainer.js.map","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\nvar validateFormat = function () {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function (format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nexport default function invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n}\n//# sourceMappingURL=invariant.js.map","export default function docsUrl(path) {\n return \"https://reactnavigation.org/docs/\".concat(path);\n}\n//# sourceMappingURL=docsUrl.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { TextInput } from 'react-native';\nexport default ((Navigator, navigatorConfig) => {\n var _class, _temp;\n\n return _temp = _class = class KeyboardAwareNavigator extends React.Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"_previouslyFocusedTextInput\", null);\n\n _defineProperty(this, \"_handleGestureBegin\", () => {\n this._previouslyFocusedTextInput = TextInput.State.currentlyFocusedInput ? TextInput.State.currentlyFocusedInput() : TextInput.State.currentlyFocusedField();\n\n if (this._previouslyFocusedTextInput) {\n TextInput.State.blurTextInput(this._previouslyFocusedTextInput);\n }\n\n this.props.onGestureBegin && this.props.onGestureBegin();\n });\n\n _defineProperty(this, \"_handleGestureCanceled\", () => {\n if (this._previouslyFocusedTextInput) {\n TextInput.State.focusTextInput(this._previouslyFocusedTextInput);\n }\n\n this.props.onGestureCanceled && this.props.onGestureCanceled();\n });\n\n _defineProperty(this, \"_handleGestureEnd\", () => {\n this._previouslyFocusedTextInput = null;\n this.props.onGestureFinish && this.props.onGestureFinish();\n });\n\n _defineProperty(this, \"_handleTransitionStart\", (transitionProps, prevTransitionProps) => {\n // TODO: We should not even have received the transition start event\n // in the case where the index did not change, I believe. We\n // should revisit this after 2.0 release.\n if (transitionProps.index !== prevTransitionProps.index) {\n const currentField = TextInput.State.currentlyFocusedInput ? TextInput.State.currentlyFocusedInput() : TextInput.State.currentlyFocusedField();\n\n if (currentField) {\n TextInput.State.blurTextInput(currentField);\n }\n }\n\n const onTransitionStart = this.props.onTransitionStart || navigatorConfig.onTransitionStart;\n onTransitionStart && onTransitionStart(transitionProps, prevTransitionProps);\n });\n }\n\n render() {\n return /*#__PURE__*/React.createElement(Navigator, _extends({}, this.props, {\n onGestureBegin: this._handleGestureBegin,\n onGestureCanceled: this._handleGestureCanceled,\n onGestureEnd: this._handleGestureEnd,\n onTransitionStart: this._handleTransitionStart\n }));\n }\n\n }, _defineProperty(_class, \"router\", Navigator.router), _defineProperty(_class, \"navigationOptions\", Navigator.navigationOptions), _temp;\n});\n//# sourceMappingURL=createKeyboardAwareNavigator.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { withNavigation } from '@react-navigation/core';\nexport default function createNavigationAwareScrollable(Component) {\n var _class, _temp;\n\n const ComponentWithNavigationScrolling = withNavigation((_temp = _class = class extends React.PureComponent {\n componentDidMount() {\n this._subscription = this.props.navigation.addListener('refocus', () => {\n const scrollableNode = this.getNode();\n\n if (this.props.navigation.isFocused() && scrollableNode !== null) {\n if (scrollableNode.scrollToTop != null) {\n scrollableNode.scrollToTop();\n } else if (scrollableNode.scrollTo != null) {\n scrollableNode.scrollTo({\n y: 0\n });\n } else if (scrollableNode.scrollResponderScrollTo != null) {\n scrollableNode.scrollResponderScrollTo({\n y: 0\n });\n }\n }\n });\n }\n\n componentWillUnmount() {\n if (this._subscription != null) {\n this._subscription.remove();\n }\n }\n\n getNode() {\n if (this._scrollRef === null) {\n return null;\n }\n\n if (this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n } else if (this._scrollRef.getNode) {\n return this._scrollRef.getNode();\n } else {\n return this._scrollRef;\n }\n }\n\n render() {\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: view => {\n this._scrollRef = view;\n }\n }, this.props));\n }\n\n }, _defineProperty(_class, \"displayName\", \"withNavigationScrolling(\".concat(Component.displayName || Component.name, \")\")), _temp));\n\n class NavigationAwareScrollable extends React.PureComponent {\n constructor(..._args) {\n super(..._args);\n\n _defineProperty(this, \"_captureRef\", view => {\n this._innerRef = view;\n this.props.onRef && this.props.onRef(view);\n });\n\n _defineProperty(this, \"setNativeProps\", (...args) => {\n return this._innerRef.getNode().setNativeProps(...args);\n });\n\n _defineProperty(this, \"getScrollResponder\", (...args) => {\n return this._innerRef.getNode().getScrollResponder(...args);\n });\n\n _defineProperty(this, \"getScrollableNode\", (...args) => {\n return this._innerRef.getNode().getScrollableNode(...args);\n });\n\n _defineProperty(this, \"getInnerViewNode\", (...args) => {\n return this._innerRef.getNode().getInnerViewNode(...args);\n });\n\n _defineProperty(this, \"scrollTo\", (...args) => {\n return this._innerRef.getNode().scrollTo(...args);\n });\n\n _defineProperty(this, \"scrollToEnd\", (...args) => {\n return this._innerRef.getNode().scrollToEnd(...args);\n });\n\n _defineProperty(this, \"scrollWithoutAnimationTo\", (...args) => {\n return this._innerRef.getNode().scrollWithoutAnimationTo(...args);\n });\n\n _defineProperty(this, \"flashScrollIndicators\", (...args) => {\n return this._innerRef.getNode().flashScrollIndicators(...args);\n });\n }\n\n render() {\n return /*#__PURE__*/React.createElement(ComponentWithNavigationScrolling, _extends({}, this.props, {\n onRef: this._captureRef\n }));\n }\n\n }\n\n _defineProperty(NavigationAwareScrollable, \"displayName\", \"NavigationAwareScrollable(\".concat(Component.displayName || Component.name, \")\"));\n\n return hoistStatics(NavigationAwareScrollable, Component);\n}\n//# sourceMappingURL=createNavigationAwareScrollable.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { Dimensions } from 'react-native';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nexport const isOrientationLandscape = ({\n width,\n height\n}) => width > height;\nexport default function (WrappedComponent) {\n class withOrientation extends React.Component {\n constructor() {\n super();\n\n _defineProperty(this, \"handleOrientationChange\", ({\n window\n }) => {\n const isLandscape = isOrientationLandscape(window);\n this.setState({\n isLandscape\n });\n });\n\n const _isLandscape = isOrientationLandscape(Dimensions.get('window'));\n\n this.state = {\n isLandscape: _isLandscape\n };\n }\n\n componentDidMount() {\n Dimensions.addEventListener('change', this.handleOrientationChange);\n }\n\n componentWillUnmount() {\n Dimensions.removeEventListener('change', this.handleOrientationChange);\n }\n\n render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, this.props, this.state));\n }\n\n }\n\n return hoistNonReactStatic(withOrientation, WrappedComponent);\n}\n//# sourceMappingURL=withOrientation.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { Platform, StyleSheet, View } from 'react-native';\nimport { SceneView } from '@react-navigation/core';\nconst FAR_FAR_AWAY = 3000; // this should be big enough to move the whole view out of its container\n\nclass ResourceSavingSceneView extends React.PureComponent {\n static getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.isFocused && !prevState.awake) {\n return {\n awake: true\n };\n } else {\n return null;\n }\n }\n\n constructor(props) {\n super();\n\n _defineProperty(this, \"_mustAlwaysBeVisible\", () => {\n return this.props.animationEnabled || this.props.swipeEnabled;\n });\n\n this.state = {\n awake: props.lazy ? props.isFocused : true\n };\n }\n\n render() {\n const {\n awake\n } = this.state;\n const {\n isFocused,\n childNavigation,\n removeClippedSubviews,\n ...rest\n } = this.props;\n return /*#__PURE__*/React.createElement(View, {\n style: styles.container,\n collapsable: false,\n removeClippedSubviews: Platform.OS === 'android' ? removeClippedSubviews : !isFocused && removeClippedSubviews\n }, /*#__PURE__*/React.createElement(View, {\n style: this._mustAlwaysBeVisible() || isFocused ? styles.innerAttached : styles.innerDetached\n }, awake ? /*#__PURE__*/React.createElement(SceneView, _extends({}, rest, {\n navigation: childNavigation\n })) : null));\n }\n\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden'\n },\n innerAttached: {\n flex: 1\n },\n innerDetached: {\n flex: 1,\n top: FAR_FAR_AWAY\n }\n});\nexport default ResourceSavingSceneView;\n//# sourceMappingURL=ResourceSavingSceneView.js.map","import React, { Component } from 'react';\nimport {\n Dimensions,\n InteractionManager,\n Platform,\n StyleSheet,\n Animated,\n} from 'react-native';\nimport hoistStatics from 'hoist-non-react-statics';\n\nimport withOrientation from './withOrientation';\n\n// See https://mydevice.io/devices/ for device dimensions\nconst X_WIDTH = 375;\nconst X_HEIGHT = 812;\nconst XSMAX_WIDTH = 414;\nconst XSMAX_HEIGHT = 896;\nconst PAD_WIDTH = 768;\nconst PAD_HEIGHT = 1024;\nconst IPADPRO11_WIDTH = 834;\nconst IPADPRO11_HEIGHT = 1194;\nconst IPADPRO129_HEIGHT = 1024;\nconst IPADPRO129_WIDTH = 1366;\n\nconst getResolvedDimensions = () => {\n const { width, height } = Dimensions.get('window');\n if (width === 0 && height === 0) return Dimensions.get('screen');\n return { width, height };\n};\n\nconst { height: D_HEIGHT, width: D_WIDTH } = getResolvedDimensions();\n\nconst PlatformConstants = Platform.constants || {};\nconst { minor = 0 } = PlatformConstants.reactNativeVersion || {};\n\nconst isIPhoneX = (() => {\n if (Platform.OS === 'web') return false;\n\n return (\n (Platform.OS === 'ios' &&\n ((D_HEIGHT === X_HEIGHT && D_WIDTH === X_WIDTH) ||\n (D_HEIGHT === X_WIDTH && D_WIDTH === X_HEIGHT))) ||\n ((D_HEIGHT === XSMAX_HEIGHT && D_WIDTH === XSMAX_WIDTH) ||\n (D_HEIGHT === XSMAX_WIDTH && D_WIDTH === XSMAX_HEIGHT))\n );\n})();\n\nconst isNewIPadPro = (() => {\n if (Platform.OS !== 'ios') return false;\n\n return (\n (D_HEIGHT === IPADPRO11_HEIGHT && D_WIDTH === IPADPRO11_WIDTH) ||\n (D_HEIGHT === IPADPRO11_WIDTH && D_WIDTH === IPADPRO11_HEIGHT) ||\n ((D_HEIGHT === IPADPRO129_HEIGHT && D_WIDTH === IPADPRO129_WIDTH) ||\n (D_HEIGHT === IPADPRO129_WIDTH && D_WIDTH === IPADPRO129_HEIGHT))\n );\n})();\n\nconst isIPad = (() => {\n if (Platform.OS !== 'ios' || isIPhoneX) return false;\n\n // if portrait and width is smaller than iPad width\n if (D_HEIGHT > D_WIDTH && D_WIDTH < PAD_WIDTH) {\n return false;\n }\n\n // if landscape and height is smaller that iPad height\n if (D_WIDTH > D_HEIGHT && D_HEIGHT < PAD_WIDTH) {\n return false;\n }\n\n return true;\n})();\n\nlet _customStatusBarHeight = null;\nlet _customStatusBarHidden = null;\nconst statusBarHeight = isLandscape => {\n if (_customStatusBarHeight !== null) {\n return _customStatusBarHeight;\n }\n\n /**\n * This is a temporary workaround because we don't have a way to detect\n * if the status bar is translucent or opaque. If opaque, we don't need to\n * factor in the height here; if translucent (content renders under it) then\n * we do.\n */\n if (Platform.OS === 'android') {\n if (global.Expo) {\n return global.Expo.Constants.statusBarHeight;\n } else {\n return 0;\n }\n }\n\n if (isIPhoneX) {\n return isLandscape ? 0 : 44;\n }\n\n if (isNewIPadPro) {\n return 24;\n }\n\n if (isIPad) {\n return _customStatusBarHidden ? 0 : 20;\n }\n\n return isLandscape || _customStatusBarHidden ? 0 : 20;\n};\n\nconst doubleFromPercentString = percent => {\n if (!percent.includes('%')) {\n return 0;\n }\n\n const dbl = parseFloat(percent) / 100;\n\n if (isNaN(dbl)) return 0;\n\n return dbl;\n};\n\nclass SafeView extends Component {\n static setStatusBarHeight = height => {\n _customStatusBarHeight = height;\n };\n\n static setStatusBarHidden = hidden => {\n _customStatusBarHidden = hidden;\n };\n\n state = {\n touchesTop: true,\n touchesBottom: true,\n touchesLeft: true,\n touchesRight: true,\n orientation: null,\n viewWidth: 0,\n viewHeight: 0,\n };\n\n componentDidMount() {\n this._isMounted = true;\n InteractionManager.runAfterInteractions(() => {\n this._updateMeasurements();\n });\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n componentDidUpdate() {\n this._updateMeasurements();\n }\n\n render() {\n const { forceInset = false, isLandscape, style, ...props } = this.props;\n\n const safeAreaStyle = this._getSafeAreaStyle();\n\n return (\n <Animated.View\n ref={c => (this.view = c)}\n pointerEvents=\"box-none\"\n {...props}\n onLayout={this._handleLayout}\n style={safeAreaStyle}\n />\n );\n }\n\n _handleLayout = e => {\n if (this.props.onLayout) this.props.onLayout(e);\n\n this._updateMeasurements();\n };\n\n _updateMeasurements = () => {\n if (!this._isMounted) return;\n if (!this.view) return;\n\n const { isLandscape } = this.props;\n const { orientation } = this.state;\n const newOrientation = isLandscape ? 'landscape' : 'portrait';\n if (orientation && orientation === newOrientation) {\n return;\n }\n\n const { width: WIDTH, height: HEIGHT } = getResolvedDimensions();\n\n // getNode() is not necessary in newer versions of React Native\n const node = typeof this.view.measureInWindow === 'function' ? this.view : this.view.getNode();\n\n node.measureInWindow((winX, winY, winWidth, winHeight) => {\n if (!this.view) {\n return;\n }\n let realY = winY;\n let realX = winX;\n\n if (realY >= HEIGHT) {\n realY = realY % HEIGHT;\n } else if (realY < 0) {\n realY = (realY % HEIGHT) + HEIGHT;\n }\n\n if (realX >= WIDTH) {\n realX = realX % WIDTH;\n } else if (realX < 0) {\n realX = (realX % WIDTH) + WIDTH;\n }\n\n const touchesTop = realY === 0;\n const touchesBottom = realY + winHeight >= HEIGHT;\n const touchesLeft = realX === 0;\n const touchesRight = realX + winWidth >= WIDTH;\n\n this.setState({\n touchesTop,\n touchesBottom,\n touchesLeft,\n touchesRight,\n orientation: newOrientation,\n viewWidth: winWidth,\n viewHeight: winHeight,\n });\n });\n };\n\n _getSafeAreaStyle = () => {\n const { touchesTop, touchesBottom, touchesLeft, touchesRight } = this.state;\n const { forceInset, isLandscape } = this.props;\n\n const {\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n viewStyle,\n } = this._getViewStyles();\n\n const style = {\n ...viewStyle,\n paddingTop: touchesTop ? this._getInset('top') : 0,\n paddingBottom: touchesBottom ? this._getInset('bottom') : 0,\n paddingLeft: touchesLeft ? this._getInset('left') : 0,\n paddingRight: touchesRight ? this._getInset('right') : 0,\n };\n\n if (forceInset) {\n Object.keys(forceInset).forEach(key => {\n let inset = forceInset[key];\n\n if (inset === 'always') {\n inset = this._getInset(key);\n }\n\n if (inset === 'never') {\n inset = 0;\n }\n\n switch (key) {\n case 'horizontal': {\n style.paddingLeft = inset;\n style.paddingRight = inset;\n break;\n }\n case 'vertical': {\n style.paddingTop = inset;\n style.paddingBottom = inset;\n break;\n }\n case 'left':\n case 'right':\n case 'top':\n case 'bottom': {\n const padding = `padding${key[0].toUpperCase()}${key.slice(1)}`;\n style[padding] = inset;\n break;\n }\n }\n });\n }\n\n // new height/width should only include padding from insets\n // height/width should not be affected by padding from style obj\n if (style.height && typeof style.height === 'number') {\n style.height += style.paddingTop + style.paddingBottom;\n }\n\n if (style.width && typeof style.width === 'number') {\n style.width += style.paddingLeft + style.paddingRight;\n }\n\n style.paddingTop = Math.max(style.paddingTop, paddingTop);\n style.paddingBottom = Math.max(style.paddingBottom, paddingBottom);\n style.paddingLeft = Math.max(style.paddingLeft, paddingLeft);\n style.paddingRight = Math.max(style.paddingRight, paddingRight);\n\n return style;\n };\n\n _getViewStyles = () => {\n const { viewWidth } = this.state;\n // get padding values from style to add back in after insets are determined\n // default precedence: padding[Side] -> vertical | horizontal -> padding -> 0\n let {\n padding = 0,\n paddingVertical = padding,\n paddingHorizontal = padding,\n paddingTop = paddingVertical,\n paddingBottom = paddingVertical,\n paddingLeft = paddingHorizontal,\n paddingRight = paddingHorizontal,\n ...viewStyle\n } = StyleSheet.flatten(this.props.style || {});\n\n if (typeof paddingTop !== 'number') {\n paddingTop = doubleFromPercentString(paddingTop) * viewWidth;\n }\n\n if (typeof paddingBottom !== 'number') {\n paddingBottom = doubleFromPercentString(paddingBottom) * viewWidth;\n }\n\n if (typeof paddingLeft !== 'number') {\n paddingLeft = doubleFromPercentString(paddingLeft) * viewWidth;\n }\n\n if (typeof paddingRight !== 'number') {\n paddingRight = doubleFromPercentString(paddingRight) * viewWidth;\n }\n\n return {\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n viewStyle,\n };\n };\n\n _getInset = key => {\n const { isLandscape } = this.props;\n return getInset(key, isLandscape);\n };\n}\n\nexport function getInset(key, isLandscape) {\n switch (key) {\n case 'horizontal':\n case 'right':\n case 'left': {\n return isLandscape ? (isIPhoneX ? 44 : 0) : 0;\n }\n case 'vertical':\n case 'top': {\n return statusBarHeight(isLandscape);\n }\n case 'bottom': {\n if (isIPhoneX) {\n return isLandscape ? 24 : 34;\n }\n\n if (isNewIPadPro) {\n return 20;\n }\n\n return 0;\n }\n }\n}\n\nexport function getStatusBarHeight(isLandscape) {\n return statusBarHeight(isLandscape);\n}\n\nconst SafeAreaView = withOrientation(SafeView);\n\nexport default SafeAreaView;\n\nexport const withSafeArea = function(forceInset = {}) {\n return WrappedComponent => {\n class withSafeArea extends Component {\n render() {\n return (\n <SafeAreaView style={{ flex: 1 }} forceInset={forceInset}>\n <WrappedComponent {...this.props} />\n </SafeAreaView>\n );\n }\n }\n\n return hoistStatics(withSafeArea, WrappedComponent);\n };\n};\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","// @flow\n\nimport * as React from 'react';\nimport { Dimensions } from 'react-native';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\n\ntype WindowDimensions = {\n width: number,\n height: number,\n};\n\ntype InjectedProps = {\n isLandscape: boolean,\n};\n\ntype State = {\n isLandscape: boolean,\n};\n\nexport const isOrientationLandscape = ({\n width,\n height,\n}: WindowDimensions): boolean => width > height;\n\nexport default function<T: {}>(\n WrappedComponent: React.ComponentType<T & InjectedProps>\n) {\n class withOrientation extends React.Component<T, State> {\n constructor() {\n super();\n\n const isLandscape = isOrientationLandscape(Dimensions.get('window'));\n this.state = { isLandscape };\n }\n\n componentDidMount() {\n if (typeof Dimensions.addEventListener === 'function') {\n Dimensions.addEventListener('change', this.handleOrientationChange);\n }\n }\n\n componentWillUnmount() {\n if (typeof Dimensions.removeEventListener === 'function') {\n Dimensions.removeEventListener('change', this.handleOrientationChange);\n }\n }\n\n handleOrientationChange = ({ window }: { window: WindowDimensions }) => {\n const isLandscape = isOrientationLandscape(window);\n this.setState({ isLandscape });\n };\n\n render() {\n return <WrappedComponent {...this.props} {...this.state} />;\n }\n }\n\n return hoistNonReactStatic(withOrientation, WrappedComponent);\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { ScrollView, Platform, FlatList, SectionList, RefreshControl } from 'react-native';\nimport { ScrollView as GHScrollView } from 'react-native-gesture-handler';\nimport createNavigationAwareScrollable from './createNavigationAwareScrollable';\nimport invariant from './utils/invariant';\nlet WrappedScrollView;\n\nif (Platform.OS === 'android') {\n // @todo: use GHScrollView again when\n // https://github.com/kmagiera/react-native-gesture-handler/issues/560 has\n // been fixed.\n WrappedScrollView = createNavigationAwareScrollable(ScrollView);\n} else {\n WrappedScrollView = createNavigationAwareScrollable(GHScrollView);\n}\n\nfunction propsMaybeWithRefreshControl(props) {\n const onRefresh = props.onRefresh;\n\n if (onRefresh) {\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify(props.refreshing) + '`');\n return { ...props,\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl, {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n };\n } else {\n return props;\n }\n}\n\nconst WrappedFlatList = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(FlatList, _extends({\n ref: ref\n}, props, {\n renderScrollComponent: props => /*#__PURE__*/React.createElement(WrappedScrollView, propsMaybeWithRefreshControl(props))\n})));\nconst WrappedSectionList = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SectionList, _extends({\n ref: ref\n}, props, {\n renderScrollComponent: props => /*#__PURE__*/React.createElement(WrappedScrollView, propsMaybeWithRefreshControl(props))\n})));\nexport { WrappedScrollView as ScrollView, WrappedFlatList as FlatList, WrappedSectionList as SectionList };\n//# sourceMappingURL=Scrollables.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { StatusBar, Text, TextInput } from 'react-native';\nimport { ThemeContext, ThemeColors } from '@react-navigation/core';\n\nclass ThemedText extends React.Component {\n render() {\n return /*#__PURE__*/React.createElement(Text, _extends({}, this.props, {\n style: [{\n color: ThemeColors[this.context].label\n }, this.props.style]\n }));\n }\n\n}\n\n_defineProperty(ThemedText, \"contextType\", ThemeContext);\n\nclass ThemedTextInput extends React.Component {\n render() {\n return /*#__PURE__*/React.createElement(TextInput, _extends({}, this.props, {\n placeholderTextColor: this.context === 'dark' ? '#ebebf54c' : '#3c3c434c',\n style: [{\n color: ThemeColors[this.context].label\n }, this.props.style]\n }));\n }\n\n}\n\n_defineProperty(ThemedTextInput, \"contextType\", ThemeContext);\n\nclass ThemedStatusBar extends React.Component {\n render() {\n let {\n barStyle,\n ...props\n } = this.props;\n return /*#__PURE__*/React.createElement(StatusBar, _extends({\n barStyle: barStyle ? barStyle : this.context === 'dark' ? 'light-content' : 'default'\n }, props));\n }\n\n}\n\n_defineProperty(ThemedStatusBar, \"contextType\", ThemeContext);\n\nexport default {\n Text: ThemedText,\n StatusBar: ThemedStatusBar,\n TextInput: ThemedTextInput\n};\n//# sourceMappingURL=Themed.js.map","export default function () {\n throw new Error('Looks like you are trying to use React Navigation 5 APIs, but have React Navigation 4 installed.\\n\\nMixing React Navigation 4 and 5 is not supported. See the documentation for installation instructions and usage guide for appropriate versions:\\n\\n- React Navigation 5: https://reactnavigation.org/docs/getting-started\\n- React Navigation 4: https://reactnavigation.org/docs/4.x/getting-started');\n}\n//# sourceMappingURL=throwIfWrongVersion.js.map","/* eslint-disable getter-return, import/no-commonjs */\n\nconst throwError = (message, page) => {\n throw new Error(\n `${message}. See https://reactnavigation.org/docs/${page}.html for more details.`\n );\n};\n\nmodule.exports = {\n get createNavigationContainer() {\n throw new Error(\n '`createNavigationContainer()` has been removed. Use `createAppContainer()` instead. You can also import createAppContainer directly from `@react-navigation/native`.'\n );\n },\n\n get createStackNavigator() {\n throwError(\n '`createStackNavigator()` has been moved to `react-navigation-stack`',\n 'stack-navigator'\n );\n },\n\n get createBottomTabNavigator() {\n throwError(\n '`createBottomTabNavigator()` has been moved to `react-navigation-tabs`',\n 'bottom-tab-navigator'\n );\n },\n\n get createMaterialTopTabNavigator() {\n throwError(\n '`createMaterialTopTabNavigator()` has been moved to `react-navigation-tabs`',\n 'material-top-tab-navigator'\n );\n },\n\n get createDrawerNavigator() {\n throwError(\n '`createDrawerNavigator()` has been moved to `react-navigation-drawer`',\n 'drawer-navigator'\n );\n },\n\n // Gesture contexts\n\n get StackGestureContext() {\n throwError(\n '`StackGestureContext` has been moved to `react-navigation-stack`',\n 'stack-navigator'\n );\n },\n\n get DrawerGestureContext() {\n throwError(\n '`DrawerGestureContext` has been moved to `react-navigation-drawer`',\n 'stack-navigator'\n );\n },\n\n // Routers and Actions\n\n get DrawerRouter() {\n throwError(\n '`DrawerRouter` has been moved to `react-navigation-drawer`',\n 'drawer-navigator'\n );\n },\n\n get DrawerActions() {\n throwError(\n '`DrawerActions` has been moved to `react-navigation-drawer`',\n 'drawer-navigator'\n );\n },\n\n // Views\n get Transitioner() {\n throwError('`Transitioner` has been removed.', 'stack-navigator');\n },\n\n get StackView() {\n throwError('`StackView` has been removed', 'stack-navigator');\n },\n\n get StackViewCard() {\n throwError('`StackViewCard` has been removed', 'stack-navigator');\n },\n\n get StackViewTransitionConfigs() {\n throwError(\n '`StackViewTransitionConfigs` has been removed',\n 'stack-navigator'\n );\n },\n\n // Header\n get Header() {\n throwError(\n '`Header` has been moved to `react-navigation-stack`',\n 'stack-navigator'\n );\n },\n\n get HeaderTitle() {\n throwError(\n '`HeaderTitle` has been moved to `react-navigation-stack`',\n 'stack-navigator'\n );\n },\n\n get HeaderBackButton() {\n throwError(\n '`HeaderBackButton` has been moved to `react-navigation-stack`',\n 'stack-navigator'\n );\n },\n\n get HeaderStyleInterpolator() {\n throwError('`HeaderStyleInterpolator` has been removed', 'stack-navigator');\n },\n\n // DrawerView\n get DrawerView() {\n throwError(\n '`createStackNavigator()` has been moved to `react-navigation-drawer`',\n 'stack-navigator'\n );\n },\n\n get DrawerItems() {\n throwError(\n '`DrawerItems` has been moved to `react-navigation-drawer`',\n 'drawer-navigator'\n );\n },\n\n get DrawerSidebar() {\n throwError(\n '`DrawerSidebar` has been moved to `react-navigation-drawer`',\n 'drawer-navigator'\n );\n },\n\n // Tabs\n get BottomTabBar() {\n throwError(\n '`BottomTabBar` has been moved to `react-navigation-tabs`',\n 'bottom-tab-navigator'\n );\n },\n\n get MaterialTopTabBar() {\n throwError(\n '`MaterialTopTabBar` has been moved to `react-navigation-tabs`',\n 'material-top-tab-navigator'\n );\n },\n};\n","export * from './vendor/index';\n/**\n * Navigators\n */\n\nexport { default as createStackNavigator } from './navigators/createStackNavigator';\n/**\n * Types\n */\n//# sourceMappingURL=index.js.map","import * as CardStyleInterpolators from './TransitionConfigs/CardStyleInterpolators';\nimport * as HeaderStyleInterpolators from './TransitionConfigs/HeaderStyleInterpolators';\nimport * as TransitionSpecs from './TransitionConfigs/TransitionSpecs';\nimport * as TransitionPresets from './TransitionConfigs/TransitionPresets';\nexport const Assets = [// eslint-disable-next-line import/no-commonjs\nrequire('./views/assets/back-icon.png'), // eslint-disable-next-line import/no-commonjs\nrequire('./views/assets/back-icon-mask.png')];\n/**\n * Views\n */\n\nexport { default as StackView } from './views/Stack/StackView';\nexport { default as Header } from './views/Header/Header';\nexport { default as HeaderTitle } from './views/Header/HeaderTitle';\nexport { default as HeaderBackButton } from './views/Header/HeaderBackButton';\nexport { default as HeaderBackground } from './views/Header/HeaderBackground';\n/**\n * Transition presets\n */\n\nexport { CardStyleInterpolators, HeaderStyleInterpolators, TransitionSpecs, TransitionPresets };\n/**\n * Utilities\n */\n\nexport { default as CardAnimationContext } from './utils/CardAnimationContext';\nexport { default as HeaderHeightContext } from './utils/HeaderHeightContext';\nexport { default as GestureHandlerRefContext } from './utils/GestureHandlerRefContext';\nexport { default as useCardAnimation } from './utils/useCardAnimation';\nexport { default as useHeaderHeight } from './utils/useHeaderHeight';\nexport { default as useGestureHandlerRef } from './utils/useGestureHandlerRef';\n/**\n * Types\n */\n//# sourceMappingURL=index.js.map","import { Animated } from 'react-native';\nimport { isIphoneX } from 'react-native-iphone-x-helper';\nimport conditional from '../utils/conditional';\nconst {\n add,\n multiply\n} = Animated;\n/**\n * Standard iOS-style slide in from the right.\n */\n\nexport function forHorizontalIOS({\n current,\n next,\n inverted,\n layouts: {\n screen\n }\n}) {\n const translateFocused = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.width, 0],\n extrapolate: 'clamp'\n }), inverted);\n const translateUnfocused = next ? multiply(next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, screen.width * -0.3],\n extrapolate: 'clamp'\n }), inverted) : 0;\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.07],\n extrapolate: 'clamp'\n });\n const shadowOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.3],\n extrapolate: 'clamp'\n });\n return {\n cardStyle: {\n transform: [// Translation for the animation of the current card\n {\n translateX: translateFocused\n }, // Translation for the animation of the card on top of this\n {\n translateX: translateUnfocused\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n },\n shadowStyle: {\n shadowOpacity\n }\n };\n}\n/**\n * Standard iOS-style slide in from the bottom (used for modals).\n */\n\nexport function forVerticalIOS({\n current,\n inverted,\n layouts: {\n screen\n }\n}) {\n const translateY = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height, 0],\n extrapolate: 'clamp'\n }), inverted);\n return {\n cardStyle: {\n transform: [// Translation for the animation of the current card\n {\n translateY\n }]\n }\n };\n}\n/**\n * Standard iOS-style modal animation in iOS 13.\n */\n\nexport function forModalPresentationIOS({\n index,\n current,\n next,\n inverted,\n layouts: {\n screen\n },\n insets\n}) {\n const isLandscape = screen.width > screen.height;\n const topOffset = isLandscape ? 0 : 10;\n const statusBarHeight = insets.top;\n const aspectRatio = screen.height / screen.width;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const translateY = multiply(progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [screen.height, index === 0 ? 0 : topOffset, (index === 0 ? statusBarHeight : 0) - topOffset * aspectRatio]\n }), inverted);\n const overlayOpacity = progress.interpolate({\n inputRange: [0, 1, 1.0001, 2],\n outputRange: [0, 0.3, 1, 1]\n });\n const scale = isLandscape ? 1 : progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [1, 1, screen.width ? 1 - topOffset * 2 / screen.width : 1]\n });\n const borderRadius = isLandscape ? 0 : index === 0 ? progress.interpolate({\n inputRange: [0, 1, 1.0001, 2],\n outputRange: [0, 0, isIphoneX() ? 38 : 0, 10]\n }) : 10;\n return {\n cardStyle: {\n overflow: 'hidden',\n borderTopLeftRadius: borderRadius,\n borderTopRightRadius: borderRadius,\n marginTop: index === 0 ? 0 : statusBarHeight,\n marginBottom: index === 0 ? 0 : topOffset,\n transform: [{\n translateY\n }, {\n scale\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n }\n };\n}\n/**\n * Standard Android-style fade in from the bottom for Android Oreo.\n */\n\nexport function forFadeFromBottomAndroid({\n current,\n inverted,\n layouts: {\n screen\n },\n closing\n}) {\n const translateY = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * 0.08, 0],\n extrapolate: 'clamp'\n }), inverted);\n const opacity = conditional(closing, current.progress, current.progress.interpolate({\n inputRange: [0, 0.5, 0.9, 1],\n outputRange: [0, 0.25, 0.7, 1]\n }));\n return {\n cardStyle: {\n opacity,\n transform: [{\n translateY\n }]\n }\n };\n}\n/**\n * Standard Android-style reveal from the bottom for Android Pie.\n */\n\nexport function forRevealFromBottomAndroid({\n current,\n next,\n inverted,\n layouts: {\n screen\n }\n}) {\n const containerTranslateY = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height, 0],\n extrapolate: 'clamp'\n }), inverted);\n const cardTranslateYFocused = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * (95.9 / 100) * -1, 0],\n extrapolate: 'clamp'\n }), inverted);\n const cardTranslateYUnfocused = next ? multiply(next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, screen.height * (2 / 100) * -1],\n extrapolate: 'clamp'\n }), inverted) : 0;\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 0.36, 1],\n outputRange: [0, 0.1, 0.1],\n extrapolate: 'clamp'\n });\n return {\n containerStyle: {\n overflow: 'hidden',\n transform: [{\n translateY: containerTranslateY\n }]\n },\n cardStyle: {\n transform: [{\n translateY: cardTranslateYFocused\n }, {\n translateY: cardTranslateYUnfocused\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n }\n };\n}\n/**\n * Standard Android-style reveal from the bottom for Android Q.\n */\n\nexport function forScaleFromCenterAndroid({\n current,\n next,\n closing\n}) {\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const opacity = progress.interpolate({\n inputRange: [0, 0.75, 0.875, 1, 1.0825, 1.2075, 2],\n outputRange: [0, 0, 1, 1, 1, 1, 0]\n });\n const scale = conditional(closing, current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0.9, 1],\n extrapolate: 'clamp'\n }), progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [0.85, 1, 1.1]\n }));\n return {\n containerStyle: {\n opacity,\n transform: [{\n scale\n }]\n }\n };\n}\nexport function forNoAnimation() {\n return {};\n}\n//# sourceMappingURL=CardStyleInterpolators.js.map","import { Dimensions, Platform, StatusBar } from 'react-native';\n\nexport function isIphoneX() {\n const dimen = Dimensions.get('window');\n return (\n Platform.OS === 'ios' &&\n !Platform.isPad &&\n !Platform.isTVOS &&\n ((dimen.height === 780 || dimen.width === 780)\n || (dimen.height === 812 || dimen.width === 812)\n || (dimen.height === 844 || dimen.width === 844)\n || (dimen.height === 896 || dimen.width === 896)\n || (dimen.height === 926 || dimen.width === 926))\n );\n}\n\nexport function ifIphoneX(iphoneXStyle, regularStyle) {\n if (isIphoneX()) {\n return iphoneXStyle;\n }\n return regularStyle;\n}\n\nexport function getStatusBarHeight(safe) {\n return Platform.select({\n ios: ifIphoneX(safe ? 44 : 30, 20),\n android: StatusBar.currentHeight,\n default: 0\n });\n}\n\nexport function getBottomSpace() {\n return isIphoneX() ? 34 : 0;\n}\n","import { Animated } from 'react-native';\nconst {\n add,\n multiply\n} = Animated;\n/**\n * Use an Animated Node based on a condition. Similar to Reanimated's `cond`.\n *\n * @param condition Animated Node representing the condition, must be 0 or 1, 1 means `true`, 0 means `false`\n * @param main Animated Node to use if the condition is `true`\n * @param fallback Animated Node to use if the condition is `false`\n */\n\nexport default function conditional(condition, main, fallback) {\n // To implement this behavior, we multiply the main node with the condition.\n // So if condition is 0, result will be 0, and if condition is 1, result will be main node.\n // Then we multiple reverse of the condition (0 if condition is 1) with the fallback.\n // So if condition is 0, result will be fallback node, and if condition is 1, result will be 0,\n // This way, one of them will always be 0, and other one will be the value we need.\n // In the end we add them both together, 0 + value we need = value we need\n return add(multiply(condition, main), multiply(condition.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n }), fallback));\n}\n//# sourceMappingURL=conditional.js.map","import { Animated, I18nManager } from 'react-native';\nconst {\n add\n} = Animated;\n/**\n * Standard UIKit style animation for the header where the title fades into the back button label.\n */\n\nexport function forUIKit({\n current,\n next,\n layouts\n}) {\n const defaultOffset = 100;\n const leftSpacing = 27; // The title and back button title should cross-fade to each other\n // When screen is fully open, the title should be in center, and back title should be on left\n // When screen is closing, the previous title will animate to back title's position\n // And back title will animate to title's position\n // We achieve this by calculating the offsets needed to translate title to back title's position and vice-versa\n\n const leftLabelOffset = layouts.leftLabel ? (layouts.screen.width - layouts.leftLabel.width) / 2 - leftSpacing : defaultOffset;\n const titleLeftOffset = layouts.title ? (layouts.screen.width - layouts.title.width) / 2 - leftSpacing : defaultOffset; // When the current title is animating to right, it is centered in the right half of screen in middle of transition\n // The back title also animates in from this position\n\n const rightOffset = layouts.screen.width / 4;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n return {\n leftButtonStyle: {\n opacity: progress.interpolate({\n inputRange: [0.3, 1, 1.5],\n outputRange: [0, 1, 0]\n })\n },\n leftLabelStyle: {\n transform: [{\n translateX: progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.isRTL ? [-rightOffset, 0, leftLabelOffset] : [leftLabelOffset, 0, -rightOffset]\n })\n }]\n },\n rightButtonStyle: {\n opacity: progress.interpolate({\n inputRange: [0.3, 1, 1.5],\n outputRange: [0, 1, 0]\n })\n },\n titleStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 0.4, 1, 1.5],\n outputRange: [0, 0.1, 1, 0]\n }),\n transform: [{\n translateX: progress.interpolate({\n inputRange: [0.5, 1, 2],\n outputRange: I18nManager.isRTL ? [-titleLeftOffset, 0, rightOffset] : [rightOffset, 0, -titleLeftOffset]\n })\n }]\n },\n backgroundStyle: {\n transform: [{\n translateX: progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.isRTL ? [-layouts.screen.width, 0, layouts.screen.width] : [layouts.screen.width, 0, -layouts.screen.width]\n })\n }]\n }\n };\n}\n/**\n * Simple fade animation for the header elements.\n */\n\nexport function forFade({\n current,\n next\n}) {\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const opacity = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [0, 1, 0]\n });\n return {\n leftButtonStyle: {\n opacity\n },\n rightButtonStyle: {\n opacity\n },\n titleStyle: {\n opacity\n },\n backgroundStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 1, 1.9, 2],\n outputRange: [0, 1, 1, 0]\n })\n }\n };\n}\n/**\n * Simple translate animation to translate the header to left.\n */\n\nexport function forSlideLeft({\n current,\n next,\n layouts: {\n screen\n }\n}) {\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const translateX = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.isRTL ? [-screen.width, 0, screen.width] : [screen.width, 0, -screen.width]\n });\n const transform = [{\n translateX\n }];\n return {\n leftButtonStyle: {\n transform\n },\n rightButtonStyle: {\n transform\n },\n titleStyle: {\n transform\n },\n backgroundStyle: {\n transform\n }\n };\n}\n/**\n * Simple translate animation to translate the header to right.\n */\n\nexport function forSlideRight({\n current,\n next,\n layouts: {\n screen\n }\n}) {\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const translateX = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.isRTL ? [screen.width, 0, -screen.width] : [-screen.width, 0, screen.width]\n });\n const transform = [{\n translateX\n }];\n return {\n leftButtonStyle: {\n transform\n },\n rightButtonStyle: {\n transform\n },\n titleStyle: {\n transform\n },\n backgroundStyle: {\n transform\n }\n };\n}\n/**\n * Simple translate animation to translate the header to slide up.\n */\n\nexport function forSlideUp({\n current,\n next,\n layouts: {\n header\n }\n}) {\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const translateY = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [-header.height, 0, -header.height]\n });\n const transform = [{\n translateY\n }];\n return {\n leftButtonStyle: {\n transform\n },\n rightButtonStyle: {\n transform\n },\n titleStyle: {\n transform\n },\n backgroundStyle: {\n transform\n }\n };\n}\nexport function forNoAnimation() {\n return {};\n}\n//# sourceMappingURL=HeaderStyleInterpolators.js.map","import { Easing } from 'react-native';\n\n/**\n * Exact values from UINavigationController's animation configuration.\n */\nexport const TransitionIOSSpec = {\n animation: 'spring',\n config: {\n stiffness: 1000,\n damping: 500,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 10,\n restSpeedThreshold: 10\n }\n};\n/**\n * Configuration for activity open animation from Android Nougat.\n * See http://aosp.opersys.com/xref/android-7.1.2_r37/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\n\nexport const FadeInFromBottomAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 350,\n easing: Easing.out(Easing.poly(5))\n }\n};\n/**\n * Configuration for activity close animation from Android Nougat.\n * See http://aosp.opersys.com/xref/android-7.1.2_r37/xref/frameworks/base/core/res/res/anim/activity_close_exit.xml\n */\n\nexport const FadeOutToBottomAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 150,\n easing: Easing.in(Easing.linear)\n }\n};\n/**\n * Approximate configuration for activity open animation from Android Pie.\n * See http://aosp.opersys.com/xref/android-9.0.0_r47/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\n\nexport const RevealFromBottomAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 425,\n // This is super rough approximation of the path used for the curve by android\n // See http://aosp.opersys.com/xref/android-9.0.0_r47/xref/frameworks/base/core/res/res/interpolator/fast_out_extra_slow_in.xml\n easing: Easing.bezier(0.35, 0.45, 0, 1)\n }\n};\n/**\n * Approximate configuration for activity open animation from Android Q.\n * See http://aosp.opersys.com/xref/android-10.0.0_r2/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\n\nexport const ScaleFromCenterAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 400,\n // This is super rough approximation of the path used for the curve by android\n // See http://aosp.opersys.com/xref/android-10.0.0_r2/xref/frameworks/base/core/res/res/interpolator/fast_out_extra_slow_in.xml\n easing: Easing.bezier(0.35, 0.45, 0, 1)\n }\n};\n//# sourceMappingURL=TransitionSpecs.js.map","import { Platform } from 'react-native';\nimport { forHorizontalIOS, forVerticalIOS, forScaleFromCenterAndroid, forRevealFromBottomAndroid, forFadeFromBottomAndroid, forModalPresentationIOS } from './CardStyleInterpolators';\nimport { forFade } from './HeaderStyleInterpolators';\nimport { TransitionIOSSpec, ScaleFromCenterAndroidSpec, RevealFromBottomAndroidSpec, FadeOutToBottomAndroidSpec, FadeInFromBottomAndroidSpec } from './TransitionSpecs';\nconst ANDROID_VERSION_PIE = 28;\nconst ANDROID_VERSION_10 = 29;\n/**\n * Standard iOS navigation transition.\n */\n\nexport const SlideFromRightIOS = {\n gestureDirection: 'horizontal',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec\n },\n cardStyleInterpolator: forHorizontalIOS,\n headerStyleInterpolator: forFade\n};\n/**\n * Standard iOS navigation transition for modals.\n */\n\nexport const ModalSlideFromBottomIOS = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec\n },\n cardStyleInterpolator: forVerticalIOS,\n headerStyleInterpolator: forFade\n};\n/**\n * Standard iOS modal presentation style (introduced in iOS 13).\n */\n\nexport const ModalPresentationIOS = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec\n },\n cardStyleInterpolator: forModalPresentationIOS,\n headerStyleInterpolator: forFade\n};\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android < 9 (Oreo).\n */\n\nexport const FadeFromBottomAndroid = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: FadeInFromBottomAndroidSpec,\n close: FadeOutToBottomAndroidSpec\n },\n cardStyleInterpolator: forFadeFromBottomAndroid,\n headerStyleInterpolator: forFade\n};\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android 9 (Pie).\n */\n\nexport const RevealFromBottomAndroid = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: RevealFromBottomAndroidSpec,\n close: RevealFromBottomAndroidSpec\n },\n cardStyleInterpolator: forRevealFromBottomAndroid,\n headerStyleInterpolator: forFade\n};\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android 10 (Q).\n */\n\nexport const ScaleFromCenterAndroid = {\n gestureDirection: 'horizontal',\n transitionSpec: {\n open: ScaleFromCenterAndroidSpec,\n close: ScaleFromCenterAndroidSpec\n },\n cardStyleInterpolator: forScaleFromCenterAndroid,\n headerStyleInterpolator: forFade\n};\n/**\n * Default navigation transition for the current platform.\n */\n\nexport const DefaultTransition = Platform.select({\n ios: SlideFromRightIOS,\n android: Platform.Version >= ANDROID_VERSION_10 ? ScaleFromCenterAndroid : Platform.Version >= ANDROID_VERSION_PIE ? RevealFromBottomAndroid : FadeFromBottomAndroid,\n default: ScaleFromCenterAndroid\n});\n/**\n * Default modal transition for the current platform.\n */\n\nexport const ModalTransition = Platform.select({\n ios: ModalSlideFromBottomIOS,\n default: DefaultTransition\n});\n//# sourceMappingURL=TransitionPresets.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { View, Platform, StyleSheet } from 'react-native';\nimport { SafeAreaConsumer } from 'react-native-safe-area-context';\nimport { StackActions, NavigationActions, SceneView } from 'react-navigation';\nimport { GestureHandlerRootView } from '../GestureHandler';\nimport CardStack from './CardStack';\nimport KeyboardManager from '../KeyboardManager';\nimport HeaderContainer from '../Header/HeaderContainer';\nimport SafeAreaProviderCompat from '../SafeAreaProviderCompat';\nimport HeaderShownContext from '../../utils/HeaderShownContext';\nconst GestureHandlerWrapper = GestureHandlerRootView !== null && GestureHandlerRootView !== void 0 ? GestureHandlerRootView : View;\n/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\n\nconst isArrayEqual = (a, b) => a.length === b.length && a.every((it, index) => it === b[index]);\n\nexport default class StackView extends React.Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"state\", {\n routes: [],\n previousRoutes: [],\n previousDescriptors: {},\n openingRouteKeys: [],\n closingRouteKeys: [],\n replacingRouteKeys: [],\n descriptors: {}\n });\n\n _defineProperty(this, \"getGesturesEnabled\", ({\n route\n }) => {\n const descriptor = this.state.descriptors[route.key];\n\n if (descriptor) {\n const {\n gestureEnabled,\n animationEnabled\n } = descriptor.options;\n\n if (animationEnabled === false) {\n // When animation is disabled, also disable gestures\n // The gesture to dismiss a route will look weird when not animated\n return false;\n }\n\n return gestureEnabled !== undefined ? gestureEnabled : Platform.OS !== 'android';\n }\n\n return false;\n });\n\n _defineProperty(this, \"getPreviousRoute\", ({\n route\n }) => {\n const {\n closingRouteKeys,\n replacingRouteKeys\n } = this.state;\n const routes = this.state.routes.filter(r => r.key === route.key || !closingRouteKeys.includes(r.key) && !replacingRouteKeys.includes(r.key));\n const index = routes.findIndex(r => r.key === route.key);\n return routes[index - 1];\n });\n\n _defineProperty(this, \"renderScene\", ({\n route\n }) => {\n const descriptor = this.state.descriptors[route.key] || this.props.descriptors[route.key];\n\n if (!descriptor) {\n return null;\n }\n\n const {\n navigation,\n getComponent\n } = descriptor;\n const SceneComponent = getComponent();\n return /*#__PURE__*/React.createElement(SceneView, {\n screenProps: this.props.screenProps,\n navigation: navigation,\n component: SceneComponent\n });\n });\n\n _defineProperty(this, \"renderHeader\", props => {\n return /*#__PURE__*/React.createElement(HeaderContainer, props);\n });\n\n _defineProperty(this, \"handleTransitionComplete\", () => {\n const {\n state,\n navigation\n } = this.props;\n\n if (state.isTransitioning) {\n navigation.dispatch(StackActions.completeTransition({\n key: navigation.state.key,\n toChildKey: state.routes[state.index].key\n }));\n }\n });\n\n _defineProperty(this, \"handleOpenRoute\", ({\n route\n }) => {\n const {\n state,\n navigation\n } = this.props;\n const {\n closingRouteKeys,\n replacingRouteKeys\n } = this.state;\n this.handleTransitionComplete();\n\n if (closingRouteKeys.some(key => key === route.key) && replacingRouteKeys.every(key => key !== route.key) && !state.routes.some(r => r.key === route.key)) {\n // If route isn't present in current state, but was closing, assume that a close animation was cancelled\n // So we need to add this route back to the state\n navigation.dispatch(NavigationActions.navigate(route));\n } else {\n this.setState(state => ({\n routes: state.replacingRouteKeys.length ? state.routes.filter(r => !state.replacingRouteKeys.includes(r.key)) : state.routes,\n openingRouteKeys: state.openingRouteKeys.filter(key => key !== route.key),\n closingRouteKeys: state.closingRouteKeys.filter(key => key !== route.key),\n replacingRouteKeys: []\n }));\n }\n });\n\n _defineProperty(this, \"handleCloseRoute\", ({\n route\n }) => {\n const {\n state,\n navigation\n } = this.props;\n\n if (state.routes.some(r => r.key === route.key)) {\n // If a route exists in state, trigger a pop\n // This will happen in when the route was closed from the card component\n // e.g. When the close animation triggered from a gesture ends\n // @ts-ignore\n navigation.dispatch(StackActions.pop({\n key: route.key,\n prune: false\n }));\n } else {\n this.handleTransitionComplete(); // We need to clean up any state tracking the route and pop it immediately\n\n this.setState(state => ({\n routes: state.routes.filter(r => r.key !== route.key),\n openingRouteKeys: state.openingRouteKeys.filter(key => key !== route.key),\n closingRouteKeys: state.closingRouteKeys.filter(key => key !== route.key)\n }));\n }\n });\n\n _defineProperty(this, \"handleTransitionStart\", ({\n route\n }, closing) => {\n var _descriptor$options$o, _descriptor$options;\n\n const {\n descriptors\n } = this.props;\n const descriptor = descriptors[route.key] || this.state.descriptors[route.key];\n descriptor === null || descriptor === void 0 ? void 0 : (_descriptor$options$o = (_descriptor$options = descriptor.options).onTransitionStart) === null || _descriptor$options$o === void 0 ? void 0 : _descriptor$options$o.call(_descriptor$options, {\n closing\n });\n });\n\n _defineProperty(this, \"handleTransitionEnd\", ({\n route\n }, closing) => {\n var _descriptor$options$o2, _descriptor$options2;\n\n const {\n descriptors\n } = this.props;\n const descriptor = descriptors[route.key] || this.state.descriptors[route.key];\n descriptor === null || descriptor === void 0 ? void 0 : (_descriptor$options$o2 = (_descriptor$options2 = descriptor.options).onTransitionEnd) === null || _descriptor$options$o2 === void 0 ? void 0 : _descriptor$options$o2.call(_descriptor$options2, {\n closing\n });\n });\n\n _defineProperty(this, \"handleGestureStart\", () => {// Do nothing\n });\n\n _defineProperty(this, \"handleGestureEnd\", () => {// Do nothing\n });\n\n _defineProperty(this, \"handleGestureCancel\", () => {// Do nothing\n });\n }\n\n static getDerivedStateFromProps(props, state) {\n // If there was no change in routes, we don't need to compute anything\n if ((props.state.routes === state.previousRoutes || isArrayEqual(props.state.routes.map(r => r.key), state.previousRoutes.map(r => r.key))) && state.routes.length) {\n let routes = state.routes;\n let previousRoutes = state.previousRoutes;\n let descriptors = props.descriptors;\n let previousDescriptors = state.previousDescriptors;\n\n if (props.descriptors !== state.previousDescriptors) {\n descriptors = state.routes.reduce((acc, route) => {\n acc[route.key] = props.descriptors[route.key] || state.descriptors[route.key];\n return acc;\n }, {});\n previousDescriptors = props.descriptors;\n }\n\n if (props.state.routes !== state.previousRoutes) {\n // if any route objects have changed, we should update them\n const map = props.state.routes.reduce((acc, route) => {\n acc[route.key] = route;\n return acc;\n }, {});\n routes = state.routes.map(route => map[route.key] || route);\n previousRoutes = props.state.routes;\n }\n\n return {\n routes,\n previousRoutes,\n descriptors,\n previousDescriptors\n };\n } // Here we determine which routes were added or removed to animate them\n // We keep a copy of the route being removed in local state to be able to animate it\n\n\n let routes = props.state.index < props.state.routes.length - 1 ? // Remove any extra routes from the state\n // The last visible route should be the focused route, i.e. at current index\n props.state.routes.slice(0, props.state.index + 1) : props.state.routes; // Now we need to determine which routes were added and removed\n\n let {\n openingRouteKeys,\n closingRouteKeys,\n replacingRouteKeys,\n previousRoutes\n } = state;\n const previousFocusedRoute = previousRoutes[previousRoutes.length - 1];\n const nextFocusedRoute = routes[routes.length - 1];\n\n const isAnimationEnabled = key => {\n const descriptor = props.descriptors[key] || state.descriptors[key];\n return descriptor ? descriptor.options.animationEnabled !== false : true;\n };\n\n const getAnimationTypeForReplace = key => {\n var _descriptor$options$a;\n\n const descriptor = props.descriptors[key] || state.descriptors[key];\n return (_descriptor$options$a = descriptor.options.animationTypeForReplace) !== null && _descriptor$options$a !== void 0 ? _descriptor$options$a : 'push';\n };\n\n if (previousFocusedRoute && previousFocusedRoute.key !== nextFocusedRoute.key) {\n // We only need to animate routes if the focused route changed\n // Animating previous routes won't be visible coz the focused route is on top of everything\n if (!previousRoutes.some(r => r.key === nextFocusedRoute.key)) {\n // A new route has come to the focus, we treat this as a push\n // A replace can also trigger this, the animation should look like push\n if (isAnimationEnabled(nextFocusedRoute.key) && !openingRouteKeys.includes(nextFocusedRoute.key)) {\n // In this case, we need to animate pushing the focused route\n // We don't care about animating any other added routes because they won't be visible\n openingRouteKeys = [...openingRouteKeys, nextFocusedRoute.key];\n closingRouteKeys = closingRouteKeys.filter(key => key !== nextFocusedRoute.key);\n replacingRouteKeys = replacingRouteKeys.filter(key => key !== nextFocusedRoute.key);\n\n if (!routes.some(r => r.key === previousFocusedRoute.key)) {\n // The previous focused route isn't present in state, we treat this as a replace\n openingRouteKeys = openingRouteKeys.filter(key => key !== previousFocusedRoute.key);\n\n if (getAnimationTypeForReplace(nextFocusedRoute.key) === 'pop') {\n closingRouteKeys = [...closingRouteKeys, previousFocusedRoute.key]; // By default, new routes have a push animation, so we add it to `openingRouteKeys` before\n // But since user configured it to animate the old screen like a pop, we need to add this without animation\n // So remove it from `openingRouteKeys` which will remove the animation\n\n openingRouteKeys = openingRouteKeys.filter(key => key !== nextFocusedRoute.key); // Keep the route being removed at the end to animate it out\n\n routes = [...routes, previousFocusedRoute];\n } else {\n replacingRouteKeys = [...replacingRouteKeys, previousFocusedRoute.key];\n closingRouteKeys = closingRouteKeys.filter(key => key !== previousFocusedRoute.key); // Keep the old route in the state because it's visible under the new route, and removing it will feel abrupt\n // We need to insert it just before the focused one (the route being pushed)\n // After the push animation is completed, routes being replaced will be removed completely\n\n routes = routes.slice();\n routes.splice(routes.length - 1, 0, previousFocusedRoute);\n }\n }\n }\n } else if (!routes.some(r => r.key === previousFocusedRoute.key)) {\n // The previously focused route was removed, we treat this as a pop\n if (isAnimationEnabled(previousFocusedRoute.key) && !closingRouteKeys.includes(previousFocusedRoute.key)) {\n closingRouteKeys = [...closingRouteKeys, previousFocusedRoute.key]; // Sometimes a route can be closed before the opening animation finishes\n // So we also need to remove it from the opening list\n\n openingRouteKeys = openingRouteKeys.filter(key => key !== previousFocusedRoute.key);\n replacingRouteKeys = replacingRouteKeys.filter(key => key !== previousFocusedRoute.key); // Keep a copy of route being removed in the state to be able to animate it\n\n routes = [...routes, previousFocusedRoute];\n }\n } else {// Looks like some routes were re-arranged and no focused routes were added/removed\n // i.e. the currently focused route already existed and the previously focused route still exists\n // We don't know how to animate this\n }\n } else if (replacingRouteKeys.length || closingRouteKeys.length) {\n // Keep the routes we are closing or replacing if animation is enabled for them\n routes = routes.slice();\n routes.splice(routes.length - 1, 0, ...state.routes.filter(({\n key\n }) => isAnimationEnabled(key) ? replacingRouteKeys.includes(key) || closingRouteKeys.includes(key) : false));\n }\n\n if (!routes.length) {\n throw new Error('There should always be at least one route in the navigation state.');\n }\n\n const descriptors = routes.reduce((acc, route) => {\n acc[route.key] = props.descriptors[route.key] || state.descriptors[route.key];\n return acc;\n }, {});\n return {\n routes,\n previousRoutes: props.state.routes,\n previousDescriptors: props.descriptors,\n openingRouteKeys,\n closingRouteKeys,\n replacingRouteKeys,\n descriptors\n };\n }\n\n render() {\n const {\n state,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n navigation,\n keyboardHandlingEnabled,\n mode = 'card',\n headerMode = mode === 'card' && Platform.OS === 'ios' ? 'float' : 'screen',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n descriptors: _,\n ...rest\n } = this.props;\n const {\n routes,\n descriptors,\n openingRouteKeys,\n closingRouteKeys\n } = this.state;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(GestureHandlerWrapper, {\n style: styles.container\n }, /*#__PURE__*/React.createElement(SafeAreaProviderCompat, null, /*#__PURE__*/React.createElement(SafeAreaConsumer, null, insets => /*#__PURE__*/React.createElement(KeyboardManager, {\n enabled: keyboardHandlingEnabled !== false\n }, props => /*#__PURE__*/React.createElement(HeaderShownContext.Consumer, null, isParentHeaderShown => /*#__PURE__*/React.createElement(CardStack, _extends({\n mode: mode,\n insets: insets,\n isParentHeaderShown: isParentHeaderShown,\n getPreviousRoute: this.getPreviousRoute,\n getGesturesEnabled: this.getGesturesEnabled,\n routes: routes,\n openingRouteKeys: openingRouteKeys,\n closingRouteKeys: closingRouteKeys,\n onOpenRoute: this.handleOpenRoute,\n onCloseRoute: this.handleCloseRoute,\n onTransitionStart: this.handleTransitionStart,\n onTransitionEnd: this.handleTransitionEnd,\n renderHeader: this.renderHeader,\n renderScene: this.renderScene,\n headerMode: headerMode,\n state: state,\n descriptors: descriptors,\n onGestureStart: this.handleGestureStart,\n onGestureEnd: this.handleGestureEnd,\n onGestureCancel: this.handleGestureCancel\n }, rest, props))))))));\n }\n\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n }\n});\n//# sourceMappingURL=StackView.js.map","export * from './SafeAreaContext';\nexport * from './SafeAreaView';\nexport * from './InitialWindow';\nexport * from './SafeArea.types';\n","import * as React from 'react';\nimport { Dimensions, StyleSheet, ViewProps } from 'react-native';\nimport { NativeSafeAreaProvider } from './NativeSafeAreaProvider';\nimport type {\n EdgeInsets,\n InsetChangedEvent,\n Metrics,\n Rect,\n} from './SafeArea.types';\n\nconst isDev = process.env.NODE_ENV !== 'production';\n\nexport const SafeAreaInsetsContext = React.createContext<EdgeInsets | null>(\n null,\n);\nif (isDev) {\n SafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';\n}\n\nexport const SafeAreaFrameContext = React.createContext<Rect | null>(null);\nif (isDev) {\n SafeAreaFrameContext.displayName = 'SafeAreaFrameContext';\n}\n\nexport interface SafeAreaProviderProps extends ViewProps {\n children?: React.ReactNode;\n initialMetrics?: Metrics | null;\n /**\n * @deprecated\n */\n initialSafeAreaInsets?: EdgeInsets | null;\n}\n\nexport function SafeAreaProvider({\n children,\n initialMetrics,\n initialSafeAreaInsets,\n style,\n ...others\n}: SafeAreaProviderProps) {\n const parentInsets = useParentSafeAreaInsets();\n const parentFrame = useParentSafeAreaFrame();\n const [insets, setInsets] = React.useState<EdgeInsets | null>(\n initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? null,\n );\n const [frame, setFrame] = React.useState<Rect>(\n initialMetrics?.frame ??\n parentFrame ?? {\n // Backwards compat so we render anyway if we don't have frame.\n x: 0,\n y: 0,\n width: Dimensions.get('window').width,\n height: Dimensions.get('window').height,\n },\n );\n const onInsetsChange = React.useCallback(\n (event: InsetChangedEvent) => {\n const {\n nativeEvent: { frame: nextFrame, insets: nextInsets },\n } = event;\n\n if (\n // Backwards compat with old native code that won't send frame.\n nextFrame &&\n (nextFrame.height !== frame.height ||\n nextFrame.width !== frame.width ||\n nextFrame.x !== frame.x ||\n nextFrame.y !== frame.y)\n ) {\n setFrame(nextFrame);\n }\n\n if (\n !insets ||\n nextInsets.bottom !== insets.bottom ||\n nextInsets.left !== insets.left ||\n nextInsets.right !== insets.right ||\n nextInsets.top !== insets.top\n ) {\n setInsets(nextInsets);\n }\n },\n [frame, insets],\n );\n\n return (\n <NativeSafeAreaProvider\n style={[styles.fill, style]}\n onInsetsChange={onInsetsChange}\n {...others}\n >\n {insets != null ? (\n <SafeAreaFrameContext.Provider value={frame}>\n <SafeAreaInsetsContext.Provider value={insets}>\n {children}\n </SafeAreaInsetsContext.Provider>\n </SafeAreaFrameContext.Provider>\n ) : null}\n </NativeSafeAreaProvider>\n );\n}\n\nconst styles = StyleSheet.create({\n fill: { flex: 1 },\n});\n\nfunction useParentSafeAreaInsets(): EdgeInsets | null {\n return React.useContext(SafeAreaInsetsContext);\n}\n\nfunction useParentSafeAreaFrame(): Rect | null {\n return React.useContext(SafeAreaFrameContext);\n}\n\nconst NO_INSETS_ERROR =\n 'No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.';\n\nexport function useSafeAreaInsets(): EdgeInsets {\n const safeArea = React.useContext(SafeAreaInsetsContext);\n if (safeArea == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return safeArea;\n}\n\nexport function useSafeAreaFrame(): Rect {\n const frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return frame;\n}\n\nexport type WithSafeAreaInsetsProps = {\n insets: EdgeInsets;\n};\n\nexport function withSafeAreaInsets<T>(\n WrappedComponent: React.ComponentType<T & WithSafeAreaInsetsProps>,\n): React.ForwardRefExoticComponent<\n React.PropsWithoutRef<T> & React.RefAttributes<unknown>\n> {\n return React.forwardRef((props: T, ref: React.Ref<unknown>) => (\n <SafeAreaInsetsContext.Consumer>\n {(insets) => {\n if (insets == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return <WrappedComponent {...props} insets={insets} ref={ref} />;\n }}\n </SafeAreaInsetsContext.Consumer>\n ));\n}\n\n/**\n * @deprecated\n */\nexport function useSafeArea(): EdgeInsets {\n return useSafeAreaInsets();\n}\n\n/**\n * @deprecated\n */\nexport const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\n\n/**\n * @deprecated\n */\nexport const SafeAreaContext = SafeAreaInsetsContext;\n","import NativeSafeAreaProvider from './specs/NativeSafeAreaProvider';\n\nexport { NativeSafeAreaProvider };\n","import type {\n DirectEventHandler,\n Double,\n} from 'react-native/Libraries/Types/CodegenTypes';\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps, HostComponent } from 'react-native';\n\nexport type Event = Readonly<{\n insets: Readonly<{\n top: Double;\n right: Double;\n bottom: Double;\n left: Double;\n }>;\n frame: Readonly<{\n x: Double;\n y: Double;\n width: Double;\n height: Double;\n }>;\n}>;\n\nexport interface NativeProps extends ViewProps {\n onInsetsChange?: DirectEventHandler<Event, 'paperInsetsChange'>;\n}\n\nexport default codegenNativeComponent<NativeProps>(\n 'RNCSafeAreaProvider',\n) as HostComponent<NativeProps>;\n","import * as React from 'react';\nimport type { NativeSafeAreaViewProps } from './SafeArea.types';\nimport NativeSafeAreaView from './specs/NativeSafeAreaView';\n\ntype NativeSafeAreaViewInstance = InstanceType<typeof NativeSafeAreaView>;\n\nexport type SafeAreaViewProps = NativeSafeAreaViewProps;\n\nexport const SafeAreaView: React.ForwardRefExoticComponent<\n SafeAreaViewProps & React.RefAttributes<NativeSafeAreaViewInstance>\n> = React.forwardRef<NativeSafeAreaViewInstance, SafeAreaViewProps>(\n ({ edges, ...props }, ref) => {\n return (\n <NativeSafeAreaView\n {...props}\n // Codegen doesn't support default values for array types so\n // set it here.\n edges={edges ?? ['bottom', 'left', 'right', 'top']}\n ref={ref}\n />\n );\n },\n);\n","import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes';\nimport type { ViewProps, HostComponent } from 'react-native';\n\nexport interface NativeProps extends ViewProps {\n mode?: WithDefault<'padding' | 'margin', 'padding'>;\n // Should be `'top' | 'right' | 'bottom' | 'left'` but that generates invalid code.\n edges?: readonly string[];\n}\n\nexport default codegenNativeComponent<NativeProps>('RNCSafeAreaView', {\n interfaceOnly: true,\n}) as HostComponent<NativeProps>;\n","import type { Metrics } from './SafeArea.types';\nimport NativeSafeAreaContext from './specs/NativeSafeAreaContext';\n\nexport const initialWindowMetrics = (NativeSafeAreaContext?.getConstants?.()\n ?.initialWindowMetrics ?? null) as Metrics | null;\n\n/**\n * @deprecated\n */\nexport const initialWindowSafeAreaInsets = initialWindowMetrics?.insets;\n","import type { Double } from 'react-native/Libraries/Types/CodegenTypes';\nimport type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport';\nimport * as TurboModuleRegistry from 'react-native/Libraries/TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n getConstants: () => {\n initialWindowMetrics?: {\n insets: {\n top: Double;\n right: Double;\n bottom: Double;\n left: Double;\n };\n frame: {\n x: Double;\n y: Double;\n width: Double;\n height: Double;\n };\n };\n };\n}\n\n// @ts-expect-error\nexport default TurboModuleRegistry.get<Spec>('RNCSafeAreaContext');\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { PanGestureHandler as PanGestureHandlerNative } from 'react-native-gesture-handler';\nimport GestureHandlerRefContext from '../utils/GestureHandlerRefContext';\nexport function PanGestureHandler(props) {\n const gestureRef = React.useRef(null);\n return /*#__PURE__*/React.createElement(GestureHandlerRefContext.Provider, {\n value: gestureRef\n }, /*#__PURE__*/React.createElement(PanGestureHandlerNative, _extends({}, props, {\n ref: gestureRef\n })));\n}\nexport { GestureHandlerRootView, State as GestureState, PanGestureHandlerGestureEvent } from 'react-native-gesture-handler';\n//# sourceMappingURL=GestureHandlerNative.js.map","import * as React from 'react';\nexport default /*#__PURE__*/React.createContext(null);\n//# sourceMappingURL=GestureHandlerRefContext.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { Animated, StyleSheet, Dimensions, Platform } from 'react-native';\nimport { MaybeScreenContainer, MaybeScreen, shouldUseActivityState } from '../Screens';\nimport { getDefaultHeaderHeight } from '../Header/HeaderSegment';\nimport CardContainer from './CardContainer';\nimport { DefaultTransition, ModalTransition } from '../../TransitionConfigs/TransitionPresets';\nimport { forNoAnimation as forNoAnimationHeader } from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport { forNoAnimation as forNoAnimationCard } from '../../TransitionConfigs/CardStyleInterpolators';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nconst EPSILON = 0.01;\nconst STATE_INACTIVE = 0;\nconst STATE_TRANSITIONING_OR_BELOW_TOP = 1;\nconst STATE_ON_TOP = 2;\nconst FALLBACK_DESCRIPTOR = Object.freeze({\n options: {}\n});\n\nconst getHeaderHeights = (routes, insets, isParentHeaderShown, descriptors, layout, previous) => {\n return routes.reduce((acc, curr) => {\n const {\n options = {}\n } = descriptors[curr.key] || {};\n const style = StyleSheet.flatten(options.headerStyle || {});\n const height = typeof style.height === 'number' ? style.height : previous[curr.key];\n const safeAreaInsets = { ...insets,\n ...options.safeAreaInsets\n };\n const {\n headerStatusBarHeight = isParentHeaderShown ? 0 : safeAreaInsets.top\n } = options;\n acc[curr.key] = typeof height === 'number' ? height : getDefaultHeaderHeight(layout, headerStatusBarHeight);\n return acc;\n }, {});\n};\n\nconst getDistanceFromOptions = (mode, layout, descriptor) => {\n const {\n gestureDirection = mode === 'modal' ? ModalTransition.gestureDirection : DefaultTransition.gestureDirection\n } = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.options) || {};\n return getDistanceForDirection(layout, gestureDirection);\n};\n\nconst getProgressFromGesture = (mode, gesture, layout, descriptor) => {\n const distance = getDistanceFromOptions(mode, {\n // Make sure that we have a non-zero distance, otherwise there will be incorrect progress\n // This causes blank screen on web if it was previously inside container with display: none\n width: Math.max(1, layout.width),\n height: Math.max(1, layout.height)\n }, descriptor);\n\n if (distance > 0) {\n return gesture.interpolate({\n inputRange: [0, distance],\n outputRange: [1, 0]\n });\n }\n\n return gesture.interpolate({\n inputRange: [distance, 0],\n outputRange: [0, 1]\n });\n};\n\nexport default class CardStack extends React.Component {\n static getDerivedStateFromProps(props, state) {\n if (props.routes === state.routes && props.descriptors === state.descriptors) {\n return null;\n }\n\n const gestures = props.routes.reduce((acc, curr) => {\n const descriptor = props.descriptors[curr.key];\n const {\n animationEnabled\n } = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.options) || {};\n acc[curr.key] = state.gestures[curr.key] || new Animated.Value(props.openingRouteKeys.includes(curr.key) && animationEnabled !== false ? getDistanceFromOptions(props.mode, state.layout, descriptor) : 0);\n return acc;\n }, {});\n return {\n routes: props.routes,\n scenes: props.routes.map((route, index, self) => {\n const previousRoute = self[index - 1];\n const nextRoute = self[index + 1];\n const oldScene = state.scenes[index];\n const currentGesture = gestures[route.key];\n const previousGesture = previousRoute ? gestures[previousRoute.key] : undefined;\n const nextGesture = nextRoute ? gestures[nextRoute.key] : undefined;\n const descriptor = props.descriptors[route.key] || state.descriptors[route.key] || (oldScene ? oldScene.descriptor : FALLBACK_DESCRIPTOR);\n const nextDescriptor = props.descriptors[nextRoute === null || nextRoute === void 0 ? void 0 : nextRoute.key] || state.descriptors[nextRoute === null || nextRoute === void 0 ? void 0 : nextRoute.key];\n const previousDescriptor = props.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key] || state.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key];\n const scene = {\n route,\n descriptor,\n progress: {\n current: getProgressFromGesture(props.mode, currentGesture, state.layout, descriptor),\n next: nextGesture ? getProgressFromGesture(props.mode, nextGesture, state.layout, nextDescriptor) : undefined,\n previous: previousGesture ? getProgressFromGesture(props.mode, previousGesture, state.layout, previousDescriptor) : undefined\n },\n __memo: [route, state.layout, descriptor, nextDescriptor, previousDescriptor, currentGesture, nextGesture, previousGesture]\n };\n\n if (oldScene && scene.__memo.every((it, i) => {\n // @ts-expect-error: we haven't added __memo to the annotation to prevent usage elsewhere\n return oldScene.__memo[i] === it;\n })) {\n return oldScene;\n }\n\n return scene;\n }),\n gestures,\n descriptors: props.descriptors,\n headerHeights: getHeaderHeights(props.routes, props.insets, props.isParentHeaderShown, state.descriptors, state.layout, state.headerHeights)\n };\n }\n\n constructor(_props) {\n super(_props);\n\n _defineProperty(this, \"handleLayout\", e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n const layout = {\n width,\n height\n };\n this.setState((state, props) => {\n if (height === state.layout.height && width === state.layout.width) {\n return null;\n }\n\n return {\n layout,\n headerHeights: getHeaderHeights(props.routes, props.insets, props.isParentHeaderShown, state.descriptors, layout, state.headerHeights)\n };\n });\n });\n\n _defineProperty(this, \"handleHeaderLayout\", ({\n route,\n height\n }) => {\n this.setState(({\n headerHeights\n }) => {\n const previousHeight = headerHeights[route.key];\n\n if (previousHeight === height) {\n return null;\n }\n\n return {\n headerHeights: { ...headerHeights,\n [route.key]: height\n }\n };\n });\n });\n\n _defineProperty(this, \"getFocusedRoute\", () => {\n const {\n state\n } = this.props;\n return state.routes[state.index];\n });\n\n _defineProperty(this, \"getPreviousScene\", ({\n route\n }) => {\n const {\n getPreviousRoute\n } = this.props;\n const {\n scenes\n } = this.state;\n const previousRoute = getPreviousRoute({\n route\n });\n\n if (previousRoute) {\n const previousScene = scenes.find(scene => scene.route.key === previousRoute.key);\n return previousScene;\n }\n\n return undefined;\n });\n\n const {\n height: _height = 0,\n width: _width = 0\n } = Dimensions.get('window');\n this.state = {\n routes: [],\n scenes: [],\n gestures: {},\n layout: {\n height: _height,\n width: _width\n },\n descriptors: this.props.descriptors,\n // Used when card's header is null and mode is float to make transition\n // between screens with headers and those without headers smooth.\n // This is not a great heuristic here. We don't know synchronously\n // on mount what the header height is so we have just used the most\n // common cases here.\n headerHeights: {}\n };\n }\n\n render() {\n const {\n mode,\n insets,\n descriptors,\n state,\n routes,\n closingRouteKeys,\n onOpenRoute,\n onCloseRoute,\n getGesturesEnabled,\n renderHeader,\n renderScene,\n headerMode,\n isParentHeaderShown,\n onTransitionStart,\n onTransitionEnd,\n onPageChangeStart,\n onPageChangeConfirm,\n onPageChangeCancel,\n onGestureStart,\n onGestureEnd,\n onGestureCancel,\n // Enable on new versions of `react-native-screens`\n // On older versions of `react-native-screens`, there's an issue with screens not being responsive to user interaction.\n detachInactiveScreens = Platform.OS === 'web' || shouldUseActivityState\n } = this.props;\n const {\n scenes,\n layout,\n gestures,\n headerHeights\n } = this.state;\n const focusedRoute = state.routes[state.index];\n const focusedDescriptor = descriptors[focusedRoute.key];\n const focusedOptions = focusedDescriptor ? focusedDescriptor.options : {};\n const focusedHeaderHeight = headerHeights[focusedRoute.key];\n let defaultTransitionPreset = mode === 'modal' ? ModalTransition : DefaultTransition;\n\n if (headerMode === 'screen') {\n defaultTransitionPreset = { ...defaultTransitionPreset,\n headerStyleInterpolator: forNoAnimationHeader\n };\n }\n\n const {\n top = insets.top,\n right = insets.right,\n bottom = insets.bottom,\n left = insets.left\n } = focusedOptions.safeAreaInsets || {};\n let activeScreensLimit = 1;\n\n for (let i = scenes.length - 1; i >= 0; i--) {\n const {\n // By default, we don't want to detach the previous screen of the active one for modals\n detachPreviousScreen = mode === 'modal' ? i !== scenes.length - 1 : true\n } = scenes[i].descriptor.options;\n\n if (detachPreviousScreen === false) {\n activeScreensLimit++;\n } else {\n break;\n }\n }\n\n const isFloatHeaderAbsolute = headerMode === 'float' ? this.state.scenes.slice(-2).some(scene => {\n const {\n descriptor\n } = scene;\n const options = descriptor ? descriptor.options : {};\n const {\n headerTransparent,\n headerShown = true\n } = options;\n\n if (headerTransparent || headerShown === false) {\n return true;\n }\n\n return false;\n }) : false;\n const floatingHeader = headerMode === 'float' ? /*#__PURE__*/React.createElement(React.Fragment, {\n key: \"header\"\n }, renderHeader({\n mode: 'float',\n layout,\n insets: {\n top,\n right,\n bottom,\n left\n },\n scenes,\n getPreviousScene: this.getPreviousScene,\n getFocusedRoute: this.getFocusedRoute,\n onContentHeightChange: this.handleHeaderLayout,\n gestureDirection: focusedOptions.gestureDirection !== undefined ? focusedOptions.gestureDirection : defaultTransitionPreset.gestureDirection,\n styleInterpolator: focusedOptions.headerStyleInterpolator !== undefined ? focusedOptions.headerStyleInterpolator : defaultTransitionPreset.headerStyleInterpolator,\n style: [styles.floating, isFloatHeaderAbsolute && [// Without this, the header buttons won't be touchable on Android when headerTransparent: true\n {\n height: focusedHeaderHeight\n }, styles.absolute]]\n })) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, isFloatHeaderAbsolute ? null : floatingHeader, /*#__PURE__*/React.createElement(MaybeScreenContainer, {\n enabled: detachInactiveScreens,\n style: styles.container,\n onLayout: this.handleLayout\n }, routes.map((route, index, self) => {\n const focused = focusedRoute.key === route.key;\n const gesture = gestures[route.key];\n const scene = scenes[index]; // For the screens that shouldn't be active, the value is 0\n // For those that should be active, but are not the top screen, the value is 1\n // For those on top of the stack and with interaction enabled, the value is 2\n // For the old implementation, it stays the same it was\n\n let isScreenActive = 1;\n\n if (shouldUseActivityState || Platform.OS === 'web') {\n if (index < self.length - activeScreensLimit - 1) {\n // screen should be inactive because it is too deep in the stack\n isScreenActive = STATE_INACTIVE;\n } else {\n const sceneForActivity = scenes[self.length - 1];\n const outputValue = index === self.length - 1 ? STATE_ON_TOP // the screen is on top after the transition\n : index >= self.length - activeScreensLimit ? STATE_TRANSITIONING_OR_BELOW_TOP // the screen should stay active after the transition, it is not on top but is in activeLimit\n : STATE_INACTIVE; // the screen should be active only during the transition, it is at the edge of activeLimit\n\n isScreenActive = sceneForActivity ? sceneForActivity.progress.current.interpolate({\n inputRange: [0, 1 - EPSILON, 1],\n outputRange: [1, 1, outputValue],\n extrapolate: 'clamp'\n }) : STATE_TRANSITIONING_OR_BELOW_TOP;\n }\n } else {\n isScreenActive = scene.progress.next ? scene.progress.next.interpolate({\n inputRange: [0, 1 - EPSILON, 1],\n outputRange: [1, 1, 0],\n extrapolate: 'clamp'\n }) : 1;\n }\n\n const {\n safeAreaInsets,\n headerShown = true,\n headerTransparent,\n cardShadowEnabled,\n cardOverlayEnabled,\n cardOverlay,\n cardStyle,\n animationEnabled,\n gestureResponseDistance,\n gestureVelocityImpact,\n gestureDirection = defaultTransitionPreset.gestureDirection,\n transitionSpec = defaultTransitionPreset.transitionSpec,\n cardStyleInterpolator = animationEnabled === false ? forNoAnimationCard : defaultTransitionPreset.cardStyleInterpolator,\n headerStyleInterpolator = defaultTransitionPreset.headerStyleInterpolator\n } = scene.descriptor ? scene.descriptor.options : {};\n let transitionConfig = {\n gestureDirection,\n transitionSpec,\n cardStyleInterpolator,\n headerStyleInterpolator\n }; // When a screen is not the last, it should use next screen's transition config\n // Many transitions also animate the previous screen, so using 2 different transitions doesn't look right\n // For example combining a slide and a modal transition would look wrong otherwise\n // With this approach, combining different transition styles in the same navigator mostly looks right\n // This will still be broken when 2 transitions have different idle state (e.g. modal presentation),\n // but majority of the transitions look alright\n\n if (index !== self.length - 1) {\n const nextScene = scenes[index + 1];\n\n if (nextScene) {\n const {\n animationEnabled,\n gestureDirection = defaultTransitionPreset.gestureDirection,\n transitionSpec = defaultTransitionPreset.transitionSpec,\n cardStyleInterpolator = animationEnabled === false ? forNoAnimationCard : defaultTransitionPreset.cardStyleInterpolator,\n headerStyleInterpolator = defaultTransitionPreset.headerStyleInterpolator\n } = nextScene.descriptor ? nextScene.descriptor.options : {};\n transitionConfig = {\n gestureDirection,\n transitionSpec,\n cardStyleInterpolator,\n headerStyleInterpolator\n };\n }\n }\n\n const {\n top: safeAreaInsetTop = insets.top,\n right: safeAreaInsetRight = insets.right,\n bottom: safeAreaInsetBottom = insets.bottom,\n left: safeAreaInsetLeft = insets.left\n } = safeAreaInsets || {};\n const headerHeight = headerMode !== 'none' && headerShown !== false ? headerHeights[route.key] : 0;\n return /*#__PURE__*/React.createElement(MaybeScreen, {\n key: route.key,\n style: StyleSheet.absoluteFill,\n enabled: detachInactiveScreens,\n active: isScreenActive,\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(CardContainer, _extends({\n index: index,\n active: index === self.length - 1,\n focused: focused,\n closing: closingRouteKeys.includes(route.key),\n layout: layout,\n gesture: gesture,\n scene: scene,\n safeAreaInsetTop: safeAreaInsetTop,\n safeAreaInsetRight: safeAreaInsetRight,\n safeAreaInsetBottom: safeAreaInsetBottom,\n safeAreaInsetLeft: safeAreaInsetLeft,\n cardOverlay: cardOverlay,\n cardOverlayEnabled: cardOverlayEnabled,\n cardShadowEnabled: cardShadowEnabled,\n cardStyle: cardStyle,\n onPageChangeStart: onPageChangeStart,\n onPageChangeConfirm: onPageChangeConfirm,\n onPageChangeCancel: onPageChangeCancel,\n onGestureStart: onGestureStart,\n onGestureCancel: onGestureCancel,\n onGestureEnd: onGestureEnd,\n gestureResponseDistance: gestureResponseDistance,\n headerHeight: headerHeight,\n isParentHeaderShown: isParentHeaderShown,\n onHeaderHeightChange: this.handleHeaderLayout,\n getPreviousScene: this.getPreviousScene,\n getFocusedRoute: this.getFocusedRoute,\n mode: mode,\n headerMode: headerMode,\n headerShown: headerShown,\n hasAbsoluteHeader: isFloatHeaderAbsolute && !headerTransparent,\n renderHeader: renderHeader,\n renderScene: renderScene,\n onOpenRoute: onOpenRoute,\n onCloseRoute: onCloseRoute,\n onTransitionStart: onTransitionStart,\n onTransitionEnd: onTransitionEnd,\n gestureEnabled: index !== 0 && getGesturesEnabled({\n route\n }),\n gestureVelocityImpact: gestureVelocityImpact\n }, transitionConfig)));\n })), isFloatHeaderAbsolute ? floatingHeader : null);\n }\n\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n absolute: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0\n },\n floating: {\n zIndex: 1\n }\n});\n//# sourceMappingURL=CardStack.js.map","var _Screens;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { Animated, View, Platform } from 'react-native';\nlet Screens;\n\ntry {\n Screens = require('react-native-screens');\n} catch (e) {// Ignore\n} // The web implementation in react-native-screens seems buggy.\n// The view doesn't become visible after coming back in some cases.\n// So we use our custom implementation.\n\n\nclass WebScreen extends React.Component {\n render() {\n const {\n active,\n style,\n ...rest\n } = this.props;\n return /*#__PURE__*/React.createElement(View // @ts-expect-error: hidden exists on web, but not in React Native\n , _extends({\n hidden: !active,\n style: [style, {\n display: active ? 'flex' : 'none'\n }]\n }, rest));\n }\n\n}\n\nconst AnimatedWebScreen = Animated.createAnimatedComponent(WebScreen); // @ts-ignore\n\nexport const shouldUseActivityState = (_Screens = Screens) === null || _Screens === void 0 ? void 0 : _Screens.shouldUseActivityState;\nexport const MaybeScreenContainer = ({\n enabled,\n ...rest\n}) => {\n var _Screens2;\n\n if (enabled && Platform.OS !== 'web' && ((_Screens2 = Screens) === null || _Screens2 === void 0 ? void 0 : _Screens2.screensEnabled())) {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(Screens.ScreenContainer, _extends({\n enabled: enabled\n }, rest))\n );\n }\n\n return /*#__PURE__*/React.createElement(View, rest);\n};\nexport const MaybeScreen = ({\n enabled,\n active,\n ...rest\n}) => {\n var _Screens3;\n\n if (enabled && Platform.OS === 'web') {\n return /*#__PURE__*/React.createElement(AnimatedWebScreen, _extends({\n active: active\n }, rest));\n }\n\n if (enabled && ((_Screens3 = Screens) === null || _Screens3 === void 0 ? void 0 : _Screens3.screensEnabled())) {\n if (shouldUseActivityState) {\n return (\n /*#__PURE__*/\n // @ts-expect-error: there was an `active` prop and no `activityState` in older version and stackPresentation was required\n React.createElement(Screens.Screen, _extends({\n enabled: enabled,\n activityState: active\n }, rest))\n );\n } else {\n return (\n /*#__PURE__*/\n // @ts-expect-error: there was an `active` prop and no `activityState` in older version and stackPresentation was required\n React.createElement(Screens.Screen, _extends({\n enabled: enabled,\n active: active\n }, rest))\n );\n }\n }\n\n return /*#__PURE__*/React.createElement(View, rest);\n};\n//# sourceMappingURL=Screens.js.map","import React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = this.context || InnerScreen;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n","import React, { useRef, Suspense, Fragment } from \"react\";\n\ninterface StorageRef {\n promise?: Promise<void>;\n resolve?: (value: void | PromiseLike<void>) => void;\n}\n\nfunction Suspender({\n freeze,\n children,\n}: {\n freeze: boolean;\n children: React.ReactNode;\n}) {\n const promiseCache = useRef<StorageRef>({}).current;\n if (freeze && !promiseCache.promise) {\n promiseCache.promise = new Promise((resolve) => {\n promiseCache.resolve = resolve;\n });\n throw promiseCache.promise;\n } else if (freeze) {\n throw promiseCache.promise;\n } else if (promiseCache.promise) {\n promiseCache.resolve!();\n promiseCache.promise = undefined;\n }\n\n return <Fragment>{children}</Fragment>;\n}\n\ninterface Props {\n freeze: boolean;\n children: React.ReactNode;\n placeholder?: React.ReactNode;\n}\n\nexport function Freeze({ freeze, children, placeholder = null }: Props) {\n return (\n <Suspense fallback={placeholder}>\n <Suspender freeze={freeze}>{children}</Suspender>\n </Suspense>\n );\n}\n","import * as React from 'react';\nimport { Animated } from 'react-native';\n\ntype TransitionProgressContextBody = {\n progress: Animated.Value;\n closing: Animated.Value;\n goingForward: Animated.Value;\n};\n\nexport default React.createContext<TransitionProgressContextBody | undefined>(\n undefined\n);\n","import * as React from 'react';\n\nimport TransitionProgressContext from './TransitionProgressContext';\n\nexport default function useTransitionProgress() {\n const progress = React.useContext(TransitionProgressContext);\n\n if (progress === undefined) {\n throw new Error(\n \"Couldn't find values for transition progress. Are you inside a screen in Native Stack?\"\n );\n }\n\n return progress;\n}\n","import { BackHandler, Platform } from 'react-native';\n\nexport const isSearchBarAvailableForCurrentPlatform = [\n 'ios',\n 'android',\n].includes(Platform.OS);\n\nexport function executeNativeBackPress() {\n // This function invokes the native back press event\n BackHandler.exitApp();\n return true;\n}\n","import * as React from 'react';\nimport { Animated, View, StyleSheet, Platform } from 'react-native';\nimport HeaderBackButton from './HeaderBackButton';\nimport HeaderBackground from './HeaderBackground';\nimport HeaderShownContext from '../../utils/HeaderShownContext';\nimport memoize from '../../utils/memoize';\n\nconst warnIfHeaderStylesDefined = styles => {\n Object.keys(styles).forEach(styleProp => {\n const value = styles[styleProp];\n\n if (styleProp === 'position' && value === 'absolute') {\n console.warn(\"position: 'absolute' is not supported on headerStyle. If you would like to render content under the header, use the 'headerTransparent' navigationOption.\");\n } else if (value !== undefined) {\n console.warn(\"\".concat(styleProp, \" was given a value of \").concat(value, \", this has no effect on headerStyle.\"));\n }\n });\n};\n\nexport const getDefaultHeaderHeight = (layout, statusBarHeight) => {\n const isLandscape = layout.width > layout.height;\n let headerHeight;\n\n if (Platform.OS === 'ios') {\n if (isLandscape && !Platform.isPad) {\n headerHeight = 32;\n } else {\n headerHeight = 44;\n }\n } else if (Platform.OS === 'android') {\n headerHeight = 56;\n } else {\n headerHeight = 64;\n }\n\n return headerHeight + statusBarHeight;\n};\nexport default function HeaderSegment(props) {\n const [leftLabelLayout, setLeftLabelLayout] = React.useState(undefined);\n const [titleLayout, setTitleLayout] = React.useState(undefined);\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n const handleTitleLayout = e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n setTitleLayout(titleLayout => {\n if (titleLayout && height === titleLayout.height && width === titleLayout.width) {\n return titleLayout;\n }\n\n return {\n height,\n width\n };\n });\n };\n\n const handleLeftLabelLayout = e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n\n if (leftLabelLayout && height === leftLabelLayout.height && width === leftLabelLayout.width) {\n return;\n }\n\n setLeftLabelLayout({\n height,\n width\n });\n };\n\n const getInterpolatedStyle = memoize((styleInterpolator, layout, current, next, titleLayout, leftLabelLayout, headerHeight) => styleInterpolator({\n current: {\n progress: current\n },\n next: next && {\n progress: next\n },\n layouts: {\n header: {\n height: headerHeight,\n width: layout.width\n },\n screen: layout,\n title: titleLayout,\n leftLabel: leftLabelLayout\n }\n }));\n const {\n scene,\n layout,\n insets,\n title: currentTitle,\n leftLabel: previousTitle,\n onGoBack,\n headerTitle,\n headerTitleAlign = Platform.select({\n ios: 'center',\n default: 'left'\n }),\n headerLeft: left = onGoBack ? props => /*#__PURE__*/React.createElement(HeaderBackButton, props) : undefined,\n headerTransparent,\n headerTintColor,\n headerBackground,\n headerRight: right,\n headerBackImage: backImage,\n headerBackTitle: leftLabel,\n headerBackTitleVisible,\n headerTruncatedBackTitle: truncatedLabel,\n headerPressColorAndroid: pressColorAndroid,\n headerBackAccessibilityLabel: backAccessibilityLabel,\n headerBackAllowFontScaling: backAllowFontScaling,\n headerTitleAllowFontScaling: titleAllowFontScaling,\n headerTitleStyle: customTitleStyle,\n headerBackTitleStyle: customLeftLabelStyle,\n headerLeftContainerStyle: leftContainerStyle,\n headerRightContainerStyle: rightContainerStyle,\n headerTitleContainerStyle: titleContainerStyle,\n headerStyle: customHeaderStyle,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n styleInterpolator\n } = props;\n const defaultHeight = getDefaultHeaderHeight(layout, headerStatusBarHeight);\n const {\n height = defaultHeight,\n minHeight,\n maxHeight,\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: web support for shadow\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n ...unsafeStyles\n } = StyleSheet.flatten(customHeaderStyle || {});\n\n if (process.env.NODE_ENV !== 'production') {\n warnIfHeaderStylesDefined(unsafeStyles);\n }\n\n const safeStyles = {\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: boxShadow is only for Web\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform\n }; // Setting a property to undefined triggers default style\n // So we need to filter them out\n // Users can use `null` instead\n\n for (const styleProp in safeStyles) {\n // @ts-expect-error: typescript wrongly complains that styleProp cannot be used to index safeStyles\n if (safeStyles[styleProp] === undefined) {\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete safeStyles[styleProp];\n }\n }\n\n const {\n titleStyle,\n leftButtonStyle,\n leftLabelStyle,\n rightButtonStyle,\n backgroundStyle\n } = getInterpolatedStyle(styleInterpolator, layout, scene.progress.current, scene.progress.next, titleLayout, previousTitle ? leftLabelLayout : undefined, typeof height === 'number' ? height : defaultHeight);\n const leftButton = left ? left({\n backImage,\n pressColorAndroid,\n accessibilityLabel: backAccessibilityLabel,\n allowFontScaling: backAllowFontScaling,\n onPress: onGoBack,\n labelVisible: headerBackTitleVisible,\n label: leftLabel !== undefined ? leftLabel : previousTitle,\n truncatedLabel,\n labelStyle: [leftLabelStyle, customLeftLabelStyle],\n onLabelLayout: handleLeftLabelLayout,\n screenLayout: layout,\n titleLayout,\n tintColor: headerTintColor,\n canGoBack: Boolean(onGoBack)\n }) : null;\n const rightButton = right ? right({\n tintColor: headerTintColor\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n style: [StyleSheet.absoluteFill, {\n zIndex: 0\n }, backgroundStyle]\n }, headerBackground ? headerBackground({\n style: safeStyles\n }) : headerTransparent ? null : /*#__PURE__*/React.createElement(HeaderBackground, {\n style: safeStyles\n })), /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n style: [{\n height,\n minHeight,\n maxHeight,\n opacity,\n transform\n }]\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: {\n height: headerStatusBarHeight\n }\n }), /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.content\n }, leftButton ? /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n style: [styles.left, {\n left: insets.left\n }, leftButtonStyle, leftContainerStyle]\n }, leftButton) : null, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n style: [headerTitleAlign === 'left' ? {\n position: 'absolute',\n left: (leftButton ? 72 : 16) + insets.left,\n right: (rightButton ? 72 : 16) + insets.right\n } : {\n marginHorizontal: (leftButton ? 32 : 16) + (leftButton && headerBackTitleVisible !== false ? 40 : 0) + Math.max(insets.left, insets.right)\n }, titleStyle, titleContainerStyle]\n }, headerTitle({\n children: currentTitle,\n onLayout: handleTitleLayout,\n allowFontScaling: titleAllowFontScaling,\n tintColor: headerTintColor,\n style: customTitleStyle\n })), rightButton ? /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n style: [styles.right, {\n right: insets.right\n }, rightButtonStyle, rightContainerStyle]\n }, rightButton) : null)));\n}\nconst styles = StyleSheet.create({\n content: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center'\n },\n left: {\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n justifyContent: 'center',\n alignItems: 'flex-start'\n },\n right: {\n position: 'absolute',\n right: 0,\n top: 0,\n bottom: 0,\n justifyContent: 'center',\n alignItems: 'flex-end'\n }\n});\n//# sourceMappingURL=HeaderSegment.js.map","import * as React from 'react';\nimport { Animated, I18nManager, Image, View, Platform, StyleSheet } from 'react-native';\nimport MaskedView from '../MaskedView';\nimport TouchableItem from '../TouchableItem';\nimport useTheme from '../../../utils/useTheme';\nexport default function HeaderBackButton({\n disabled,\n allowFontScaling,\n backImage,\n label,\n labelStyle,\n labelVisible = Platform.OS === 'ios',\n onLabelLayout,\n onPress,\n pressColorAndroid: customPressColorAndroid,\n screenLayout,\n tintColor: customTintColor,\n titleLayout,\n truncatedLabel = 'Back',\n accessibilityLabel = label && label !== 'Back' ? \"\".concat(label, \", back\") : 'Go back',\n style\n}) {\n const {\n dark,\n colors\n } = useTheme();\n const [initialLabelWidth, setInitialLabelWidth] = React.useState(undefined);\n const tintColor = customTintColor !== undefined ? customTintColor : Platform.select({\n ios: colors.primary,\n default: colors.text\n });\n const pressColorAndroid = customPressColorAndroid !== undefined ? customPressColorAndroid : dark ? 'rgba(255, 255, 255, .32)' : 'rgba(0, 0, 0, .32)';\n\n const handleLabelLayout = e => {\n onLabelLayout === null || onLabelLayout === void 0 ? void 0 : onLabelLayout(e);\n setInitialLabelWidth(e.nativeEvent.layout.x + e.nativeEvent.layout.width);\n };\n\n const shouldTruncateLabel = () => {\n return !label || initialLabelWidth && titleLayout && screenLayout && (screenLayout.width - titleLayout.width) / 2 < initialLabelWidth + 26;\n };\n\n const renderBackImage = () => {\n if (backImage) {\n return backImage({\n tintColor\n });\n } else {\n return /*#__PURE__*/React.createElement(Image, {\n style: [styles.icon, Boolean(labelVisible) && styles.iconWithLabel, Boolean(tintColor) && {\n tintColor\n }],\n source: require('../assets/back-icon.png'),\n fadeDuration: 0\n });\n }\n };\n\n const renderLabel = () => {\n const leftLabelText = shouldTruncateLabel() ? truncatedLabel : label;\n\n if (!labelVisible || leftLabelText === undefined) {\n return null;\n }\n\n const labelElement = /*#__PURE__*/React.createElement(View, {\n style: screenLayout ? // We make the button extend till the middle of the screen\n // Otherwise it appears to cut off when translating\n [styles.labelWrapper, {\n minWidth: screenLayout.width / 2 - 27\n }] : null\n }, /*#__PURE__*/React.createElement(Animated.Text, {\n accessible: false,\n onLayout: // This measurement is used to determine if we should truncate the label when it doesn't fit\n // Only measure it when label is not truncated because we want the measurement of full label\n leftLabelText === label ? handleLabelLayout : undefined,\n style: [styles.label, tintColor ? {\n color: tintColor\n } : null, labelStyle],\n numberOfLines: 1,\n allowFontScaling: !!allowFontScaling\n }, leftLabelText));\n\n if (backImage || Platform.OS !== 'ios') {\n // When a custom backimage is specified, we can't mask the label\n // Otherwise there might be weird effect due to our mask not being the same as the image\n return labelElement;\n }\n\n return /*#__PURE__*/React.createElement(MaskedView, {\n maskElement: /*#__PURE__*/React.createElement(View, {\n style: styles.iconMaskContainer\n }, /*#__PURE__*/React.createElement(Image, {\n source: require('../assets/back-icon-mask.png'),\n style: styles.iconMask\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.iconMaskFillerRect\n }))\n }, labelElement);\n };\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return /*#__PURE__*/React.createElement(TouchableItem, {\n disabled: disabled,\n accessible: true,\n accessibilityRole: \"button\",\n accessibilityComponentType: \"button\",\n accessibilityLabel: accessibilityLabel,\n accessibilityTraits: \"button\",\n testID: \"header-back\",\n delayPressIn: 0,\n onPress: disabled ? undefined : handlePress,\n pressColor: pressColorAndroid,\n style: [styles.container, disabled && styles.disabled, style],\n hitSlop: Platform.select({\n ios: undefined,\n default: {\n top: 16,\n right: 16,\n bottom: 16,\n left: 16\n }\n }),\n borderless: true\n }, /*#__PURE__*/React.createElement(React.Fragment, null, renderBackImage(), renderLabel()));\n}\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n ...Platform.select({\n ios: null,\n default: {\n marginVertical: 3,\n marginHorizontal: 11\n }\n })\n },\n disabled: {\n opacity: 0.5\n },\n label: {\n fontSize: 17,\n // Title and back label are a bit different width due to title being bold\n // Adjusting the letterSpacing makes them coincide better\n letterSpacing: 0.35\n },\n labelWrapper: {\n // These styles will make sure that the label doesn't fill the available space\n // Otherwise it messes with the measurement of the label\n flexDirection: 'row',\n alignItems: 'flex-start'\n },\n icon: Platform.select({\n ios: {\n height: 21,\n width: 13,\n marginLeft: 8,\n marginRight: 22,\n marginVertical: 12,\n resizeMode: 'contain',\n transform: [{\n scaleX: I18nManager.isRTL ? -1 : 1\n }]\n },\n default: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n transform: [{\n scaleX: I18nManager.isRTL ? -1 : 1\n }]\n }\n }),\n iconWithLabel: Platform.OS === 'ios' ? {\n marginRight: 6\n } : {},\n iconMaskContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center'\n },\n iconMaskFillerRect: {\n flex: 1,\n backgroundColor: '#000'\n },\n iconMask: {\n height: 21,\n width: 13,\n marginLeft: -14.5,\n marginVertical: 12,\n alignSelf: 'center',\n resizeMode: 'contain',\n transform: [{\n scaleX: I18nManager.isRTL ? -1 : 1\n }]\n }\n});\n//# sourceMappingURL=HeaderBackButton.js.map","/**\n * The native MaskedView that we explicitly re-export for supported platforms: Android, iOS.\n */\nimport * as React from 'react';\nimport { UIManager } from 'react-native';\nlet RNCMaskedView;\n\ntry {\n // Add try/catch to support usage even if it's not installed, since it's optional.\n // Newer versions of Metro will handle it properly.\n RNCMaskedView = require('@react-native-community/masked-view').default;\n} catch (e) {// Ignore\n}\n\nconst isMaskedViewAvailable = UIManager.getViewManagerConfig('RNCMaskedView') != null;\nexport default function MaskedView({\n children,\n ...rest\n}) {\n if (isMaskedViewAvailable && RNCMaskedView) {\n return /*#__PURE__*/React.createElement(RNCMaskedView, rest, children);\n }\n\n return children;\n}\n//# sourceMappingURL=MaskedViewNative.js.map","import * as React from 'react';\nimport { useTheme as useThemeBase, ThemeColors } from 'react-navigation';\nexport default function useTheme() {\n const theme = useThemeBase();\n return React.useMemo(() => {\n const colors = ThemeColors[theme];\n const dark = theme === 'dark';\n return {\n dark,\n colors: {\n primary: dark ? 'rgb(10, 132, 255)' : 'rgb(0, 122, 255)',\n background: dark ? 'rgb(1, 1, 1)' : 'rgb(242, 242, 242)',\n card: colors.header,\n text: colors.label,\n border: colors.headerBorder\n }\n };\n }, [theme]);\n}\n//# sourceMappingURL=useTheme.js.map","","","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { Animated, StyleSheet, Platform } from 'react-native';\nimport useTheme from '../../../utils/useTheme';\nexport default function HeaderBackground({\n style,\n ...rest\n}) {\n const {\n colors\n } = useTheme();\n return /*#__PURE__*/React.createElement(Animated.View, _extends({\n style: [styles.container, {\n backgroundColor: colors.card,\n borderBottomColor: colors.border,\n shadowColor: colors.border\n }, style]\n }, rest));\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n ...Platform.select({\n android: {\n elevation: 4\n },\n ios: {\n shadowOpacity: 0.85,\n shadowRadius: 0,\n shadowOffset: {\n width: 0,\n height: StyleSheet.hairlineWidth\n }\n },\n default: {\n borderBottomWidth: StyleSheet.hairlineWidth\n }\n })\n }\n});\n//# sourceMappingURL=HeaderBackground.js.map","import * as React from 'react';\nconst HeaderShownContext = /*#__PURE__*/React.createContext(false);\nexport default HeaderShownContext;\n//# sourceMappingURL=HeaderShownContext.js.map","export default function memoize(callback) {\n let previous;\n let result;\n return (...dependencies) => {\n let hasChanged = false;\n\n if (previous) {\n if (previous.length !== dependencies.length) {\n hasChanged = true;\n } else {\n for (let i = 0; i < previous.length; i++) {\n if (previous[i] !== dependencies[i]) {\n hasChanged = true;\n break;\n }\n }\n }\n } else {\n hasChanged = true;\n }\n\n previous = dependencies;\n\n if (hasChanged || result === undefined) {\n result = callback(...dependencies);\n }\n\n return result;\n };\n}\n//# sourceMappingURL=memoize.js.map","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport Card from './Card';\nimport HeaderHeightContext from '../../utils/HeaderHeightContext';\nimport HeaderShownContext from '../../utils/HeaderShownContext';\nimport PreviousSceneContext from '../../utils/PreviousSceneContext';\nimport useTheme from '../../../utils/useTheme';\nconst EPSILON = 0.1;\n\nfunction CardContainer({\n active,\n cardOverlay,\n cardOverlayEnabled,\n cardShadowEnabled,\n cardStyle,\n cardStyleInterpolator,\n closing,\n gesture,\n focused,\n gestureDirection,\n gestureEnabled,\n gestureResponseDistance,\n gestureVelocityImpact,\n getPreviousScene,\n getFocusedRoute,\n mode,\n headerMode,\n headerShown,\n headerStyleInterpolator,\n hasAbsoluteHeader,\n headerHeight,\n onHeaderHeightChange,\n isParentHeaderShown,\n index,\n layout,\n onCloseRoute,\n onOpenRoute,\n onPageChangeCancel,\n onPageChangeConfirm,\n onPageChangeStart,\n onGestureCancel,\n onGestureEnd,\n onGestureStart,\n onTransitionEnd,\n onTransitionStart,\n renderHeader,\n renderScene,\n safeAreaInsetBottom,\n safeAreaInsetLeft,\n safeAreaInsetRight,\n safeAreaInsetTop,\n scene,\n transitionSpec\n}) {\n const handleOpen = () => {\n const {\n route\n } = scene;\n onTransitionEnd === null || onTransitionEnd === void 0 ? void 0 : onTransitionEnd({\n route\n }, false);\n onOpenRoute({\n route\n });\n };\n\n const handleClose = () => {\n const {\n route\n } = scene;\n onTransitionEnd === null || onTransitionEnd === void 0 ? void 0 : onTransitionEnd({\n route\n }, true);\n onCloseRoute({\n route\n });\n };\n\n const handleGestureBegin = () => {\n const {\n route\n } = scene;\n onPageChangeStart === null || onPageChangeStart === void 0 ? void 0 : onPageChangeStart();\n onGestureStart === null || onGestureStart === void 0 ? void 0 : onGestureStart({\n route\n });\n };\n\n const handleGestureCanceled = () => {\n const {\n route\n } = scene;\n onPageChangeCancel === null || onPageChangeCancel === void 0 ? void 0 : onPageChangeCancel();\n onGestureCancel === null || onGestureCancel === void 0 ? void 0 : onGestureCancel({\n route\n });\n };\n\n const handleGestureEnd = () => {\n const {\n route\n } = scene;\n onGestureEnd === null || onGestureEnd === void 0 ? void 0 : onGestureEnd({\n route\n });\n };\n\n const handleTransition = ({\n closing,\n gesture\n }) => {\n const {\n route\n } = scene;\n\n if (!gesture) {\n onPageChangeConfirm === null || onPageChangeConfirm === void 0 ? void 0 : onPageChangeConfirm(true);\n } else if (active && closing) {\n onPageChangeConfirm === null || onPageChangeConfirm === void 0 ? void 0 : onPageChangeConfirm(false);\n } else {\n onPageChangeCancel === null || onPageChangeCancel === void 0 ? void 0 : onPageChangeCancel();\n }\n\n onTransitionStart === null || onTransitionStart === void 0 ? void 0 : onTransitionStart({\n route\n }, closing);\n };\n\n const insets = {\n top: safeAreaInsetTop,\n right: safeAreaInsetRight,\n bottom: safeAreaInsetBottom,\n left: safeAreaInsetLeft\n };\n const {\n colors\n } = useTheme();\n const [pointerEvents, setPointerEvents] = React.useState('box-none');\n React.useEffect(() => {\n var _scene$progress$next, _scene$progress$next$;\n\n // @ts-expect-error: AnimatedInterpolation optionally has addListener, but the type defs don't think so\n const listener = (_scene$progress$next = scene.progress.next) === null || _scene$progress$next === void 0 ? void 0 : (_scene$progress$next$ = _scene$progress$next.addListener) === null || _scene$progress$next$ === void 0 ? void 0 : _scene$progress$next$.call(_scene$progress$next, ({\n value\n }) => {\n setPointerEvents(value <= EPSILON ? 'box-none' : 'none');\n });\n return () => {\n if (listener) {\n var _scene$progress$next2, _scene$progress$next3;\n\n // @ts-expect-error: AnimatedInterpolation optionally has removedListener, but the type defs don't think so\n (_scene$progress$next2 = scene.progress.next) === null || _scene$progress$next2 === void 0 ? void 0 : (_scene$progress$next3 = _scene$progress$next2.removeListener) === null || _scene$progress$next3 === void 0 ? void 0 : _scene$progress$next3.call(_scene$progress$next2, listener);\n }\n };\n }, [pointerEvents, scene.progress.next]);\n const isCurrentHeaderShown = headerMode !== 'none' && headerShown !== false;\n const previousScene = getPreviousScene({\n route: scene.route\n });\n return /*#__PURE__*/React.createElement(Card, {\n index: index,\n gestureDirection: gestureDirection,\n layout: layout,\n insets: insets,\n gesture: gesture,\n current: scene.progress.current,\n next: scene.progress.next,\n closing: closing,\n onOpen: handleOpen,\n onClose: handleClose,\n overlay: cardOverlay,\n overlayEnabled: cardOverlayEnabled,\n shadowEnabled: cardShadowEnabled,\n onTransition: handleTransition,\n onGestureBegin: handleGestureBegin,\n onGestureCanceled: handleGestureCanceled,\n onGestureEnd: handleGestureEnd,\n gestureEnabled: gestureEnabled,\n gestureResponseDistance: gestureResponseDistance,\n gestureVelocityImpact: gestureVelocityImpact,\n transitionSpec: transitionSpec,\n styleInterpolator: cardStyleInterpolator,\n accessibilityElementsHidden: !focused,\n importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',\n pointerEvents: active ? 'box-none' : pointerEvents,\n pageOverflowEnabled: headerMode === 'screen' && mode === 'card',\n containerStyle: hasAbsoluteHeader ? {\n marginTop: headerHeight\n } : null,\n contentStyle: [{\n backgroundColor: colors.background\n }, cardStyle],\n style: [{\n // This is necessary to avoid unfocused larger pages increasing scroll area\n // The issue can be seen on the web when a smaller screen is pushed over a larger one\n overflow: active ? undefined : 'hidden'\n }, StyleSheet.absoluteFill]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.scene\n }, /*#__PURE__*/React.createElement(PreviousSceneContext.Provider, {\n value: previousScene\n }, /*#__PURE__*/React.createElement(HeaderShownContext.Provider, {\n value: isParentHeaderShown || isCurrentHeaderShown\n }, /*#__PURE__*/React.createElement(HeaderHeightContext.Provider, {\n value: headerHeight\n }, renderScene({\n route: scene.route\n }))))), headerMode === 'screen' ? renderHeader({\n mode: 'screen',\n layout,\n insets,\n scenes: [previousScene, scene],\n getPreviousScene,\n getFocusedRoute,\n gestureDirection,\n styleInterpolator: headerStyleInterpolator,\n onContentHeightChange: onHeaderHeightChange\n }) : null));\n}\n\nexport default /*#__PURE__*/React.memo(CardContainer);\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse'\n },\n scene: {\n flex: 1\n }\n});\n//# sourceMappingURL=CardContainer.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { Animated, View, StyleSheet, Platform, InteractionManager } from 'react-native';\nimport Color from 'color';\nimport CardSheet from './CardSheet';\nimport { PanGestureHandler, GestureState } from '../GestureHandler';\nimport CardAnimationContext from '../../utils/CardAnimationContext';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nimport getInvertedMultiplier from '../../utils/getInvertedMultiplier';\nimport memoize from '../../utils/memoize';\nconst GESTURE_VELOCITY_IMPACT = 0.3;\nconst TRUE = 1;\nconst FALSE = 0;\n/**\n * The distance of touch start from the edge of the screen where the gesture will be recognized\n */\n\nconst GESTURE_RESPONSE_DISTANCE_HORIZONTAL = 50;\nconst GESTURE_RESPONSE_DISTANCE_VERTICAL = 135;\nconst useNativeDriver = Platform.OS !== 'web';\n\nconst hasOpacityStyle = style => {\n if (style) {\n const flattenedStyle = StyleSheet.flatten(style);\n return flattenedStyle.opacity != null;\n }\n\n return false;\n};\n\nexport default class Card extends React.Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"isCurrentlyMounted\", false);\n\n _defineProperty(this, \"isClosing\", new Animated.Value(FALSE));\n\n _defineProperty(this, \"inverted\", new Animated.Value(getInvertedMultiplier(this.props.gestureDirection)));\n\n _defineProperty(this, \"layout\", {\n width: new Animated.Value(this.props.layout.width),\n height: new Animated.Value(this.props.layout.height)\n });\n\n _defineProperty(this, \"isSwiping\", new Animated.Value(FALSE));\n\n _defineProperty(this, \"interactionHandle\", void 0);\n\n _defineProperty(this, \"pendingGestureCallback\", void 0);\n\n _defineProperty(this, \"lastToValue\", void 0);\n\n _defineProperty(this, \"animate\", ({\n closing,\n velocity\n }) => {\n const {\n gesture,\n transitionSpec,\n onOpen,\n onClose,\n onTransition\n } = this.props;\n const toValue = this.getAnimateToValue({ ...this.props,\n closing\n });\n this.lastToValue = toValue;\n const spec = closing ? transitionSpec.close : transitionSpec.open;\n const animation = spec.animation === 'spring' ? Animated.spring : Animated.timing;\n this.setPointerEventsEnabled(!closing);\n this.handleStartInteraction();\n clearTimeout(this.pendingGestureCallback);\n onTransition === null || onTransition === void 0 ? void 0 : onTransition({\n closing,\n gesture: velocity !== undefined\n });\n animation(gesture, { ...spec.config,\n velocity,\n toValue,\n useNativeDriver,\n isInteraction: false\n }).start(({\n finished\n }) => {\n this.handleEndInteraction();\n clearTimeout(this.pendingGestureCallback);\n\n if (finished) {\n if (closing) {\n onClose();\n } else {\n onOpen();\n }\n\n if (this.isCurrentlyMounted) {\n // Make sure to re-open screen if it wasn't removed\n this.forceUpdate();\n }\n }\n });\n });\n\n _defineProperty(this, \"getAnimateToValue\", ({\n closing,\n layout,\n gestureDirection\n }) => {\n if (!closing) {\n return 0;\n }\n\n return getDistanceForDirection(layout, gestureDirection);\n });\n\n _defineProperty(this, \"setPointerEventsEnabled\", enabled => {\n var _this$contentRef$curr;\n\n const pointerEvents = enabled ? 'box-none' : 'none';\n (_this$contentRef$curr = this.contentRef.current) === null || _this$contentRef$curr === void 0 ? void 0 : _this$contentRef$curr.setNativeProps({\n pointerEvents\n });\n });\n\n _defineProperty(this, \"handleStartInteraction\", () => {\n if (this.interactionHandle === undefined) {\n this.interactionHandle = InteractionManager.createInteractionHandle();\n }\n });\n\n _defineProperty(this, \"handleEndInteraction\", () => {\n if (this.interactionHandle !== undefined) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = undefined;\n }\n });\n\n _defineProperty(this, \"handleGestureStateChange\", ({\n nativeEvent\n }) => {\n const {\n layout,\n onClose,\n onGestureBegin,\n onGestureCanceled,\n onGestureEnd,\n gestureDirection,\n gestureVelocityImpact\n } = this.props;\n\n switch (nativeEvent.state) {\n case GestureState.BEGAN:\n this.isSwiping.setValue(TRUE);\n this.handleStartInteraction();\n onGestureBegin === null || onGestureBegin === void 0 ? void 0 : onGestureBegin();\n break;\n\n case GestureState.CANCELLED:\n {\n this.isSwiping.setValue(FALSE);\n this.handleEndInteraction();\n const velocity = gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? nativeEvent.velocityY : nativeEvent.velocityX;\n this.animate({\n closing: this.props.closing,\n velocity\n });\n onGestureCanceled === null || onGestureCanceled === void 0 ? void 0 : onGestureCanceled();\n break;\n }\n\n case GestureState.END:\n {\n this.isSwiping.setValue(FALSE);\n let distance;\n let translation;\n let velocity;\n\n if (gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted') {\n distance = layout.height;\n translation = nativeEvent.translationY;\n velocity = nativeEvent.velocityY;\n } else {\n distance = layout.width;\n translation = nativeEvent.translationX;\n velocity = nativeEvent.velocityX;\n }\n\n const closing = (translation + velocity * gestureVelocityImpact) * getInvertedMultiplier(gestureDirection) > distance / 2 ? velocity !== 0 || translation !== 0 : this.props.closing;\n this.animate({\n closing,\n velocity\n });\n\n if (closing) {\n // We call onClose with a delay to make sure that the animation has already started\n // This will make sure that the state update caused by this doesn't affect start of animation\n this.pendingGestureCallback = setTimeout(() => {\n onClose(); // Trigger an update after we dispatch the action to remove the screen\n // This will make sure that we check if the screen didn't get removed so we can cancel the animation\n\n this.forceUpdate();\n }, 32);\n }\n\n onGestureEnd === null || onGestureEnd === void 0 ? void 0 : onGestureEnd();\n break;\n }\n }\n });\n\n _defineProperty(this, \"getInterpolatedStyle\", memoize((styleInterpolator, index, current, next, layout, insetTop, insetRight, insetBottom, insetLeft) => styleInterpolator({\n index,\n current: {\n progress: current\n },\n next: next && {\n progress: next\n },\n closing: this.isClosing,\n swiping: this.isSwiping,\n inverted: this.inverted,\n layouts: {\n screen: layout\n },\n insets: {\n top: insetTop,\n right: insetRight,\n bottom: insetBottom,\n left: insetLeft\n }\n })));\n\n _defineProperty(this, \"getCardAnimationContext\", memoize((index, current, next, layout, insetTop, insetRight, insetBottom, insetLeft) => ({\n index,\n current: {\n progress: current\n },\n next: next && {\n progress: next\n },\n closing: this.isClosing,\n swiping: this.isSwiping,\n inverted: this.inverted,\n layouts: {\n screen: layout\n },\n insets: {\n top: insetTop,\n right: insetRight,\n bottom: insetBottom,\n left: insetLeft\n }\n })));\n\n _defineProperty(this, \"contentRef\", /*#__PURE__*/React.createRef());\n }\n\n componentDidMount() {\n this.animate({\n closing: this.props.closing\n });\n this.isCurrentlyMounted = true;\n }\n\n componentDidUpdate(prevProps) {\n const {\n layout,\n gestureDirection,\n closing\n } = this.props;\n const {\n width,\n height\n } = layout;\n\n if (width !== prevProps.layout.width) {\n this.layout.width.setValue(width);\n }\n\n if (height !== prevProps.layout.height) {\n this.layout.height.setValue(height);\n }\n\n if (gestureDirection !== prevProps.gestureDirection) {\n this.inverted.setValue(getInvertedMultiplier(gestureDirection));\n }\n\n const toValue = this.getAnimateToValue(this.props);\n\n if (this.getAnimateToValue(prevProps) !== toValue || this.lastToValue !== toValue) {\n // We need to trigger the animation when route was closed\n // Thr route might have been closed by a `POP` action or by a gesture\n // When route was closed due to a gesture, the animation would've happened already\n // It's still important to trigger the animation so that `onClose` is called\n // If `onClose` is not called, cleanup step won't be performed for gestures\n this.animate({\n closing\n });\n }\n }\n\n componentWillUnmount() {\n this.isCurrentlyMounted = false;\n this.handleEndInteraction();\n }\n\n gestureActivationCriteria() {\n const {\n layout,\n gestureDirection,\n gestureResponseDistance\n } = this.props;\n const distance = gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? (gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.vertical) !== undefined ? gestureResponseDistance.vertical : GESTURE_RESPONSE_DISTANCE_VERTICAL : (gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.horizontal) !== undefined ? gestureResponseDistance.horizontal : GESTURE_RESPONSE_DISTANCE_HORIZONTAL;\n\n if (gestureDirection === 'vertical') {\n return {\n maxDeltaX: 15,\n minOffsetY: 5,\n hitSlop: {\n bottom: -layout.height + distance\n }\n };\n } else if (gestureDirection === 'vertical-inverted') {\n return {\n maxDeltaX: 15,\n minOffsetY: -5,\n hitSlop: {\n top: -layout.height + distance\n }\n };\n } else {\n const hitSlop = -layout.width + distance;\n const invertedMultiplier = getInvertedMultiplier(gestureDirection);\n\n if (invertedMultiplier === 1) {\n return {\n minOffsetX: 5,\n maxDeltaY: 20,\n hitSlop: {\n right: hitSlop\n }\n };\n } else {\n return {\n minOffsetX: -5,\n maxDeltaY: 20,\n hitSlop: {\n left: hitSlop\n }\n };\n }\n }\n }\n\n render() {\n const {\n styleInterpolator,\n index,\n current,\n gesture,\n next,\n layout,\n insets,\n overlay,\n overlayEnabled,\n shadowEnabled,\n gestureEnabled,\n gestureDirection,\n pageOverflowEnabled,\n children,\n containerStyle: customContainerStyle,\n contentStyle,\n ...rest\n } = this.props;\n const interpolatedStyle = this.getInterpolatedStyle(styleInterpolator, index, current, next, layout, insets.top, insets.right, insets.bottom, insets.left);\n const animationContext = this.getCardAnimationContext(index, current, next, layout, insets.top, insets.right, insets.bottom, insets.left);\n const {\n containerStyle,\n cardStyle,\n overlayStyle,\n shadowStyle\n } = interpolatedStyle;\n const handleGestureEvent = gestureEnabled ? Animated.event([{\n nativeEvent: gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? {\n translationY: gesture\n } : {\n translationX: gesture\n }\n }], {\n useNativeDriver\n }) : undefined;\n const {\n backgroundColor\n } = StyleSheet.flatten(contentStyle || {});\n const isTransparent = typeof backgroundColor === 'string' ? Color(backgroundColor).alpha() === 0 : false;\n return /*#__PURE__*/React.createElement(CardAnimationContext.Provider, {\n value: animationContext\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: {\n // This is a dummy style that doesn't actually change anything visually.\n // Animated needs the animated value to be used somewhere, otherwise things don't update properly.\n // If we disable animations and hide header, it could end up making the value unused.\n // So we have this dummy style that will always be used regardless of what else changed.\n opacity: current\n } // Make sure that this view isn't removed. If this view is removed, our style with animated value won't apply\n ,\n collapsable: false\n }), /*#__PURE__*/React.createElement(View, _extends({\n pointerEvents: \"box-none\"\n }, rest), overlayEnabled ? /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: StyleSheet.absoluteFill\n }, overlay({\n style: overlayStyle\n })) : null, /*#__PURE__*/React.createElement(Animated.View, {\n needsOffscreenAlphaCompositing: hasOpacityStyle(containerStyle),\n style: [styles.container, containerStyle, customContainerStyle],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(PanGestureHandler, _extends({\n enabled: layout.width !== 0 && gestureEnabled,\n onGestureEvent: handleGestureEvent,\n onHandlerStateChange: this.handleGestureStateChange\n }, this.gestureActivationCriteria()), /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.container, cardStyle]\n }, shadowEnabled && shadowStyle && !isTransparent ? /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.shadow, gestureDirection === 'horizontal' ? [styles.shadowHorizontal, styles.shadowLeft] : gestureDirection === 'horizontal-inverted' ? [styles.shadowHorizontal, styles.shadowRight] : gestureDirection === 'vertical' ? [styles.shadowVertical, styles.shadowTop] : [styles.shadowVertical, styles.shadowBottom], {\n backgroundColor\n }, shadowStyle],\n pointerEvents: \"none\"\n }) : null, /*#__PURE__*/React.createElement(CardSheet, {\n ref: this.contentRef,\n enabled: pageOverflowEnabled,\n layout: layout,\n style: contentStyle\n }, children))))));\n }\n\n}\n\n_defineProperty(Card, \"defaultProps\", {\n overlayEnabled: Platform.OS !== 'ios',\n shadowEnabled: true,\n gestureEnabled: true,\n gestureVelocityImpact: GESTURE_VELOCITY_IMPACT,\n overlay: ({\n style\n }) => style ? /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"none\",\n style: [styles.overlay, style]\n }) : null\n});\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n overlay: {\n flex: 1,\n backgroundColor: '#000'\n },\n shadow: {\n position: 'absolute',\n shadowRadius: 5,\n shadowColor: '#000',\n shadowOpacity: 0.3\n },\n shadowHorizontal: {\n top: 0,\n bottom: 0,\n width: 3,\n shadowOffset: {\n width: -1,\n height: 1\n }\n },\n shadowLeft: {\n left: 0\n },\n shadowRight: {\n right: 0\n },\n shadowVertical: {\n left: 0,\n right: 0,\n height: 3,\n shadowOffset: {\n width: 1,\n height: -1\n }\n },\n shadowTop: {\n top: 0\n },\n shadowBottom: {\n bottom: 0\n }\n});\n//# sourceMappingURL=Card.js.map","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\n// This component will render a page which overflows the screen\n// if the container fills the body by comparing the size\n// This lets the document.body handle scrolling of the content\n// It's necessary for mobile browsers to be able to hide address bar on scroll\nexport default /*#__PURE__*/React.forwardRef(function CardSheet({\n enabled,\n layout,\n style,\n ...rest\n}, ref) {\n const [fill, setFill] = React.useState(false);\n React.useEffect(() => {\n if (typeof document === 'undefined' || !document.body) {\n // Only run when DOM is available\n return;\n }\n\n const width = document.body.clientWidth;\n const height = document.body.clientHeight;\n setFill(width === layout.width && height === layout.height);\n }, [layout.height, layout.width]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: [enabled && fill ? styles.page : styles.card, style]\n }));\n});\nconst styles = StyleSheet.create({\n page: {\n minHeight: '100%'\n },\n card: {\n flex: 1,\n overflow: 'hidden'\n }\n});\n//# sourceMappingURL=CardSheet.js.map","import * as React from 'react';\nexport default /*#__PURE__*/React.createContext(undefined);\n//# sourceMappingURL=CardAnimationContext.js.map","import getInvertedMultiplier from './getInvertedMultiplier';\nexport default function getDistanceForDirection(layout, gestureDirection) {\n const multiplier = getInvertedMultiplier(gestureDirection);\n\n switch (gestureDirection) {\n case 'vertical':\n case 'vertical-inverted':\n return layout.height * multiplier;\n\n case 'horizontal':\n case 'horizontal-inverted':\n return layout.width * multiplier;\n }\n}\n//# sourceMappingURL=getDistanceForDirection.js.map","import { I18nManager } from 'react-native';\nexport default function getInvertedMultiplier(gestureDirection) {\n switch (gestureDirection) {\n case 'vertical':\n return 1;\n\n case 'vertical-inverted':\n return -1;\n\n case 'horizontal':\n return I18nManager.isRTL ? -1 : 1;\n\n case 'horizontal-inverted':\n return I18nManager.isRTL ? 1 : -1;\n }\n}\n//# sourceMappingURL=getInvertedMultiplier.js.map","import * as React from 'react';\nexport default /*#__PURE__*/React.createContext(undefined);\n//# sourceMappingURL=HeaderHeightContext.js.map","import * as React from 'react';\nconst PreviousSceneContext = /*#__PURE__*/React.createContext(undefined);\nexport default PreviousSceneContext;\n//# sourceMappingURL=PreviousSceneContext.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { TextInput, Keyboard } from 'react-native';\nexport default class KeyboardManager extends React.Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"previouslyFocusedTextInput\", undefined);\n\n _defineProperty(this, \"startTimestamp\", 0);\n\n _defineProperty(this, \"keyboardTimeout\", void 0);\n\n _defineProperty(this, \"clearKeyboardTimeout\", () => {\n if (this.keyboardTimeout !== undefined) {\n clearTimeout(this.keyboardTimeout);\n this.keyboardTimeout = undefined;\n }\n });\n\n _defineProperty(this, \"handlePageChangeStart\", () => {\n if (!this.props.enabled) {\n return;\n }\n\n this.clearKeyboardTimeout(); // @ts-expect-error: blurTextInput accepts both number and ref, but types say only ref\n\n const input = TextInput.State.currentlyFocusedInput ? TextInput.State.currentlyFocusedInput() : TextInput.State.currentlyFocusedField(); // When a page change begins, blur the currently focused input\n\n TextInput.State.blurTextInput(input); // Store the id of this input so we can refocus it if change was cancelled\n\n this.previouslyFocusedTextInput = input; // Store timestamp for touch start\n\n this.startTimestamp = Date.now();\n });\n\n _defineProperty(this, \"handlePageChangeConfirm\", force => {\n if (!this.props.enabled) {\n return;\n }\n\n this.clearKeyboardTimeout();\n\n if (force) {\n // Always dismiss input, even if we don't have a ref to it\n // We might not have the ref if onPageChangeStart was never called\n // This can happen if page change was not from a gesture\n Keyboard.dismiss();\n } else {\n const input = this.previouslyFocusedTextInput;\n\n if (input) {\n // Dismiss the keyboard only if an input was a focused before\n // This makes sure we don't dismiss input on going back and focusing an input\n TextInput.State.blurTextInput(input);\n }\n } // Cleanup the ID on successful page change\n\n\n this.previouslyFocusedTextInput = undefined;\n });\n\n _defineProperty(this, \"handlePageChangeCancel\", () => {\n if (!this.props.enabled) {\n return;\n }\n\n this.clearKeyboardTimeout(); // The page didn't change, we should restore the focus of text input\n\n const input = this.previouslyFocusedTextInput;\n\n if (input) {\n // If the interaction was super short we should make sure keyboard won't hide again.\n // Too fast input refocus will result only in keyboard flashing on screen and hiding right away.\n // During first ~100ms keyboard will be dismissed no matter what,\n // so we have to make sure it won't interrupt input refocus logic.\n // That's why when the interaction is shorter than 100ms we add delay so it won't hide once again.\n // Subtracting timestamps makes us sure the delay is executed only when needed.\n if (Date.now() - this.startTimestamp < 100) {\n this.keyboardTimeout = setTimeout(() => {\n TextInput.State.focusTextInput(input);\n this.previouslyFocusedTextInput = undefined;\n }, 100);\n } else {\n TextInput.State.focusTextInput(input);\n this.previouslyFocusedTextInput = undefined;\n }\n }\n });\n }\n\n componentWillUnmount() {\n this.clearKeyboardTimeout();\n } // Numeric id of the previously focused text input\n // When a gesture didn't change the tab, we can restore the focused input with this\n\n\n render() {\n return this.props.children({\n onPageChangeStart: this.handlePageChangeStart,\n onPageChangeConfirm: this.handlePageChangeConfirm,\n onPageChangeCancel: this.handlePageChangeCancel\n });\n }\n\n}\n//# sourceMappingURL=KeyboardManager.js.map","import * as React from 'react';\nimport { Animated, View, StyleSheet } from 'react-native';\nimport { NavigationContext } from 'react-navigation';\nimport Header from './Header';\nimport { forSlideLeft, forSlideUp, forNoAnimation, forSlideRight } from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport PreviousSceneContext from '../../utils/PreviousSceneContext';\nexport default function HeaderContainer({\n mode,\n scenes,\n layout,\n insets,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n gestureDirection,\n styleInterpolator,\n style\n}) {\n const focusedRoute = getFocusedRoute();\n const parentPreviousScene = React.useContext(PreviousSceneContext);\n return /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n style: style\n }, scenes.slice(-3).map((scene, i, self) => {\n var _getPreviousScene;\n\n if (mode === 'screen' && i !== self.length - 1 || !scene) {\n return null;\n }\n\n const {\n header,\n headerShown = true,\n headerTransparent\n } = scene.descriptor.options || {};\n\n if (!headerShown) {\n return null;\n }\n\n const isFocused = focusedRoute.key === scene.route.key;\n const previous = (_getPreviousScene = getPreviousScene({\n route: scene.route\n })) !== null && _getPreviousScene !== void 0 ? _getPreviousScene : parentPreviousScene; // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n\n const previousScene = self[i - 1];\n const nextScene = self[i + 1];\n const {\n headerShown: previousHeaderShown = true\n } = (previousScene === null || previousScene === void 0 ? void 0 : previousScene.descriptor.options) || {};\n const {\n headerShown: nextHeaderShown = true\n } = (nextScene === null || nextScene === void 0 ? void 0 : nextScene.descriptor.options) || {};\n const isHeaderStatic = previousHeaderShown === false && // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextScene || nextHeaderShown === false;\n const props = {\n mode,\n layout,\n insets,\n scene,\n previous,\n navigation: scene.descriptor.navigation,\n styleInterpolator: mode === 'float' ? isHeaderStatic ? gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? forSlideUp : gestureDirection === 'horizontal-inverted' ? forSlideRight : forSlideLeft : styleInterpolator : forNoAnimation\n };\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n key: scene.route.key,\n value: scene.descriptor.navigation\n }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {\n onLayout: onContentHeightChange ? e => {\n const {\n height\n } = e.nativeEvent.layout;\n onContentHeightChange({\n route: scene.route,\n height\n });\n } : undefined,\n pointerEvents: isFocused ? 'box-none' : 'none',\n accessibilityElementsHidden: !isFocused,\n importantForAccessibility: isFocused ? 'auto' : 'no-hide-descendants',\n style: // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n mode === 'float' && !isFocused || headerTransparent ? styles.header : null\n }, header !== undefined ? header(props) : /*#__PURE__*/React.createElement(Header, props))));\n }));\n}\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0\n }\n});\n//# sourceMappingURL=HeaderContainer.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { Dimensions } from 'react-native';\nimport { StackActions } from 'react-navigation';\nimport { getStatusBarHeight } from 'react-native-iphone-x-helper';\nimport HeaderSegment, { getDefaultHeaderHeight } from './HeaderSegment';\nimport HeaderTitle from './HeaderTitle';\nimport debounce from '../../utils/debounce';\nconst Header = /*#__PURE__*/React.memo(function Header(props) {\n const {\n scene,\n previous,\n layout,\n insets,\n navigation,\n styleInterpolator\n } = props;\n const {\n options\n } = scene.descriptor;\n const title = typeof options.headerTitle !== 'function' && options.headerTitle !== undefined ? options.headerTitle : options.title !== undefined ? options.title : scene.route.routeName;\n let leftLabel; // The label for the left back button shows the title of the previous screen\n // If a custom label is specified, we use it, otherwise use previous screen's title\n\n if (options.headerBackTitle !== undefined) {\n leftLabel = options.headerBackTitle;\n } else if (previous) {\n const o = previous.descriptor.options;\n leftLabel = typeof o.headerTitle !== 'function' && o.headerTitle !== undefined ? o.headerTitle : o.title !== undefined ? o.title : previous.route.routeName;\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n\n const goBack = React.useCallback(debounce(() => {\n var _navigation$dangerous;\n\n const key = navigation.isFirstRouteInParent() ? // If we're the first route, we're going back to a parent navigator\n // So we need to get the key of the route we're nested in\n (_navigation$dangerous = navigation.dangerouslyGetParent()) === null || _navigation$dangerous === void 0 ? void 0 : _navigation$dangerous.state.key : scene.route.key;\n\n if (key !== undefined) {\n navigation.dispatch(StackActions.pop({\n key\n }));\n }\n }, 50), [navigation, scene.route.key]);\n return /*#__PURE__*/React.createElement(HeaderSegment, _extends({}, options, {\n insets: insets,\n layout: layout,\n scene: scene,\n title: title,\n leftLabel: leftLabel,\n headerTitle: typeof options.headerTitle !== 'function' ? props => {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(HeaderTitle, props);\n } : options.headerTitle,\n onGoBack: previous ? goBack : undefined,\n styleInterpolator: styleInterpolator\n }));\n});\nObject.defineProperty(Header, 'HEIGHT', {\n get() {\n console.warn(\"Deprecation in 'createStackNavigator': 'Header.HEIGHT' will be removed in a future version. Use 'useHeaderHeight' or 'HeaderHeightContext' instead\");\n return getDefaultHeaderHeight(Dimensions.get('window'), getStatusBarHeight(true));\n }\n\n});\nexport default Header;\n//# sourceMappingURL=Header.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { Animated, StyleSheet, Platform } from 'react-native';\nimport useTheme from '../../../utils/useTheme';\nexport default function HeaderTitle({\n tintColor,\n style,\n ...rest\n}) {\n const {\n colors\n } = useTheme();\n return /*#__PURE__*/React.createElement(Animated.Text, _extends({\n accessibilityRole: \"header\",\n \"aria-level\": \"1\",\n numberOfLines: 1\n }, rest, {\n style: [styles.title, {\n color: tintColor === undefined ? colors.text : tintColor\n }, style]\n }));\n}\nconst styles = StyleSheet.create({\n title: Platform.select({\n ios: {\n fontSize: 17,\n fontWeight: '600'\n },\n android: {\n fontSize: 20,\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal'\n },\n default: {\n fontSize: 18,\n fontWeight: '500'\n }\n })\n});\n//# sourceMappingURL=HeaderTitle.js.map","export default function debounce(func, duration) {\n let timeout;\n return function (...args) {\n if (!timeout) {\n // eslint-disable-next-line babel/no-invalid-this\n func.apply(this, args);\n timeout = setTimeout(() => {\n timeout = undefined;\n }, duration);\n }\n };\n}\n//# sourceMappingURL=debounce.js.map","import * as React from 'react';\nimport { SafeAreaProvider, SafeAreaConsumer, initialWindowSafeAreaInsets } from 'react-native-safe-area-context';\nimport { getStatusBarHeight, getBottomSpace } from 'react-native-iphone-x-helper'; // The provider component for safe area initializes asynchornously\n// Until the insets are available, there'll be blank screen\n// To avoid the blank screen, we specify some initial values\n\nconst initialSafeAreaInsets = {\n // Approximate values which are good enough for most cases\n top: getStatusBarHeight(true),\n bottom: getBottomSpace(),\n right: 0,\n left: 0,\n // If we are on a newer version of the library, we can get the correct window insets\n // The component might not be filling the window, but this is good enough for most cases\n ...initialWindowSafeAreaInsets\n};\nexport default function SafeAreaProviderCompat({\n children\n}) {\n return /*#__PURE__*/React.createElement(SafeAreaConsumer, null, insets => {\n if (insets) {\n // If we already have insets, don't wrap the stack in another safe area provider\n // This avoids an issue with updates at the cost of potentially incorrect values\n // https://github.com/react-navigation/react-navigation/issues/174\n return children;\n }\n\n return /*#__PURE__*/React.createElement(SafeAreaProvider, {\n initialSafeAreaInsets: initialSafeAreaInsets\n }, children);\n });\n}\n//# sourceMappingURL=SafeAreaProviderCompat.js.map","import * as React from 'react';\nimport CardAnimationContext from './CardAnimationContext';\nexport default function useCardAnimation() {\n const animation = React.useContext(CardAnimationContext);\n\n if (animation === undefined) {\n throw new Error(\"Couldn't find values for card animation. Are you inside a screen in Stack?\");\n }\n\n return animation;\n}\n//# sourceMappingURL=useCardAnimation.js.map","import * as React from 'react';\nimport HeaderHeightContext from './HeaderHeightContext';\nexport default function useFloatingHeaderHeight() {\n const height = React.useContext(HeaderHeightContext);\n\n if (height === undefined) {\n throw new Error(\"Couldn't find the header height. Are you inside a screen in Stack?\");\n }\n\n return height;\n}\n//# sourceMappingURL=useHeaderHeight.js.map","import * as React from 'react';\nimport StackGestureRefContext from './GestureHandlerRefContext';\nexport default function useGestureHandlerRef() {\n const ref = React.useContext(StackGestureRefContext);\n\n if (ref === undefined) {\n throw new Error(\"Couldn't find a ref for gesture handler. Are you inside a screen in Stack?\");\n }\n\n return ref;\n}\n//# sourceMappingURL=useGestureHandlerRef.js.map","import * as React from 'react';\nimport { StackRouter, createNavigator } from 'react-navigation';\nimport StackView from '../views/StackView';\n\nfunction createStackNavigator(routeConfigMap, stackConfig = {}) {\n const router = StackRouter(routeConfigMap, stackConfig);\n return createNavigator( // TODO: don't have time to fix it right now\n // @ts-ignore\n navigatorProps => /*#__PURE__*/React.createElement(StackView, navigatorProps), router, stackConfig);\n}\n\nexport default createStackNavigator;\n//# sourceMappingURL=createStackNavigator.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport validateDeprecatedOptions from '../utils/validateDeprecatedOptions';\nimport validateDeprecatedConfig from '../utils/validateDeprecatedConfig';\nimport StackViewBase from '../vendor/views/Stack/StackView';\nexport default function StackView({\n navigation,\n descriptors: originalDescriptors,\n navigationConfig,\n ...rest\n}) {\n const descriptors = Object.keys(originalDescriptors).reduce((acc, key) => {\n const options = validateDeprecatedConfig(navigationConfig, validateDeprecatedOptions(originalDescriptors[key].options));\n acc[key] = { ...originalDescriptors[key],\n options\n };\n return acc;\n }, {});\n return /*#__PURE__*/React.createElement(StackViewBase, _extends({\n state: navigation.state,\n descriptors: descriptors,\n navigation: navigation\n }, navigationConfig, rest));\n}\n//# sourceMappingURL=StackView.js.map","const shownWarnings = [];\nconst validations = [{\n check: o => typeof o.headerForceInset === 'object',\n deprecated: 'headerForceInset',\n updated: 'safeAreaInsets',\n compat: o => {\n const {\n headerForceInset,\n ...rest\n } = o;\n let safeAreaInsets = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n switch (headerForceInset) {\n case 'top':\n delete safeAreaInsets.top;\n break;\n\n case 'bottom':\n delete safeAreaInsets.bottom;\n break;\n\n case 'left':\n delete safeAreaInsets.left;\n break;\n\n case 'right':\n delete safeAreaInsets.right;\n break;\n\n case 'vertical':\n delete safeAreaInsets.top;\n delete safeAreaInsets.bottom;\n break;\n\n case 'horizontal':\n delete safeAreaInsets.left;\n delete safeAreaInsets.right;\n break;\n\n case 'always':\n safeAreaInsets = undefined;\n break;\n }\n\n return { ...rest,\n safeAreaInsets\n };\n }\n}, {\n check: o => o.gesturesEnabled !== undefined,\n deprecated: 'gesturesEnabled',\n updated: 'gestureEnabled',\n compat: o => {\n const {\n gesturesEnabled,\n ...rest\n } = o;\n return { ...rest,\n gestureEnabled: gesturesEnabled\n };\n }\n}, {\n check: o => o.header === null,\n deprecated: 'header: null',\n updated: 'headerShown: false',\n compat: o => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n header,\n ...rest\n } = o;\n return { ...rest,\n headerShown: false\n };\n }\n}, {\n check: o => o.header != null && typeof o.header !== 'function',\n deprecated: 'header: <SomeElement />',\n updated: 'header: () => <SomeElement />',\n compat: o => ({ ...o,\n header: () => o.header\n })\n}, {\n check: o => o.headerTitle !== undefined && typeof o.headerTitle !== 'string' && typeof o.headerTitle !== 'function',\n deprecated: 'headerTitle: <SomeElement />',\n updated: 'headerTitle: () => <SomeElement />',\n compat: o => ({ ...o,\n headerTitle: () => o.headerTitle\n })\n}, ...['headerLeft', 'headerRight', 'headerBackground', 'headerBackImage'].map(p => ({\n check: o => o[p] !== undefined && typeof o[p] !== 'function',\n deprecated: \"\".concat(p, \": <SomeElement />\"),\n updated: \"\".concat(p, \": () => <SomeElement />\"),\n compat: o => ({ ...o,\n [p]: () => o[p]\n })\n}))];\nexport default function validateDeprecatedOptions(options) {\n let result = options;\n const warnings = []; // Validate options to show warnings for deprecations\n\n validations.forEach(v => {\n if (v.check(options)) {\n result = v.compat(result);\n\n if (process.env.NODE_ENV !== 'production') {\n if (shownWarnings.includes(v.deprecated)) {\n return;\n }\n\n warnings.push(v);\n shownWarnings.push(v.deprecated);\n }\n }\n });\n\n if (warnings.length) {\n console.warn(\"Deprecation in 'navigationOptions':\\n\".concat(warnings.map(v => \"- '\".concat(v.deprecated, \"' will be removed in a future version. Use '\").concat(v.updated, \"' instead\")).join('\\n')));\n }\n\n return result;\n}\n//# sourceMappingURL=validateDeprecatedOptions.js.map","const shownWarnings = [];\nconst validations = {\n transparentCard: {\n message: \"'transparentCard' is removed in favor of 'cardStyle: { backgroundColor: 'transparent' }' in 'navigationOptions'. Specify it in 'defaultNavigationOptions' to keep the same behaviour.\",\n compat: (c, o) => c.transparentCard ? { ...o,\n cardStyle: [{\n backgroundColor: 'transparent'\n }, o.cardStyle]\n } : o\n },\n headerLayoutPreset: {\n message: \"'headerLayoutPreset' is renamed to 'headerTitleAlign' and moved to 'navigationOptions'. Specify it in 'defaultNavigationOptions' to keep the same behaviour.\",\n compat: (c, o) => ({ ...o,\n headerTitleAlign: c.headerLayoutPreset\n })\n },\n headerTransitionPreset: {\n message: \"'headerTransitionPreset' is removed in favor of the new animation APIs\"\n },\n transitionConfig: {\n message: \"'transitionConfig' is removed in favor of the new animation APIs\"\n },\n ...['cardShadowEnabled', 'cardOverlayEnabled', 'cardStyle', 'headerBackTitleVisible', 'onTransitionStart', 'onTransitionEnd'].reduce((acc, name) => {\n acc[name] = {\n message: \"'\".concat(name, \"' is moved to 'navigationOptions'. Specify it in 'defaultNavigationOptions' to keep the same behaviour.\"),\n compat: (c, o) => ({ ...o,\n [name]: () => c[name]\n })\n };\n return acc;\n }, {})\n};\nexport default function validateDeprecatedConfig(config, options) {\n let result = options;\n Object.keys(validations).forEach(name => {\n if (name in config) {\n const {\n compat,\n message\n } = validations[name];\n result = compat ? compat(config, result) : result;\n\n if (process.env.NODE_ENV !== 'production') {\n if (shownWarnings.includes(message)) {\n return;\n }\n\n console.warn(\"Deprecation in 'createStackNavigator':\\n\".concat(message));\n shownWarnings.push(message);\n }\n }\n });\n return result;\n}\n//# sourceMappingURL=validateDeprecatedConfig.js.map","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, Image, Alert, BackHandler } from \"react-native\"\nimport AsyncStorage from '@react-native-community/async-storage'\nimport SafeAreaView from 'react-native-safe-area-view'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { Banner } from \"../components/Banner\"\nimport { colors, texts, credentials } from \"../components/Variables\"\nimport { examQuestions } from \"../components/ExamQuestions\"\nimport { trueFalseQuestions } from \"../components/TrueFalseQuestions\"\n\nconst screen = Dimensions.get(\"window\")\nconst header = require(\"../assets/header.png\")\nconst pkg = require('../../app.json')\nconst maxTime = 0 // 10\nlet interval = null\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: colors.dark_blue,\n flex: 1\n },\n bannerContainer: {\n backgroundColor: colors.dark_blue,\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n bannerExpanded: {\n backgroundColor: colors.dark_blue,\n height: screen.height-230\n },\n bannerCollapsed: {\n backgroundColor: colors.dark_blue,\n height: 300\n },\n banner: {\n width: 300,\n height: 250,\n marginVertical: 20\n },\n title: {\n color: colors.white,\n fontSize: 25,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingVertical: 20\n },\n text: {\n color: colors.white,\n fontSize: 20,\n textAlign: \"center\",\n fontWeight: \"400\",\n paddingVertical: 20,\n marginTop: 20,\n },\n timer: {\n color: colors.white,\n fontSize: 30,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingVertical: 20,\n marginBottom: 20,\n },\n safearea: {\n flex: 1,\n marginTop: 0,\n justifyContent: \"space-between\",\n paddingHorizontal: 20\n },\n headerContainer: {\n marginTop: 20,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: 150\n },\n header: {\n width: \"100%\"\n }\n})\n\nclass Splash extends React.Component {\n\n state = {\n bannerExpanded: true,\n timer: maxTime,\n storeWrongAnswers: this.props.navigation.getParam(\"storeWrongAnswers\", []) || [],\n setupData: {}\n }\n\n bannerError = (e) => {\n //console.log(\"Banner error: \", e)\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n AsyncStorage.getItem('storeWrongAnswers').then( (value) => {\n if(!value) {\n AsyncStorage.setItem('storeWrongAnswers', JSON.stringify([]))\n }\n\n AsyncStorage.getItem('setupData').then((setup) => {\n if(!setup) {\n AsyncStorage.setItem('setupData', JSON.stringify({}))\n }\n this.setState( (state) => {\n return {\n storeWrongAnswers: value ? JSON.parse(value) : [],\n setupData: setup ? JSON.parse(setup) : {}\n }\n })\n })//.done()\n })//.done()\n\n\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n Alert.alert(\n texts.exit,\n texts.exitQuestion,\n [\n {text: 'No', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},\n {text: 'Si', onPress: () => BackHandler.exitApp()},\n ],\n { cancelable: false }\n )\n return true\n }\n\n render() {\n\n const storeWrongAnswers = this.props.navigation.getParam(\"storeWrongAnswers\") || this.state.storeWrongAnswers\n\n //console.log(storeWrongAnswers.length)\n\n if(this.state.timer==maxTime) {\n interval = setInterval( () => {\n this.setState( (state) => {\n return {\n timer: this.state.timer-1,\n }\n })\n }, 1000)\n }\n\n if(this.state.timer < 1) {\n clearInterval(interval)\n setTimeout( () => {\n this.setState( (state) => {\n return {\n bannerExpanded: false\n }\n })\n }, 500)\n }\n\n return (\n <ScrollView style={styles.container} >\n <View style={styles.headerContainer} >\n <Image source={header} style={styles.header} resizeMode=\"contain\" />\n </View>\n\n <SafeAreaView style={styles.safearea}>\n <View>\n <ButtonContainer isBoxed={true}>\n <Button\n text={texts.section_quizzes}\n subtitle={`(${texts.section_quizzes_subtitle})`}\n isBig={false}\n hasBg={true}\n noPadding={true}\n hasShadow={true}\n color={colors.white_alpha}\n onPress={() =>\n this.props.navigation.navigate(\"QuizIndex\", {\n title: texts.section_quizzes,\n color: colors.white_alpha\n })}\n />\n\n <Button\n text={texts.exam}\n subtitle={`(${texts.exam_simulation})`}\n isBig={false}\n hasBg={true}\n noPadding={true}\n hasShadow={true}\n color={colors.white_alpha}\n onPress={() =>\n this.props.navigation.navigate(\"Exam\", {\n title: texts.exam,\n questions: this.props.navigation.getParam(\"examQuestions\") || examQuestions,\n color: colors.white_alpha\n })}\n />\n\n {\n storeWrongAnswers.length ? (\n <Button\n text={texts.wrong_review}\n subtitle={`(${storeWrongAnswers.length} ${texts.wrong_title})`}\n isBig={false}\n hasBg={true}\n noPadding={true}\n hasShadow={true}\n color={colors.white_alpha}\n onPress={() =>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.wrong_review,\n questions: storeWrongAnswers,\n isWrong: true,\n color: colors.blue\n })}\n />\n ) : null\n }\n\n <Button\n text={texts.trueFalse}\n subtitle={`(${texts.trueFalseSubtitle})`}\n isBig={false}\n hasBg={true}\n noPadding={true}\n hasShadow={true}\n color={colors.white_alpha}\n onPress={() =>\n this.props.navigation.navigate(\"TrueFalse\", {\n title: texts.trueFalse,\n questions: this.props.navigation.getParam(\"trueFalseQuestions\") || trueFalseQuestions,\n color: colors.white_alpha\n })}\n />\n <Button\n text={texts.dictionaryTitle}\n subtitle={`(${texts.dictionarySubtitle})`}\n isBig={false}\n hasBg={true}\n noPadding={true}\n hasShadow={true}\n color={colors.white_alpha}\n onPress={() => this.props.navigation.navigate(\"Dictionary\", {})}\n />\n <Button\n text={texts.setupTitle}\n subtitle={`(${texts.setupSubtitle})`}\n isBig={false}\n hasBg={true}\n noPadding={true}\n hasShadow={true}\n color={colors.white_alpha}\n onPress={() => this.props.navigation.navigate(\"Setup\", {})}\n />\n <Button\n text={texts.infoTitle}\n isBig={false}\n hasBg={true}\n noPadding={true}\n hasShadow={true}\n color={colors.white_alpha}\n onPress={() => this.props.navigation.navigate(\"Info\", {})}\n />\n <Button\n text={texts.exit}\n isBig={false}\n hasBg={true}\n noPadding={true}\n hasShadow={true}\n noBorder={true}\n color={colors.white_alpha2}\n onPress={() => this.handleBackButton()}\n />\n\n </ButtonContainer>\n </View>\n\n </SafeAreaView>\n <View style={[styles.bannerContainer, !this.state.bannerExpanded ? styles.bannerCollapsed : {}]}>\n <Banner />\n\n {\n this.state.bannerExpanded ? (\n <Text style={styles.timer}>{this.state.timer}</Text>\n ) : null\n }\n </View>\n </ScrollView>\n )\n }\n}\n\nexport default Splash\n","/**\n * @format\n * @flow\n */\n\nimport AsyncStorage from './AsyncStorage';\n\nexport default AsyncStorage;\nexport {useAsyncStorage} from './hooks';\n","/**\n * Copyright (c) Facebook, 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 * @format\n * @flow\n * @jsdoc\n */\n\n'use strict';\n\nimport RCTAsyncStorage from './RCTAsyncStorage';\n\nif (!RCTAsyncStorage) {\n throw new Error(`[@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.\n\nTo fix this issue try these steps:\n\n • Run \\`react-native link @react-native-community/async-storage\\` in the project root.\n\n • Rebuild and restart the app.\n\n • Run the packager with \\`--reset-cache\\` flag.\n\n • If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app.\n\n • If this happens while testing with Jest, check out docs how to integrate AsyncStorage with it: https://react-native-community.github.io/async-storage/docs/advanced/jest\n\nIf none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-async-storage/issues \n`);\n}\n\ntype ReadOnlyArrayString = $ReadOnlyArray<string>;\n\ntype MultiGetCallbackFunction = (\n errors: ?$ReadOnlyArray<Error>,\n result: ?$ReadOnlyArray<ReadOnlyArrayString>,\n) => void;\n\ntype MultiRequest = {|\n keys: $ReadOnlyArray<string>,\n callback: ?MultiGetCallbackFunction,\n keyIndex: number,\n resolve: ?(result?: Promise<?$ReadOnlyArray<ReadOnlyArrayString>>) => void,\n reject: ?(error?: any) => void,\n|};\n\nfunction checkValidInput(usedKey: string, value: any) {\n const isValuePassed = arguments.length > 1;\n\n if (typeof usedKey !== 'string') {\n console.warn(\n `[AsyncStorage] Using ${typeof usedKey} type for key is not supported. This can lead to unexpected behavior/errors. Use string instead.\\nKey passed: ${usedKey}\\n`,\n );\n }\n\n if (isValuePassed && typeof value !== 'string') {\n if (value == null) {\n throw new Error(\n `[AsyncStorage] Passing null/undefined as value is not supported. If you want to remove value, Use .remove method instead.\\nPassed value: ${value}\\nPassed key: ${usedKey}\\n`,\n );\n } else {\n console.warn(\n `[AsyncStorage] The value for key \"${usedKey}\" is not a string. This can lead to unexpected behavior/errors. Consider stringifying it.\\nPassed value: ${value}\\nPassed key: ${usedKey}\\n`,\n );\n }\n }\n}\n\n/**\n * `AsyncStorage` is a simple, unencrypted, asynchronous, persistent, key-value\n * storage system that is global to the app. It should be used instead of\n * LocalStorage.\n *\n * See http://reactnative.dev/docs/asyncstorage.html\n */\nconst AsyncStorage = {\n _getRequests: ([]: Array<MultiRequest>),\n _getKeys: ([]: Array<string>),\n _immediate: (null: ?number),\n\n /**\n * Fetches an item for a `key` and invokes a callback upon completion.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#getitem\n */\n getItem: function(\n key: string,\n callback?: ?(error: ?Error, result: string | null) => void,\n ): Promise<string | null> {\n return new Promise((resolve, reject) => {\n checkValidInput(key);\n RCTAsyncStorage.multiGet([key], function(errors, result) {\n // Unpack result to get value from [[key,value]]\n const value = result && result[0] && result[0][1] ? result[0][1] : null;\n const errs = convertErrors(errors);\n callback && callback(errs && errs[0], value);\n if (errs) {\n reject(errs[0]);\n } else {\n resolve(value);\n }\n });\n });\n },\n\n /**\n * Sets the value for a `key` and invokes a callback upon completion.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#setitem\n */\n setItem: function(\n key: string,\n value: string,\n callback?: ?(error: ?Error) => void,\n ): Promise<null> {\n return new Promise((resolve, reject) => {\n checkValidInput(key, value);\n RCTAsyncStorage.multiSet([[key, value]], function(errors) {\n const errs = convertErrors(errors);\n callback && callback(errs && errs[0]);\n if (errs) {\n reject(errs[0]);\n } else {\n resolve(null);\n }\n });\n });\n },\n\n /**\n * Removes an item for a `key` and invokes a callback upon completion.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#removeitem\n */\n removeItem: function(\n key: string,\n callback?: ?(error: ?Error) => void,\n ): Promise<null> {\n return new Promise((resolve, reject) => {\n checkValidInput(key);\n RCTAsyncStorage.multiRemove([key], function(errors) {\n const errs = convertErrors(errors);\n callback && callback(errs && errs[0]);\n if (errs) {\n reject(errs[0]);\n } else {\n resolve(null);\n }\n });\n });\n },\n\n /**\n * Merges an existing `key` value with an input value, assuming both values\n * are stringified JSON.\n *\n * **NOTE:** This is not supported by all native implementations.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#mergeitem\n */\n mergeItem: function(\n key: string,\n value: string,\n callback?: ?(error: ?Error) => void,\n ): Promise<null> {\n return new Promise((resolve, reject) => {\n checkValidInput(key, value);\n RCTAsyncStorage.multiMerge([[key, value]], function(errors) {\n const errs = convertErrors(errors);\n callback && callback(errs && errs[0]);\n if (errs) {\n reject(errs[0]);\n } else {\n resolve(null);\n }\n });\n });\n },\n\n /**\n * Erases *all* `AsyncStorage` for all clients, libraries, etc. You probably\n * don't want to call this; use `removeItem` or `multiRemove` to clear only\n * your app's keys.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#clear\n */\n clear: function(callback?: ?(error: ?Error) => void): Promise<null> {\n return new Promise((resolve, reject) => {\n RCTAsyncStorage.clear(function(error) {\n const err = convertError(error);\n callback && callback(err);\n if (err) {\n reject(err);\n } else {\n resolve(null);\n }\n });\n });\n },\n\n /**\n * Gets *all* keys known to your app; for all callers, libraries, etc.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#getallkeys\n */\n getAllKeys: function(\n callback?: ?(error: ?Error, keys: ?ReadOnlyArrayString) => void,\n ): Promise<ReadOnlyArrayString> {\n return new Promise((resolve, reject) => {\n RCTAsyncStorage.getAllKeys(function(error, keys) {\n const err = convertError(error);\n callback && callback(err, keys);\n if (err) {\n reject(err);\n } else {\n resolve(keys);\n }\n });\n });\n },\n\n /**\n * The following batched functions are useful for executing a lot of\n * operations at once, allowing for native optimizations and provide the\n * convenience of a single callback after all operations are complete.\n *\n * These functions return arrays of errors, potentially one for every key.\n * For key-specific errors, the Error object will have a key property to\n * indicate which key caused the error.\n */\n\n /**\n * Flushes any pending requests using a single batch call to get the data.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#flushgetrequests\n * */\n flushGetRequests: function(): void {\n const getRequests = this._getRequests;\n const getKeys = this._getKeys;\n\n this._getRequests = [];\n this._getKeys = [];\n\n RCTAsyncStorage.multiGet(getKeys, function(errors, result) {\n // Even though the runtime complexity of this is theoretically worse vs if we used a map,\n // it's much, much faster in practice for the data sets we deal with (we avoid\n // allocating result pair arrays). This was heavily benchmarked.\n //\n // Is there a way to avoid using the map but fix the bug in this breaking test?\n // https://github.com/facebook/react-native/commit/8dd8ad76579d7feef34c014d387bf02065692264\n const map = {};\n result &&\n result.forEach(([key, value]) => {\n map[key] = value;\n return value;\n });\n const reqLength = getRequests.length;\n for (let i = 0; i < reqLength; i++) {\n const request = getRequests[i];\n const requestKeys = request.keys;\n const requestResult = requestKeys.map(key => [key, map[key]]);\n request.callback && request.callback(null, requestResult);\n request.resolve && request.resolve(requestResult);\n }\n });\n },\n\n /**\n * This allows you to batch the fetching of items given an array of `key`\n * inputs. Your callback will be invoked with an array of corresponding\n * key-value pairs found.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#multiget\n */\n multiGet: function(\n keys: Array<string>,\n callback?: ?MultiGetCallbackFunction,\n ): Promise<?$ReadOnlyArray<ReadOnlyArrayString>> {\n if (!this._immediate) {\n this._immediate = setImmediate(() => {\n this._immediate = null;\n this.flushGetRequests();\n });\n }\n\n const getRequest: MultiRequest = {\n keys: keys,\n callback: callback,\n // do we need this?\n keyIndex: this._getKeys.length,\n resolve: null,\n reject: null,\n };\n\n const promiseResult = new Promise((resolve, reject) => {\n getRequest.resolve = resolve;\n getRequest.reject = reject;\n });\n\n this._getRequests.push(getRequest);\n // avoid fetching duplicates\n keys.forEach(key => {\n if (this._getKeys.indexOf(key) === -1) {\n this._getKeys.push(key);\n }\n });\n\n return promiseResult;\n },\n\n /**\n * Use this as a batch operation for storing multiple key-value pairs. When\n * the operation completes you'll get a single callback with any errors.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#multiset\n */\n multiSet: function(\n keyValuePairs: Array<Array<string>>,\n callback?: ?(errors: ?$ReadOnlyArray<?Error>) => void,\n ): Promise<null> {\n return new Promise((resolve, reject) => {\n keyValuePairs.forEach(([key, value]) => {\n checkValidInput(key, value);\n });\n\n RCTAsyncStorage.multiSet(keyValuePairs, function(errors) {\n const error = convertErrors(errors);\n callback && callback(error);\n if (error) {\n reject(error);\n } else {\n resolve(null);\n }\n });\n });\n },\n\n /**\n * Call this to batch the deletion of all keys in the `keys` array.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#multiremove\n */\n multiRemove: function(\n keys: Array<string>,\n callback?: ?(errors: ?$ReadOnlyArray<?Error>) => void,\n ): Promise<null> {\n return new Promise((resolve, reject) => {\n keys.forEach(key => checkValidInput(key));\n\n RCTAsyncStorage.multiRemove(keys, function(errors) {\n const error = convertErrors(errors);\n callback && callback(error);\n if (error) {\n reject(error);\n } else {\n resolve(null);\n }\n });\n });\n },\n\n /**\n * Batch operation to merge in existing and new values for a given set of\n * keys. This assumes that the values are stringified JSON.\n *\n * **NOTE**: This is not supported by all native implementations.\n *\n * See http://reactnative.dev/docs/asyncstorage.html#multimerge\n */\n multiMerge: function(\n keyValuePairs: Array<Array<string>>,\n callback?: ?(errors: ?$ReadOnlyArray<?Error>) => void,\n ): Promise<null> {\n return new Promise((resolve, reject) => {\n RCTAsyncStorage.multiMerge(keyValuePairs, function(errors) {\n const error = convertErrors(errors);\n callback && callback(error);\n if (error) {\n reject(error);\n } else {\n resolve(null);\n }\n });\n });\n },\n};\n\n// Not all native implementations support merge.\nif (!RCTAsyncStorage.multiMerge) {\n delete AsyncStorage.mergeItem;\n delete AsyncStorage.multiMerge;\n}\n\nfunction convertErrors(errs): ?$ReadOnlyArray<?Error> {\n if (!errs || (Array.isArray(errs) && errs.length === 0)) {\n return null;\n }\n return (Array.isArray(errs) ? errs : [errs]).map(e => convertError(e));\n}\n\nfunction convertError(error): ?Error {\n if (!error) {\n return null;\n }\n const out = new Error(error.message);\n // $FlowFixMe: adding custom properties to error.\n out.key = error.key;\n return out;\n}\n\nexport default AsyncStorage;\n","const {NativeModules} = require('react-native');\n\nconst RCTAsyncStorage =\n NativeModules.PlatformLocalStorage || // Support for external modules, like react-native-windows\n NativeModules.RNC_AsyncSQLiteDBStorage ||\n NativeModules.RNCAsyncStorage;\n\nexport default RCTAsyncStorage;","/**\n * @format\n * @flow\n */\n\nimport AsyncStorage from './AsyncStorage';\n\ntype AsyncStorageHook = {\n getItem: (\n callback?: ?(error: ?Error, result: string | null) => void,\n ) => Promise<string | null>,\n setItem: (\n value: string,\n callback?: ?(error: ?Error) => void,\n ) => Promise<null>,\n mergeItem: (\n value: string,\n callback?: ?(error: ?Error) => void,\n ) => Promise<null>,\n removeItem: (callback?: ?(error: ?Error) => void) => Promise<null>,\n};\n\nexport function useAsyncStorage(key: string): AsyncStorageHook {\n return {\n getItem: (...args) => AsyncStorage.getItem(key, ...args),\n setItem: (...args) => AsyncStorage.setItem(key, ...args),\n mergeItem: (...args) => AsyncStorage.mergeItem(key, ...args),\n removeItem: (...args) => AsyncStorage.removeItem(key, ...args),\n };\n}\n","import * as React from 'react';\nimport {\n Animated,\n Dimensions,\n InteractionManager,\n LayoutChangeEvent,\n StyleSheet,\n View,\n ViewStyle,\n ViewProperties,\n} from 'react-native';\nimport {\n EdgeInsets,\n SafeAreaContext,\n SafeAreaProvider,\n SafeAreaConsumer,\n useSafeArea,\n} from 'react-native-safe-area-context';\n\nimport shallowEquals from './shallowEquals';\n\n// Re-export react-native-safe-area-context utilities\nexport { useSafeArea, SafeAreaProvider, SafeAreaConsumer, SafeAreaContext };\n\nexport type ForceInsetValue = 'always' | 'never';\nexport type ForceInsetProp = {\n top?: ForceInsetValue;\n bottom?: ForceInsetValue;\n left?: ForceInsetValue;\n right?: ForceInsetValue;\n horizontal?: ForceInsetValue;\n vertical?: ForceInsetValue;\n};\n\ninterface Props extends ViewProperties {\n forceInset?: ForceInsetProp;\n}\n\ninterface State {\n touchesTop: boolean;\n touchesBottom: boolean;\n touchesLeft: boolean;\n touchesRight: boolean;\n viewWidth: number;\n viewHeight: number;\n}\n\n// https://github.com/facebook/react-native/blob/282b8b04e167cb426e40947064c4c18186e093f5/Libraries/ReactNative/DummyUIManager.js#L64\ninterface AnimatedView extends Animated.AnimatedComponent<View> {\n measureInWindow: (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => void;\n}\n\nexport default class SafeAreaView extends React.Component<Props, State> {\n static contextType: any = SafeAreaContext;\n context!: React.ContextType<typeof SafeAreaContext>;\n private _isMounted: boolean = false;\n private _view = React.createRef<AnimatedView>();\n\n state: State = {\n touchesTop: true,\n touchesBottom: true,\n touchesLeft: true,\n touchesRight: true,\n viewWidth: 0,\n viewHeight: 0,\n };\n\n componentDidMount() {\n this._isMounted = true;\n InteractionManager.runAfterInteractions(() => {\n this._updateMeasurements();\n });\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n render() {\n const { forceInset = false, style, ...props } = this.props;\n\n return (\n <Animated.View\n // @ts-ignore\n ref={this._view}\n pointerEvents=\"box-none\"\n {...props}\n onLayout={this._handleLayout}\n style={this._getSafeAreaStyle()}\n />\n );\n }\n\n _handleLayout = (e: LayoutChangeEvent) => {\n if (this.props.onLayout) this.props.onLayout(e);\n\n this._updateMeasurements();\n };\n\n _updateMeasurements = () => {\n if (!this._isMounted) return;\n if (!this._view.current) return;\n\n const { width: WIDTH, height: HEIGHT } = getResolvedDimensions();\n\n // calling getNode on the ref is no longer necessary in the future\n const view = this._view.current.measureInWindow\n ? this._view.current\n : this._view.current.getNode();\n view.measureInWindow((realX, realY, winWidth, winHeight) => {\n if (!this._view.current) {\n return;\n }\n\n if (realY >= HEIGHT) {\n realY = realY % HEIGHT;\n } else if (realY < 0) {\n realY = (realY % HEIGHT) + HEIGHT;\n }\n\n if (realX >= WIDTH) {\n realX = realX % WIDTH;\n } else if (realX < 0) {\n realX = (realX % WIDTH) + WIDTH;\n }\n\n let nextState = {\n touchesTop: realY === 0,\n touchesBottom: realY + winHeight >= HEIGHT,\n touchesLeft: realX === 0,\n touchesRight: realX + winWidth >= WIDTH,\n viewWidth: winWidth,\n viewHeight: winHeight,\n };\n\n if (!shallowEquals(nextState, this.state)) {\n this.setState(nextState);\n }\n });\n };\n\n _getSafeAreaStyle = () => {\n const { touchesTop, touchesBottom, touchesLeft, touchesRight } = this.state;\n const { forceInset } = this.props;\n\n const {\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n viewStyle,\n } = this._getViewStyles();\n\n const style = {\n ...viewStyle,\n paddingTop: touchesTop ? this._getInset('top') : 0,\n paddingBottom: touchesBottom ? this._getInset('bottom') : 0,\n paddingLeft: touchesLeft ? this._getInset('left') : 0,\n paddingRight: touchesRight ? this._getInset('right') : 0,\n };\n\n if (forceInset && typeof forceInset !== 'boolean') {\n getKeys(forceInset).forEach(key => {\n let inset = 0;\n\n if (forceInset[key] === 'always') {\n inset = this._getInset(key);\n } else if (forceInset[key] === 'never') {\n inset = 0;\n }\n\n switch (key) {\n case 'horizontal': {\n style.paddingLeft = inset;\n style.paddingRight = inset;\n break;\n }\n case 'vertical': {\n style.paddingTop = inset;\n style.paddingBottom = inset;\n break;\n }\n case 'left': {\n style.paddingLeft = inset;\n break;\n }\n case 'right': {\n style.paddingRight = inset;\n break;\n }\n case 'top': {\n style.paddingTop = inset;\n break;\n }\n case 'bottom': {\n style.paddingBottom = inset;\n break;\n }\n }\n });\n }\n\n // new height/width should only include padding from insets\n // height/width should not be affected by padding from style obj\n if (style.height && typeof style.height === 'number') {\n style.height += style.paddingTop + style.paddingBottom;\n }\n\n if (style.width && typeof style.width === 'number') {\n style.width += style.paddingLeft + style.paddingRight;\n }\n\n style.paddingTop = Math.max(style.paddingTop, paddingTop);\n style.paddingBottom = Math.max(style.paddingBottom, paddingBottom);\n style.paddingLeft = Math.max(style.paddingLeft, paddingLeft);\n style.paddingRight = Math.max(style.paddingRight, paddingRight);\n\n return style;\n };\n\n _getViewStyles = () => {\n const { viewWidth } = this.state;\n // get padding values from style to add back in after insets are determined\n // default precedence: padding[Side] -> vertical | horizontal -> padding -> 0\n let {\n padding = 0,\n paddingVertical = padding,\n paddingHorizontal = padding,\n paddingTop = paddingVertical,\n paddingBottom = paddingVertical,\n paddingLeft = paddingHorizontal,\n paddingRight = paddingHorizontal,\n ...viewStyle\n }: ViewStyle = StyleSheet.flatten(this.props.style || {});\n\n if (typeof paddingTop !== 'number') {\n paddingTop = doubleFromPercentString(paddingTop) * viewWidth;\n }\n\n if (typeof paddingBottom !== 'number') {\n paddingBottom = doubleFromPercentString(paddingBottom) * viewWidth;\n }\n\n if (typeof paddingLeft !== 'number') {\n paddingLeft = doubleFromPercentString(paddingLeft) * viewWidth;\n }\n\n if (typeof paddingRight !== 'number') {\n paddingRight = doubleFromPercentString(paddingRight) * viewWidth;\n }\n\n return {\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n viewStyle,\n };\n };\n\n _getInset = (key: keyof ForceInsetProp) => {\n if (this.context === null) {\n throw new Error(\n '<SafeAreaView /> must be wrapped by react-native-safe-area-context <SafeAreaProvider />'\n );\n } else if (key === 'horizontal') {\n return Math.max(this.context.left, this.context.right);\n } else if (key === 'vertical') {\n return Math.max(this.context.top, this.context.bottom);\n } else {\n return this.context[key as keyof EdgeInsets];\n }\n };\n}\n\n// note(brentvatne): it is unclear to me why this function exists but I will\n// leave it\nfunction getResolvedDimensions() {\n const { width, height } = Dimensions.get('window');\n if (width === 0 && height === 0) return Dimensions.get('screen');\n return { width, height };\n}\n\n// Convert percentage string, eg: 50%, to double, eg: 0.5\nfunction doubleFromPercentString(percent: string): number {\n if (!percent.includes('%')) {\n return 0;\n }\n\n const dbl = parseFloat(percent) / 100;\n\n if (isNaN(dbl)) return 0;\n\n return dbl;\n}\n\n// Utility to iterate over keys in object and have each key typed\nfunction getKeys<T extends {}>(object: T): Array<keyof T> {\n return Object.keys(object) as Array<keyof T>;\n}\n","export default function shallowEqual(objA: any, objB: any) {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n if (valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n}\n","import React from \"react\"\nimport { View, TouchableOpacity, Text, StyleSheet, ImageBackground } from \"react-native\"\nimport { colors } from \"../components/Variables\"\n\nconst bgImage = require(\"../assets/buttonBg.png\")\n\nconst styles = StyleSheet.create({\n button: {\n backgroundColor: colors.white_alpha,\n borderWidth: 4,\n borderColor: 'transparent',\n borderRadius: 5,\n //paddingHorizontal: 20,\n paddingVertical: 15,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n marginTop: 15\n },\n noPadding: {\n paddingHorizontal: 0,\n paddingVertical: 0,\n },\n text: {\n color: colors.white,\n fontSize: 20,\n textAlign: \"center\"\n },\n subtitle: {\n color: colors.white,\n fontSize: 15,\n textAlign: \"center\"\n },\n shadow: {\n textShadowColor: 'rgba(0, 0, 0, 0.45)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 2\n },\n buttonContainer: {\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n marginTop: 20,\n justifyContent: \"space-between\",\n overflow: \"hidden\",\n borderRadius: 5\n },\n buttonBg: {\n flex: 1,\n paddingVertical: 15,\n height: '100%',\n width: '100%',\n resizeMode: 'cover'\n },\n buttonPadding: {\n paddingHorizontal: 20\n }\n})\n\nexport const Button = ({ text, subtitle = null, isBig = false, colorize = false, color = false, noPadding = false, noBorder = false, halfSize = false, hasShadow = false, hasBg = false, onPress = false }) => {\n\n const buttonBig = isBig ? {fontSize: 25} : {}\n const isClicked = colorize.clicked == colorize.id\n let buttonColor = {backgroundColor: colors.white_alpha}\n let planeButton = noPadding ? { borderRadius: 0, marginTop: 0, borderWidth: 0, borderBottomWidth: 1, borderColor: colors.white_alpha} : {}\n let noBorderButton = noBorder ? { borderWidth: 0, borderBottomWidth: 0} : {}\n let isHalf = halfSize ? { width: \"48%\", marginHorizontal: \"1%\"} : {}\n\n if(colorize && colorize.answered) {\n\n if(colorize.isCorrect) {\n buttonColor = {backgroundColor: colors.green_light, borderColor: isClicked ? colors.white_alpha : 'transparent'}\n } else {\n if(isClicked) {\n buttonColor = {backgroundColor: colors.red_light, borderColor: isClicked ? colors.white_alpha : 'transparent'}\n }\n }\n }\n\n if(color) {\n buttonColor = {backgroundColor: color, borderColor: 'transparent'}\n }\n\n if(onPress) {\n if(hasBg) {\n if(subtitle) {\n return (\n <TouchableOpacity onPress={onPress} style={[styles.button, styles.noPadding, buttonColor, planeButton, noBorderButton, isHalf]}>\n <ImageBackground source={bgImage} style={styles.buttonBg}>\n <Text style={[styles.text, styles.buttonPadding, buttonBig, hasShadow ? styles.shadow : '', {fontWeight: \"500\"}]}>{text}</Text>\n <Text style={[styles.subtitle, styles.buttonPadding, hasShadow ? styles.shadow : '']}>{subtitle}</Text>\n </ImageBackground>\n </TouchableOpacity>\n )\n } else {\n return (\n <TouchableOpacity onPress={onPress} style={[styles.button, styles.noPadding, buttonColor, planeButton, noBorderButton, isHalf]}>\n <ImageBackground source={bgImage} style={styles.buttonBg}>\n <Text style={[styles.text, styles.buttonPadding, buttonBig, hasShadow ? styles.shadow : '']}>{text}</Text>\n </ImageBackground>\n </TouchableOpacity>\n )\n }\n } else {\n if(subtitle) {\n return (\n <TouchableOpacity onPress={onPress} style={[styles.button, buttonColor, planeButton, noBorderButton, isHalf]}>\n <Text style={[styles.text, styles.buttonPadding, buttonBig, hasShadow ? styles.shadow : '', {fontWeight: \"500\"}]}>{text}</Text>\n <Text style={[styles.subtitle, styles.buttonPadding, hasShadow ? styles.shadow : '']}>{subtitle}</Text>\n </TouchableOpacity>\n )\n } else {\n return (\n <TouchableOpacity onPress={onPress} style={[styles.button, buttonColor, planeButton, noBorderButton, isHalf]}>\n <Text style={[styles.text, styles.buttonPadding, buttonBig, hasShadow ? styles.shadow : '']}>{text}</Text>\n </TouchableOpacity>\n )\n }\n }\n } else {\n if(subtitle) {\n return (\n <View style={[styles.button, buttonColor, planeButton, noBorderButton, isHalf]}>\n <Text style={[styles.text, styles.buttonPadding, buttonBig, hasShadow ? styles.shadow : ''], {fontWeight: \"500\"}}>{text}</Text>\n <Text style={[styles.subtitle, styles.buttonPadding, hasShadow ? styles.shadow : '']}>{subtitle}</Text>\n </View>\n )\n } else {\n return (\n <View style={[styles.button, buttonColor, planeButton, noBorderButton, isHalf]}>\n <Text style={[styles.text, styles.buttonPadding, buttonBig, hasShadow ? styles.shadow : '']}>{text}</Text>\n </View>\n )\n }\n }\n}\n\n\nexport const ButtonContainer = ({ children, isBoxed = false}) => {\n\n let boxedStyle = isBoxed ? {borderWidth: 2, borderColor: colors.white_alpha2} : {}\n\n return (\n <View style={[styles.buttonContainer, boxedStyle]}>{children}</View>\n )\n}\n","export const colors = {\n white: \"#fff\",\n white_alpha: \"rgba(255, 255, 255, 0.2)\",\n white_alpha2: \"rgba(255, 255, 255, 0.5)\",\n black: \"#000\",\n black_alpha: \"rgba(0, 0, 0, 0.1)\",\n purple: \"#8c0072\",\n purple_light: \"#a30085\",\n blue: \"#0080d0\",\n dark_blue: \"#0072be\",\n red: \"#af321e\",\n red_alpha: \"rgba(175, 50, 30, 0.9)\",\n red_light: \"#af5d44\",\n green: \"#28A125\",\n green_alpha: \"rgba(40, 160, 40, 0.9)\",\n green_light: \"#6cc155\",\n yellow: \"#e1ff3c\",\n yellow_alpha: \"rgba(225, 255, 60, 0.9)\",\n orange: \"#dd732d\",\n transparent: \"transparent\"\n}\n\nexport const texts = {\n quizzes: \"Seleziona un argomento\",\n section_quizzes: \"Quiz per argomento\",\n wrong_review: \"Rivedi domande sbagliate\",\n wrong_title: \"domande da rivedere\",\n section_quizzes_subtitle: \"Esercitati su argomenti specifici\",\n exam: \"Simulazione esame\",\n exam_simulation: \"30 domande in 30min\",\n exam_passed: \"Esame superato!\",\n exam_not_passed: \"Esame non superato!\",\n exam_needs_oral: \"Necessaria prova orale!\",\n corrects: \"Corrette\",\n wrongs: \"Sbagliate\",\n percentage: \"Percentuale\",\n points: \"Punti\",\n questions: \"Domande\",\n aerodynamics: \"Aerodinamica\",\n first_aid: \"Primo soccorso\",\n flight_safety: \"Sicurezza in volo\",\n instruments: \"Strumentazione\",\n legislation: \"Normativa e legislazione\",\n materials: \"Materiali\",\n meteorology: \"Meteorologia e aerologia\",\n physiopathology: \"Fisiopatologia del volo\",\n piloting_techniques: \"Tecniche di pilotaggio\",\n restart: \"Ricomincia!\",\n recap: \"Visualizza errori\",\n recapTitle: \"Riepilogo risposte sbagliate\",\n infoTitle: \"Informazioni App\",\n setupTitle: \"Impostazioni\",\n setupSubtitle: \"Configura le funzionalità dell'app\",\n dictionaryTitle: \"Terminologia\",\n dictionarySubtitle: \"Dizionario ICAO e abbreviazioni\",\n alphabethTitle: \"Alfabeto ICAO\",\n abbreviationsTitle: \"Abbreviazioni\",\n numbersTitle: \"Numeri ICAO\",\n version: \"Versione\",\n author: \"Autore\",\n exit: \"Esci\",\n save: \"Salva\",\n exitQuestion: \"Vuoi uscire dall'app?\",\n description: \"VDS Quiz è una applicazione che utilizza le 500 domande ufficiali dell'AeCI (Aero Club d'Italia), nella simulazione le domande vengono estrapolate seguendo lo schema ufficiale d'esame:\",\n source: \"PDF Domande ufficiali\",\n pdfLinkText: \"Fonte: AeCI (Aero Club d'Italia) \\\"500 Quiz\\\"\",\n pdfLink: \"http://www.aeci.it/upload/files/quiz_VDS-VL_2017.pdf\",\n legislation: \"Normativa e legislazione\",\n aerodynamics: \"Aerodinamica\",\n firstAid: \"Pronto soccorso\",\n physiopathology: \"Fisiopatologia del volo\",\n meteorology: \"Meteorologia e aerologia\",\n instruments: \"Strumenti\",\n pilotingTechniques: \"Tecnica di pilotaggio\",\n materials: \"Materiali\",\n flightSafety: \"Sicurezza del volo\",\n examScheme: \"Schema domande d'esame\",\n setupScheme: \"Configurazione dell'applicazione\",\n setupRandomCheck: \"Visualizza le domande per argomento in ordine casuale\",\n setupExcludeDelta: \"Escludi le domande relative all'esame per deltaplano\",\n resultsScheme: \"Calcolo risultati\",\n true: \"Vero\",\n false: \"Falso\",\n trueFalse: \"Test Vero/Falso\",\n trueFalseSubtitle: \"10 domande casuali con risposte Vero/Falso\",\n goToQuestion: \"Seleziona ad una domanda specifica...\",\n changeQuestion: \"Cambia domanda...\",\n lens: \"\\uD83D\\uDD0D\"\n}\n\nexport const examScheme = [\n {section: \"aerodynamics\", questions: 8, points: 3},\n {section: \"firstAid\", questions: 1, points: 2},\n {section: \"flightSafety\", questions: 3, points: 4},\n {section: \"instruments\", questions: 1, points: 2},\n {section: \"legislation\", questions: 4, points: 3},\n {section: \"materials\", questions: 1, points: 2},\n {section: \"meteorology\", questions: 6, points: 4},\n {section: \"physiopathology\", questions: 1, points: 2},\n {section: \"pilotingTechniques\", questions: 5, points: 4}\n]\n/*\nexport const examScheme = [\n {section: \"aerodynamics\", questions: 1, points: 3},\n {section: \"firstAid\", questions: 1, points: 2},\n {section: \"flightSafety\", questions: 1, points: 4},\n {section: \"instruments\", questions: 1, points: 2}\n]\n*/\n\nexport const resultsScheme = [\n {points: \"da 86 a 100 punti\", result: \"idoneo\"},\n {points: \"da 80 a 85 punti\", result: \"idoneo con superamento di una verifica orale, riguardante i quesiti errati\"},\n {points: \"inferiore a 80 punti\", result: \"non idoneo\"}\n]\n\n\nexport const credentials = {\n adMobUnitIDTest: \"ca-app-pub-3940256099942544/6300978111\",\n adMobUnitID: \"ca-app-pub-4145771316565790/1848957462\",\n adMobUnitIDFooter: \"ca-app-pub-4145771316565790/9810834234\"\n}\n","","import React from \"react\"\nimport { View, StyleSheet, StatusBar, Text, Dimensions } from \"react-native\"\n//import { AdMobBanner, AdMobInterstitial, PublisherBanner, AdMobRewarded } from \"expo-ads-admob\"\n\nimport { colors, texts, credentials } from \"./Variables\"\n\nimport { BannerAd, BannerAdSize, TestIds } from 'react-native-google-mobile-ads';\n\nconst adUnitId = __DEV__ ? TestIds.INTERSTITIAL : 'ca-app-pub-4145771316565790~1876877627';\n/*\n<BannerAd\n unitId={adUnitId}\n size={BannerAdSize.FULL_BANNER}\n requestOptions={{\n requestNonPersonalizedAdsOnly: true,\n }}\n />\n */\nconst screen = Dimensions.get(\"window\")\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: colors.yellow,\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n title: {\n color: colors.white,\n fontSize: 25,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingVertical: 20\n },\n banner: {\n width: \"100%\",\n height: \"100%\",\n marginVertical: 20\n },\n})\n\nexport const Banner = () => {\n\n return (\n <View style={styles.container}>\n <Text>BANNER...</Text>\n\n </View>\n )\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { version } from './version';\n\n// import { SDK_VERSION } from 'react-native-google-mobile-ads';\nexport const SDK_VERSION = version;\n\nexport { default, MobileAds } from './MobileAds';\nexport { AdsConsentDebugGeography } from './AdsConsentDebugGeography';\nexport { AdsConsentPurposes } from './AdsConsentPurposes';\nexport { AdsConsentSpecialFeatures } from './AdsConsentSpecialFeatures';\nexport { AdsConsentStatus } from './AdsConsentStatus';\nexport { MaxAdContentRating } from './MaxAdContentRating';\nexport { TestIds } from './TestIds';\nexport { AdEventType } from './AdEventType';\nexport { BannerAdSize } from './BannerAdSize';\nexport { GAMAdEventType } from './GAMAdEventType';\nexport { RewardedAdEventType } from './RewardedAdEventType';\nexport { AdsConsent } from './AdsConsent';\nexport { AppOpenAd } from './ads/AppOpenAd';\nexport { InterstitialAd } from './ads/InterstitialAd';\nexport { RewardedAd } from './ads/RewardedAd';\nexport { RewardedInterstitialAd } from './ads/RewardedInterstitialAd';\nexport { BannerAd } from './ads/BannerAd';\nexport { GAMBannerAd } from './ads/GAMBannerAd';\nexport { GAMInterstitialAd } from './ads/GAMInterstitialAd';\nexport { useAppOpenAd } from './hooks/useAppOpenAd';\nexport { useInterstitialAd } from './hooks/useInterstitialAd';\nexport { useRewardedAd } from './hooks/useRewardedAd';\nexport { useRewardedInterstitialAd } from './hooks/useRewardedInterstitialAd';\nexport * from './types';\n","// Generated by genversion.\nexport const version = '10.0.0';\n","import { Module } from './internal';\nimport { validateAdRequestConfiguration } from './validateAdRequestConfiguration';\nimport { version } from './version';\nimport { MobileAdsModuleInterface } from './types/MobileAdsModule.interface';\nimport { RequestConfiguration } from './types/RequestConfiguration';\nimport { App, Config } from './types/Module.interface';\n\nconst namespace = 'google_mobile_ads';\n\nconst nativeModuleName = [\n 'RNGoogleMobileAdsModule',\n 'RNGoogleMobileAdsAppOpenModule',\n 'RNGoogleMobileAdsInterstitialModule',\n 'RNGoogleMobileAdsRewardedModule',\n 'RNGoogleMobileAdsRewardedInterstitialModule',\n];\n\ntype Event = {\n adUnitId: string;\n requestId: number;\n};\n\nclass MobileAdsModule extends Module implements MobileAdsModuleInterface {\n constructor(app: App, config: Config) {\n super(app, config);\n\n this.emitter.addListener('google_mobile_ads_app_open_event', (event: Event) => {\n this.emitter.emit(\n `google_mobile_ads_app_open_event:${event.adUnitId}:${event.requestId}`,\n event,\n );\n });\n\n this.emitter.addListener('google_mobile_ads_interstitial_event', (event: Event) => {\n this.emitter.emit(\n `google_mobile_ads_interstitial_event:${event.adUnitId}:${event.requestId}`,\n event,\n );\n });\n\n this.emitter.addListener('google_mobile_ads_rewarded_event', (event: Event) => {\n this.emitter.emit(\n `google_mobile_ads_rewarded_event:${event.adUnitId}:${event.requestId}`,\n event,\n );\n });\n\n this.emitter.addListener('google_mobile_ads_rewarded_interstitial_event', (event: Event) => {\n this.emitter.emit(\n `google_mobile_ads_rewarded_interstitial_event:${event.adUnitId}:${event.requestId}`,\n event,\n );\n });\n }\n\n initialize() {\n return this.native.initialize();\n }\n\n setRequestConfiguration(requestConfiguration: RequestConfiguration) {\n let config;\n try {\n config = validateAdRequestConfiguration(requestConfiguration);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`googleMobileAds.setRequestConfiguration(*) ${e.message}`);\n }\n }\n\n return this.native.setRequestConfiguration(config);\n }\n\n openAdInspector() {\n return this.native.openAdInspector();\n }\n}\n\nconst MobileAdsInstance = new MobileAdsModule(\n { name: 'AppName' },\n {\n version,\n namespace,\n nativeModuleName,\n nativeEvents: [\n 'google_mobile_ads_app_open_event',\n 'google_mobile_ads_interstitial_event',\n 'google_mobile_ads_rewarded_event',\n 'google_mobile_ads_rewarded_interstitial_event',\n ],\n },\n);\n\nexport const MobileAds = () => {\n return MobileAdsInstance;\n};\n\nexport default MobileAds;\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport { AppModule as Module } from './Module';\nexport { NativeError } from './NativeError';\nexport * from './registry/nativeModule';\nexport { SharedEventEmitter } from './SharedEventEmitter';\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { getNativeModule } from './registry/nativeModule';\nimport { SharedEventEmitter } from './SharedEventEmitter';\nimport { App, Config } from '../types/Module.interface';\nimport { GoogleMobileAdsNativeModule } from '../types/GoogleMobileAdsNativeModule';\n\nexport class AppModule {\n _app: App;\n _nativeModule: unknown;\n _config: Config;\n\n static __extended__ = {};\n\n constructor(app: App, config: Config) {\n this._app = app;\n this._nativeModule = null;\n this._config = Object.assign({}, config);\n }\n\n get app() {\n return this._app;\n }\n\n get emitter() {\n return SharedEventEmitter;\n }\n\n eventNameForApp(...args: string[]) {\n return `${this.app.name}-${args.join('-')}`;\n }\n\n get native() {\n if (this._nativeModule) {\n return this._nativeModule as GoogleMobileAdsNativeModule;\n }\n this._nativeModule = getNativeModule(this);\n return this._nativeModule as GoogleMobileAdsNativeModule;\n }\n}\n\n// Instance of checks don't work once compiled\nAppModule.__extended__ = {};\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { NativeModules, Platform } from 'react-native';\nimport { NativeError } from '../NativeError';\nimport { GoogleMobileAdsNativeEventEmitter } from '../GoogleMobileAdsNativeEventEmitter';\nimport { SharedEventEmitter } from '../SharedEventEmitter';\nimport { isFunction } from '../../common';\nimport { ModuleInterface } from '../../types/Module.interface';\n\nconst NATIVE_MODULE_REGISTRY: Record<string, unknown> = {};\nconst NATIVE_MODULE_EVENT_SUBSCRIPTIONS: Record<string, unknown> = {};\n\nfunction nativeModuleKey(module: ModuleInterface) {\n return `${module._customUrlOrRegion || ''}:${module.app.name}:${module._config.namespace}`;\n}\n\n/**\n * Wraps a native module method to provide\n * auto prepended args and custom Error classes.\n *\n * @param namespace\n * @param method\n * @param argToPrepend\n * @returns {Function}\n */\nfunction nativeModuleMethodWrapped(\n namespace: string,\n method: (...args: unknown[]) => Promise<unknown> | void,\n argToPrepend: [],\n) {\n return (...args: []) => {\n const possiblePromise = method(...[...argToPrepend, ...args]);\n\n // @ts-ignore -- return type is Promise, so tsc infers we *know* it is a promise and .then always exists, but\n // but the typing is actually speculative, we do need to test it\n if (possiblePromise && possiblePromise.then) {\n const jsStack = new Error().stack || '';\n return possiblePromise.catch(nativeError =>\n Promise.reject(new NativeError(nativeError, jsStack, namespace)),\n );\n }\n\n return possiblePromise;\n };\n}\n\n/**\n * Prepends all arguments in prependArgs to all native method calls\n *\n * @param namespace\n * @param NativeModule\n * @param argToPrepend\n */\nfunction nativeModuleWrapped(\n namespace: string,\n NativeModule: Record<string, (...args: unknown[]) => Promise<unknown> | void>,\n argToPrepend: [],\n) {\n const native: Record<string, unknown> = {};\n if (!NativeModule) {\n return NativeModule;\n }\n\n const properties = Object.keys(NativeModule);\n\n for (let i = 0, len = properties.length; i < len; i++) {\n const property = properties[i];\n if (isFunction(NativeModule[property])) {\n native[property] = nativeModuleMethodWrapped(namespace, NativeModule[property], argToPrepend);\n } else {\n native[property] = NativeModule[property];\n }\n }\n\n return native;\n}\n\n/**\n * Initialises and wraps all the native module methods.\n *\n * @param module\n * @returns {*}\n */\nfunction initialiseNativeModule(module: ModuleInterface) {\n const config = module._config;\n const key = nativeModuleKey(module);\n const { namespace, nativeEvents, nativeModuleName } = config;\n const multiModuleRoot: Record<string, unknown> = {};\n const multiModule = Array.isArray(nativeModuleName);\n const nativeModuleNames = multiModule ? nativeModuleName : [nativeModuleName];\n\n for (let i = 0; i < nativeModuleNames.length; i++) {\n const nativeModule = NativeModules[nativeModuleNames[i]];\n\n // only error if there's a single native module\n // as multi modules can mean some are optional\n if (!multiModule && !nativeModule) {\n throw new Error(getMissingModuleHelpText(namespace));\n }\n\n if (multiModule) {\n multiModuleRoot[nativeModuleNames[i]] = !!nativeModule;\n }\n\n Object.assign(multiModuleRoot, nativeModuleWrapped(namespace, nativeModule, []));\n }\n\n if (nativeEvents && nativeEvents.length) {\n for (let i = 0, len = nativeEvents.length; i < len; i++) {\n subscribeToNativeModuleEvent(nativeEvents[i]);\n }\n }\n\n Object.freeze(multiModuleRoot);\n\n NATIVE_MODULE_REGISTRY[key] = multiModuleRoot;\n\n return NATIVE_MODULE_REGISTRY[key];\n}\n\n/**\n * Subscribe to a native event for js side distribution by appName\n * React Native events are hard set at compile - cant do dynamic event names\n * so we use a single event send it to js and js then internally can prefix it\n * and distribute dynamically.\n *\n * @param eventName\n * @private\n */\nfunction subscribeToNativeModuleEvent(eventName: string) {\n if (!NATIVE_MODULE_EVENT_SUBSCRIPTIONS[eventName]) {\n GoogleMobileAdsNativeEventEmitter.addListener(eventName, event => {\n if (event.appName) {\n // native event has an appName property - auto prefix and internally emit\n SharedEventEmitter.emit(`${event.appName}-${eventName}`, event);\n } else {\n // standard event - no need to prefix\n SharedEventEmitter.emit(eventName, event);\n }\n });\n\n NATIVE_MODULE_EVENT_SUBSCRIPTIONS[eventName] = true;\n }\n}\n\n/**\n * Help text for integrating the native counter parts for each module.\n *\n * @param namespace\n * @returns {string}\n */\nfunction getMissingModuleHelpText(namespace: string) {\n const snippet = `${namespace}()`;\n const nativeModule = namespace.charAt(0).toUpperCase() + namespace.slice(1);\n\n if (Platform.OS === 'ios') {\n return (\n `You attempted to use a module that's not installed natively on your iOS project by calling ${snippet}.` +\n '\\r\\n\\r\\nEnsure you have either linked the module or added it to your projects Podfile.' +\n '\\r\\n\\r\\nSee http://invertase.link/ios for full setup instructions.'\n );\n }\n\n const rnPackage = `'io.invertase.${namespace}.ReactNative${nativeModule}Package'`;\n const newInstance = `'new ReactNative${nativeModule}Package()'`;\n\n return (\n `You attempted to use a module that's not installed on your Android project by calling ${snippet}.` +\n `\\r\\n\\r\\nEnsure you have:\\r\\n\\r\\n1) imported the ${rnPackage} module in your 'MainApplication.java' file.\\r\\n\\r\\n2) Added the ` +\n `${newInstance} line inside of the RN 'getPackages()' method list.` +\n '\\r\\n\\r\\nSee http://invertase.link/android for full setup instructions.'\n );\n}\n\n/**\n * Gets a wrapped native module instance for the provided module.\n * Will attempt to create a new instance if non previously created.\n *\n * @param module\n * @returns {*}\n */\nexport function getNativeModule(module: ModuleInterface) {\n const key = nativeModuleKey(module);\n\n if (NATIVE_MODULE_REGISTRY[key]) {\n return NATIVE_MODULE_REGISTRY[key];\n }\n\n return initialiseNativeModule(module);\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport class NativeError extends Error {\n namespace: string;\n code: string;\n message: string;\n jsStack: string;\n userInfo: { code: string; message: string };\n\n static fromEvent(\n errorEvent: { code: string; message: string },\n namespace: string,\n stack?: string,\n ) {\n return new NativeError({ userInfo: errorEvent }, stack || new Error().stack || '', namespace);\n }\n\n constructor(\n nativeError: { userInfo: { code: string; message: string } },\n jsStack: string,\n namespace: string,\n ) {\n super();\n const { userInfo } = nativeError;\n this.namespace = namespace;\n this.code = `${this.namespace}/${userInfo.code || 'unknown'}`;\n this.message = `[${this.code}] ${userInfo.message}`;\n this.jsStack = jsStack;\n this.userInfo = userInfo;\n this.stack = NativeError.getStackWithMessage(`NativeError: ${this.message}`, this.jsStack);\n }\n\n /**\n * Build a stack trace that includes JS stack prior to calling the native method.\n *\n * @returns {string}\n */\n static getStackWithMessage(message: string, jsStack: string) {\n return [message, ...jsStack.split('\\n').slice(2, 13)].join('\\n');\n }\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { NativeEventEmitter, NativeModules, EmitterSubscription } from 'react-native';\n\nconst { RNAppModule } = NativeModules;\n\nclass GANativeEventEmitter extends NativeEventEmitter {\n ready: boolean;\n\n constructor() {\n super(RNAppModule);\n this.ready = false;\n }\n\n addListener(\n eventType: string,\n listener: (event: { appName?: string }) => void,\n context?: Record<string, unknown>,\n ) {\n if (!this.ready) {\n RNAppModule.eventsNotifyReady(true);\n this.ready = true;\n }\n RNAppModule.eventsAddListener(eventType);\n\n const subscription = super.addListener(`rnapp_${eventType}`, listener, context);\n\n // React Native 0.65+ altered EventEmitter:\n // - removeSubscription is gone\n // - addListener returns an unsubscriber instead of a more complex object with eventType etc\n\n // make sure eventType for backwards compatibility just in case\n subscription.eventType = `rnapp_${eventType}`;\n\n // New style is to return a remove function on the object, just in csae people call that,\n // we will modify it to do our native unsubscription then call the original\n const originalRemove = subscription.remove;\n const newRemove = () => {\n RNAppModule.eventsRemoveListener(eventType, false);\n if (super.removeSubscription != null) {\n // This is for RN <= 0.64 - 65 and greater no longer have removeSubscription\n super.removeSubscription(subscription);\n } else if (originalRemove != null) {\n // This is for RN >= 0.65\n originalRemove();\n }\n };\n subscription.remove = newRemove;\n return subscription;\n }\n\n removeAllListeners(eventType: string) {\n RNAppModule.eventsRemoveListener(eventType, true);\n super.removeAllListeners(`rnapp_${eventType}`);\n }\n\n // This is likely no longer ever called, but it is here for backwards compatibility with RN <= 0.64\n removeSubscription(subscription: EmitterSubscription) {\n RNAppModule.eventsRemoveListener(subscription.eventType.replace('rnapp_', ''), false);\n if (super.removeSubscription != null) {\n super.removeSubscription(subscription);\n }\n }\n}\n\nexport const GoogleMobileAdsNativeEventEmitter = new GANativeEventEmitter();\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n// @ts-ignore: Could not find a declaration file\nimport Emitter from 'react-native/Libraries/vendor/emitter/EventEmitter';\nimport { EventEmitter } from 'react-native';\n\nexport const SharedEventEmitter: EventEmitter = new Emitter();\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { Platform } from 'react-native';\nimport * as Base64 from './Base64';\nimport { isString, isUndefined } from './validate';\n\nexport * from './id';\nexport * from './path';\nexport * from './promise';\nexport * from './validate';\n\nexport { Base64 };\nexport { ReferenceBase } from './ReferenceBase';\n\nexport function getDataUrlParts(dataUrlString: string) {\n const isBase64 = dataUrlString.includes(';base64');\n let [mediaType, base64String] = dataUrlString.split(',');\n if (!mediaType || !base64String) {\n return { base64String: undefined, mediaType: undefined };\n }\n mediaType = mediaType.replace('data:', '').replace(';base64', '');\n if (base64String && base64String.includes('%')) {\n base64String = decodeURIComponent(base64String);\n }\n if (!isBase64) {\n base64String = Base64.btoa(base64String);\n }\n return { base64String, mediaType };\n}\n\nexport function once<T>(fn: () => void, context: unknown): (this: T, ...args: []) => void {\n let onceResult: unknown;\n let ranOnce = false;\n\n return function onceInner(...args: []) {\n if (!ranOnce) {\n ranOnce = true;\n onceResult = fn.apply(context || this, args);\n }\n\n return onceResult;\n };\n}\n\nexport function isError(value: unknown) {\n if (Object.prototype.toString.call(value) === '[object Error]') {\n return true;\n }\n\n return value instanceof Error;\n}\n\nexport function hasOwnProperty(target: unknown, property: PropertyKey) {\n return Object.hasOwnProperty.call(target, property);\n}\n\nexport function isPropertySet(target: unknown, property: PropertyKey) {\n return (\n hasOwnProperty(target, property) &&\n !isUndefined((target as Record<PropertyKey, unknown>)[property])\n );\n}\n\n/**\n * Remove a trailing forward slash from a string if it exists\n *\n * @param string\n * @returns {*}\n */\nexport function stripTrailingSlash(string: string) {\n if (!isString(string)) {\n return string;\n }\n return string.endsWith('/') ? string.slice(0, -1) : string;\n}\n\nexport const isIOS = Platform.OS === 'ios';\n\nexport const isAndroid = Platform.OS === 'android';\n\nexport function tryJSONParse(string: string) {\n try {\n return string && JSON.parse(string);\n } catch (jsonError) {\n return string;\n }\n}\n\nexport function tryJSONStringify(data: unknown) {\n try {\n return JSON.stringify(data);\n } catch (jsonError) {\n return null;\n }\n}\n","/* eslint-disable no-bitwise */\n/* global Blob, FileReader */\n/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport binaryToBase64 from 'react-native/Libraries/Utilities/binaryToBase64';\nimport { promiseDefer } from './promise';\n\nconst CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n/**\n * window.btoa\n */\nexport function btoa(input: string) {\n let map;\n let i = 0;\n let block = 0;\n let output = '';\n\n for (\n block = 0, i = 0, map = CHARS;\n input.charAt(i | 0) || ((map = '='), i % 1);\n output += map.charAt(63 & (block >> (8 - (i % 1) * 8)))\n ) {\n const charCode = input.charCodeAt((i += 3 / 4));\n\n if (charCode > 0xff) {\n throw new Error(\n \"'RNFirebase.Base64.btoa' failed: The string to be encoded contains characters outside of the Latin1 range.\",\n );\n }\n\n block = (block << 8) | charCode;\n }\n\n return output;\n}\n\n/**\n * window.atob\n */\nexport function atob(input: string) {\n let i = 0;\n let bc = 0;\n let bs = 0;\n let buffer;\n let output = '';\n\n const str = input.replace(/[=]+$/, '');\n\n if (str.length % 4 === 1) {\n throw new Error(\n \"'RNFirebase.Base64.atob' failed: The string to be decoded is not correctly encoded.\",\n );\n }\n\n for (\n bc = 0, bs = 0, i = 0;\n (buffer = str.charAt(i++));\n ~buffer && ((bs = bc % 4 ? bs * 64 + buffer : buffer), bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n buffer = CHARS.indexOf(buffer);\n }\n\n return output;\n}\n\n/**\n * Converts a Blob, ArrayBuffer or Uint8Array to a base64 string.\n */\nexport function fromData(data: Blob | ArrayBuffer | Uint8Array) {\n if (data instanceof Blob) {\n const fileReader = new FileReader();\n const { resolve, reject, promise } = promiseDefer();\n\n fileReader.readAsDataURL(data);\n\n fileReader.onloadend = function onloadend() {\n resolve({ string: fileReader.result, format: 'data_url' });\n };\n\n fileReader.onerror = function onerror(event) {\n fileReader.abort();\n reject(event);\n };\n\n return promise;\n }\n\n if (data instanceof ArrayBuffer || data instanceof Uint8Array) {\n return Promise.resolve({\n string: binaryToBase64(data),\n format: 'base64',\n });\n }\n\n throw new Error(\"'RNFirebase.Base64.fromData' failed: Unknown data type.\");\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isFunction } from './validate';\n\n/**\n *\n */\nexport function promiseDefer() {\n const deferred: {\n promise: Promise<unknown> | null;\n resolve: (value: unknown) => void;\n reject: (value: unknown) => void;\n } = { promise: null, resolve: () => {}, reject: () => {} };\n\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n\n return deferred;\n}\n\n/**\n * @param promise\n * @param callback\n */\nexport function promiseWithOptionalCallback(\n promise: Promise<unknown>,\n callback: (a: unknown, b?: unknown) => void,\n) {\n if (!isFunction(callback)) {\n return promise;\n }\n\n return promise\n .then(result => {\n if (callback && callback.length === 1) {\n callback(null);\n } else if (callback) {\n callback(null, result);\n }\n\n return result;\n })\n .catch(error => {\n if (callback) {\n callback(error);\n }\n return Promise.reject(error);\n });\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { Platform } from 'react-native';\n\nconst AlphaNumericUnderscore = /^[a-zA-Z0-9_]+$/;\n\nexport function objectKeyValuesAreStrings(object: Record<string, unknown>) {\n if (!isObject(object)) {\n return false;\n }\n\n const entries = Object.entries(object);\n\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i];\n if (!isString(key) || !isString(value)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Simple is null check.\n *\n * @param value\n * @returns {boolean}\n */\nexport function isNull(value: unknown) {\n return value === null;\n}\n\n/**\n * Simple is object check.\n *\n * @param value\n * @returns {boolean}\n */\nexport function isObject(value: unknown) {\n return value ? typeof value === 'object' && !Array.isArray(value) && !isNull(value) : false;\n}\n\n/**\n * Simple is date check\n * https://stackoverflow.com/a/44198641\n * @param value\n * @returns {boolean}\n */\nexport function isDate(value: number) {\n // use the global isNaN() and not Number.isNaN() since it will validate an Invalid Date\n return value && Object.prototype.toString.call(value) === '[object Date]' && !isNaN(value);\n}\n\n/**\n * Simple is function check\n *\n * @param value\n * @returns {*|boolean}\n */\nexport function isFunction(value: unknown) {\n return value ? typeof value === 'function' : false;\n}\n\n/**\n * Simple is string check\n * @param value\n * @return {boolean}\n */\nexport function isString(value: unknown) {\n return typeof value === 'string';\n}\n\n/**\n * Simple is number check\n * @param value\n * @return {boolean}\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n\n/**\n * Simple finite check\n * @param value\n * @returns {boolean}\n */\nexport function isFinite(value: unknown) {\n return Number.isFinite(value);\n}\n\n/**\n * Simple integer check\n * @param value\n * @returns {boolean}\n */\nexport function isInteger(value: unknown) {\n return Number.isInteger(value);\n}\n\n/**\n * Simple is boolean check\n *\n * @param value\n * @return {boolean}\n */\nexport function isBoolean(value: unknown) {\n return typeof value === 'boolean';\n}\n\n/**\n *\n * @param value\n * @returns {arg is Array<unknown>}\n */\nexport function isArray(value: unknown) {\n return Array.isArray(value);\n}\n\n/**\n *\n * @param value\n * @returns {boolean}\n */\nexport function isUndefined(value: unknown): value is undefined {\n return typeof value === 'undefined';\n}\n\n/**\n * /^[a-zA-Z0-9_]+$/\n *\n * @param value\n * @returns {boolean}\n */\nexport function isAlphaNumericUnderscore(value: string) {\n return AlphaNumericUnderscore.test(value);\n}\n\n/**\n * URL test\n * @param url\n * @returns {boolean}\n */\nconst IS_VALID_URL_REGEX = /^(http|https):\\/\\/[^ \"]+$/;\nexport function isValidUrl(url: string) {\n return IS_VALID_URL_REGEX.test(url);\n}\n\n/**\n * Array includes\n *\n * @param value\n * @param oneOf\n * @returns {boolean}\n */\nexport function isOneOf(value: unknown, oneOf: unknown[] = []) {\n if (!isArray(oneOf)) {\n return false;\n }\n return oneOf.includes(value);\n}\n\nexport function noop() {\n // noop-🐈\n}\n\nexport function validateOptionalNativeDependencyExists(\n firebaseJsonKey: string,\n apiName: string,\n nativeFnExists: boolean,\n) {\n if (nativeFnExists) {\n return;\n }\n let errorMessage =\n \"You attempted to use an optional API that's not enabled natively. \\n\\n To enable \";\n\n errorMessage += apiName;\n errorMessage += ` please set the 'react-native' -> '${firebaseJsonKey}' key to true in your firebase.json file`;\n\n if (Platform.OS === 'android') {\n errorMessage += ' and rebuild your Android app.';\n } else {\n errorMessage +=\n ', re-run pod install and rebuild your iOS app. ' +\n \"If you're not using Pods then make sure you've have downloaded the necessary Firebase iOS SDK dependencies for this API.\";\n }\n\n throw new Error(errorMessage);\n}\n","const PUSH_CHARS = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';\n\nconst AUTO_ID_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n// timestamp of last push, used to prevent local collisions if you push twice in one ms.\nlet lastPushTime = 0;\n\n// we generate 72-bits of randomness which get turned into 12 characters and appended to the\n// timestamp to prevent collisions with other clients. We store the last characters we\n// generated because in the event of a collision, we'll use those same characters except\n// \"incremented\" by one.\nconst lastRandChars: number[] = [];\n\n/**\n * Generate a firebase id - for use with ref().push(val, cb) - e.g. -KXMr7k2tXUFQqiaZRY4'\n * @param serverTimeOffset - pass in server time offset from native side\n * @returns {string}\n */\nexport function generateDatabaseId(serverTimeOffset = 0) {\n const timeStampChars = new Array(8);\n let now = new Date().getTime() + serverTimeOffset;\n const duplicateTime = now === lastPushTime;\n\n lastPushTime = now;\n\n for (let i = 7; i >= 0; i -= 1) {\n timeStampChars[i] = PUSH_CHARS.charAt(now % 64);\n now = Math.floor(now / 64);\n }\n\n if (now !== 0) {\n throw new Error('We should have converted the entire timestamp.');\n }\n\n let id = timeStampChars.join('');\n\n if (!duplicateTime) {\n for (let i = 0; i < 12; i += 1) {\n lastRandChars[i] = Math.floor(Math.random() * 64);\n }\n } else {\n // if the timestamp hasn't changed since last push,\n // use the same random number, but increment it by 1.\n let i;\n for (i = 11; i >= 0 && lastRandChars[i] === 63; i -= 1) {\n lastRandChars[i] = 0;\n }\n\n lastRandChars[i] += 1;\n }\n\n for (let i = 0; i < 12; i++) {\n id += PUSH_CHARS.charAt(lastRandChars[i]);\n }\n\n if (id.length !== 20) {\n throw new Error('Length should be 20.');\n }\n\n return id;\n}\n\n/**\n * Generate a firestore auto id for use with collection/document .add()\n * @return {string}\n */\nexport function generateFirestoreId() {\n let autoId = '';\n\n for (let i = 0; i < 20; i++) {\n autoId += AUTO_ID_CHARS.charAt(Math.floor(Math.random() * AUTO_ID_CHARS.length));\n }\n return autoId;\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n/**\n * Returns the next parent of the path e.g. /foo/bar/car -> /foo/bar\n */\nexport function pathParent(path: string) {\n if (path.length === 0) {\n return null;\n }\n\n const index = path.lastIndexOf('/');\n if (index <= 0) {\n return null;\n }\n\n return path.slice(0, index);\n}\n\n/**\n * Joins a parent and a child path\n */\nexport function pathChild(path: string, childPath: string) {\n const canonicalChildPath = pathPieces(childPath).join('/');\n\n if (path.length === 0) {\n return canonicalChildPath;\n }\n\n return `${path}/${canonicalChildPath}`;\n}\n\n/**\n * Returns the last component of a path, e.g /foo/bar.jpeg -> bar.jpeg\n */\nexport function pathLastComponent(path: string) {\n const index = path.lastIndexOf('/', path.length - 2);\n if (index === -1) {\n return path;\n }\n\n return path.slice(index + 1);\n}\n\n/**\n * Returns all none empty pieces of the path\n * @param path\n * @returns {*}\n */\nexport function pathPieces(path: string) {\n return path.split('/').filter($ => $.length > 0);\n}\n\n/**\n * Returns whether a given path is empty\n * @param path\n * @returns {boolean}\n */\nexport function pathIsEmpty(path: string) {\n return !pathPieces(path).length;\n}\n\n/**\n * Converts a given path to a URL encoded string\n * @param path\n * @returns {string|string}\n */\nexport function pathToUrlEncodedString(path: string) {\n const pieces = pathPieces(path);\n let pathString = '';\n for (let i = 0; i < pieces.length; i++) {\n pathString += `/${encodeURIComponent(String(pieces[i]))}`;\n }\n return pathString || '/';\n}\n\n// eslint-disable-next-line no-control-regex\nexport const INVALID_PATH_REGEX = /[[\\].#$\\u0000-\\u001F\\u007F]/;\n\n/**\n * Ensures a given path is a valid Firebase path\n * @param path\n * @returns {boolean}\n */\nexport function isValidPath(path: unknown) {\n return typeof path === 'string' && path.length !== 0 && !INVALID_PATH_REGEX.test(path);\n}\n\n/**\n * Converts a file path to a standardized string path\n * @param path\n * @returns {*}\n */\nexport function toFilePath(path: string) {\n let _filePath = path.replace('file://', '');\n if (_filePath.includes('%')) {\n _filePath = decodeURIComponent(_filePath);\n }\n return _filePath;\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport class ReferenceBase {\n path: string;\n\n constructor(_path: string) {\n let path = _path;\n\n if (path) {\n path = path.length > 1 && path.endsWith('/') ? path.substring(0, path.length - 1) : path;\n if (path.startsWith('/') && path.length > 1) {\n path = path.substring(1, path.length);\n }\n } else {\n path = '/';\n }\n\n this.path = path;\n }\n\n /**\n * The last part of a Reference's path (after the last '/')\n * The key of a root Reference is null.\n * @type {String}\n * {@link https://firebase.google.com/docs/reference/js/firebase.database.Reference#key}\n */\n get key() {\n return this.path === '/' ? null : this.path.substring(this.path.lastIndexOf('/') + 1);\n }\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isPropertySet, isArray, isBoolean, isObject } from './common';\nimport { MaxAdContentRating } from './MaxAdContentRating';\nimport { RequestConfiguration } from './types/RequestConfiguration';\n\nexport function validateAdRequestConfiguration(requestConfiguration: RequestConfiguration) {\n const out: RequestConfiguration = {};\n\n if (!isObject(requestConfiguration)) {\n throw new Error(\"'requestConfiguration' expected an object value\");\n }\n\n if (requestConfiguration.maxAdContentRating) {\n if (\n requestConfiguration.maxAdContentRating !== MaxAdContentRating.G &&\n requestConfiguration.maxAdContentRating !== MaxAdContentRating.PG &&\n requestConfiguration.maxAdContentRating !== MaxAdContentRating.T &&\n requestConfiguration.maxAdContentRating !== MaxAdContentRating.MA\n ) {\n throw new Error(\n \"'requestConfiguration.maxAdContentRating' expected on of MaxAdContentRating.G, MaxAdContentRating.PG, MaxAdContentRating.T or MaxAdContentRating.MA\",\n );\n }\n\n out.maxAdContentRating = requestConfiguration.maxAdContentRating;\n }\n\n if (isPropertySet(requestConfiguration, 'tagForChildDirectedTreatment')) {\n if (!isBoolean(requestConfiguration.tagForChildDirectedTreatment)) {\n throw new Error(\n \"'requestConfiguration.tagForChildDirectedTreatment' expected a boolean value\",\n );\n }\n\n out.tagForChildDirectedTreatment = requestConfiguration.tagForChildDirectedTreatment;\n }\n\n if (isPropertySet(requestConfiguration, 'tagForUnderAgeOfConsent')) {\n if (!isBoolean(requestConfiguration.tagForUnderAgeOfConsent)) {\n throw new Error(\"'requestConfiguration.tagForUnderAgeOfConsent' expected a boolean value\");\n }\n\n out.tagForUnderAgeOfConsent = requestConfiguration.tagForUnderAgeOfConsent;\n }\n\n if (isPropertySet(requestConfiguration, 'testDeviceIdentifiers')) {\n if (!isArray(requestConfiguration.testDeviceIdentifiers)) {\n throw new Error(\"'requestConfiguration.testDeviceIdentifiers' expected an array value\");\n }\n\n out.testDeviceIdentifiers = requestConfiguration.testDeviceIdentifiers;\n }\n\n return out;\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport enum MaxAdContentRating {\n /**\n * \"General audiences.\" Content suitable for all audiences, including families and children.\n */\n G = 'G',\n\n /**\n * \"Parental guidance.\" Content suitable for most audiences with parental guidance, including topics like non-realistic, cartoonish violence.\n */\n PG = 'PG',\n\n /**\n * T: \"Teen.\" Content suitable for teen and older audiences, including topics such as general health, social networks, scary imagery, and fight sports.\n */\n T = 'T',\n\n /**\n * \"Mature audiences.\" Content suitable only for mature audiences; includes topics such as alcohol, gambling, sexual content, and weapons.\n */\n MA = 'MA',\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n/**\n * AdsConsentDebugGeography enum.\n *\n * Used to set a mock location when testing the `AdsConsent` helper.\n */\nexport enum AdsConsentDebugGeography {\n /**\n * Disable any debug geography.\n */\n DISABLED = 0,\n\n /**\n * Sets the location to within the EEA.\n */\n EEA = 1,\n\n /**\n * Sets the location to outside of the EEA.\n */\n NOT_EEA = 2,\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n *\n *\n * The definitions in this document are copied from IAB's global vendor list.\n *\n * https://vendor-list.consensu.org/v2/vendor-list.json\n * https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework\n *\n */\n\nexport enum AdsConsentPurposes {\n /**\n * Cookies, device identifiers, or other information can be stored or\n * accessed on your device for the purposes presented to you.\n *\n * Vendors can:\n * - Store and access information on the device such as cookies\n * and device identifiers presented to a user.\n */\n STORE_AND_ACCESS_INFORMATION_ON_DEVICE = 1,\n\n /**\n * Ads can be shown to you based on the content you’re viewing,\n * the app you’re using, your approximate location, or your device type.\n *\n * To do basic ad selection vendors can:\n * - Use real-time information about the context in which the ad will be shown,\n * to show the ad, including information about the content and the device, such as:\n * device type and capabilities, user agent, URL, IP address\n * - Use a user’s non-precise geolocation data\n * - Control the frequency of ads shown to a user.\n * - Sequence the order in which ads are shown to a user.\n * - Prevent an ad from serving in an unsuitable editorial (brand-unsafe) context\n *\n * Vendors cannot:\n * - Create a personalised ads profile using this information for the selection of\n * future ads without a separate legal basis to create a personalised ads profile.\n * - N.B. Non-precise means only an approximate location involving at least a radius\n * of 500 meters is permitted.\n */\n SELECT_BASIC_ADS = 2,\n\n /**\n * A profile can be built about you and your interests to show you personalised ads\n * that are relevant to you.\n *\n * To create a personalised ads profile vendors can:\n * - Collect information about a user, including a user's activity, interests,\n * demographic information, or location, to create or edit a user profile for use\n * in personalised advertising.\n * - Combine this information with other information previously collected,\n * including from across websites and apps, to create or edit a user profile\n * for use in personalised advertising.\n */\n CREATE_A_PERSONALISED_ADS_PROFILE = 3,\n\n /**\n * Personalised ads can be shown to you based on a profile about you.\n *\n * To select personalised ads vendors can:\n * - Select personalised ads based on a user profile or other historical user data,\n * including a user’s prior activity, interests, visits to sites or apps, location,\n * or demographic information.\n */\n SELECT_PERSONALISED_ADS = 4,\n\n /**\n * A profile can be built about you and your interests to show you personalised content\n * that is relevant to you.\n *\n * To create a personalised content profile vendors can:\n * - Collect information about a user, including a user's activity, interests, visits to\n * sites or apps, demographic information, or location, to create or edit a user profile\n * for personalising content.\n * - Combine this information with other information previously collected,\n * including from across websites and apps, to create or edit a user profile for use\n * in personalising content.\n */\n CREATE_A_PERSONALISED_CONTENT_PROFILE = 5,\n\n /**\n * Personalised content can be shown to you based on a profile about you.\n *\n * To select personalised content vendors can:\n * - Select personalised content based on a user profile or other historical user data,\n * including a user’s prior activity, interests, visits to sites or apps, location,\n * or demographic information.\n */\n SELECT_PERSONALISED_CONTENT = 6,\n\n /**\n * The performance and effectiveness of ads that you see or interact with can be measured.\n *\n * To measure ad performance vendors can:\n * - Measure whether and how ads were delivered to and interacted with by a user\n * - Provide reporting about ads including their effectiveness and performance\n * - Provide reporting about users who interacted with ads using data observed during\n * the course of the user's interaction with that ad\n * - Provide reporting to publishers about the ads displayed on their property\n * - Measure whether an ad is serving in a suitable editorial environment (brand-safe) context\n * - Determine the percentage of the ad that had the opportunity to be seen and\n * the duration of that opportunity\n * - Combine this information with other information previously collected,\n * including from across websites and apps\n *\n * Vendors cannot:\n * - Apply panel- or similarly-derived audience insights data to ad measurement data\n * without a Legal Basis to apply market research to generate audience insights (Purpose 9)\n */\n MEASURE_AD_PERFORMANCE = 7,\n\n /**\n * The performance and effectiveness of content that you see or interact with can be measured.\n *\n * To measure content performance vendors can:\n * - Measure and report on how content was delivered to and interacted with by users.\n * - Provide reporting, using directly measurable or known information, about users who\n * interacted with the content\n * - Combine this information with other information previously collected,\n * including from across websites and apps.\n *\n * Vendors cannot:\n * - Measure whether and how ads (including native ads) were delivered to and\n * interacted with by a user.\n * - Apply panel- or similarly derived audience insights data to ad measurement\n * data without a Legal Basis to apply market research to generate audience insights (Purpose 9)\n */\n MEASURE_CONTENT_PERFORMANCE = 8,\n\n /**\n * Market research can be used to learn more about the audiences who visit sites/apps and view ads.\n *\n * To apply market research to generate audience insights vendors can:\n * - Provide aggregate reporting to advertisers or their representatives about\n * the audiences reached by their ads, through panel-based and similarly derived insights.\n * - Provide aggregate reporting to publishers about the audiences that were served or\n * interacted with content and/or ads on their property by applying\n * panel-based and similarly derived insights.\n * - Associate offline data with an online user for the purposes of\n * market research to generate audience insights if vendors have declared to match and\n * combine offline data sources (Feature 1)\n * - Combine this information with other information previously collected including from\n * across websites and apps.\n *\n * Vendors cannot:\n * - Measure the performance and effectiveness of ads that a specific user was served or\n * interacted with, without a Legal Basis to measure ad performance.\n * - Measure which content a specific user was served and how they interacted with it,\n * without a Legal Basis to measure content performance.\n */\n APPLY_MARKET_RESEARCH_TO_GENERATE_AUDIENCE_INSIGHTS = 9,\n\n /**\n * Your data can be used to improve existing systems and software,\n * and to develop new products\n *\n * To develop new products and improve products vendors can:\n * - Use information to improve their existing products with new features and\n * to develop new products\n * - Create new models and algorithms through machine learning\n *\n * Vendors cannot:\n * - Conduct any other data processing operation allowed under\n * a different purpose under this purpose\n */\n DEVELOP_AND_IMPROVE_PRODUCTS = 10,\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n *\n *\n * The definitions in this document are copied from IAB's global vendor list.\n *\n * https://vendor-list.consensu.org/v2/vendor-list.json\n * https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework\n *\n */\n\nexport enum AdsConsentSpecialFeatures {\n /**\n * Your precise geolocation data can be used in support of one or more purposes.\n * This means your location can be accurate to within several meters.\n *\n * Vendors can:\n * - Collect and process precise geolocation data in support of one or more purposes.\n * - Precise geolocation means that there are no restrictions on the precision of\n * a user's location; this can be accurate to within several meters.\n */\n USE_PRECISE_GEOLOCATION_DATA = 1,\n\n /**\n * Your device can be identified based on a scan of your device's\n * unique combination of characteristics.\n *\n * Vendors can:\n * - Create an identifier using data collected via actively scanning a device for\n * specific characteristics, e.g. installed fonts or screen resolution.\n * - Use such an identifier to re-identify a device.\n */\n ACTIVELY_SCAN_DEVICE_CHARACTERISTICS_FOR_IDENTIFICATION = 2,\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n/**\n * AdsConsentStatus enum.\n */\nexport enum AdsConsentStatus {\n /**\n * Unknown consent status, AdsConsent.requestInfoUpdate needs to be called to update it.\n */\n UNKNOWN = 'UNKNOWN',\n\n /**\n * User consent required but not yet obtained.\n */\n REQUIRED = 'REQUIRED',\n\n /**\n * User consent not required.\n */\n NOT_REQUIRED = 'NOT_REQUIRED',\n\n /**\n * User consent already obtained.\n */\n OBTAINED = 'OBTAINED',\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { Platform } from 'react-native';\n\nexport const TestIds = {\n APP_OPEN: '',\n BANNER: '',\n INTERSTITIAL: '',\n REWARDED: '',\n REWARDED_INTERSTITIAL: '',\n GAM_APP_OPEN: '/6499/example/app-open',\n GAM_BANNER: '/6499/example/banner',\n GAM_INTERSTITIAL: '/6499/example/interstitial',\n GAM_REWARDED: '/6499/example/rewarded',\n GAM_REWARDED_INTERSTITIAL: '/21775744923/example/rewarded_interstitial',\n GAM_NATIVE: '/6499/example/native',\n ...Platform.select({\n android: {\n APP_OPEN: 'ca-app-pub-3940256099942544/3419835294',\n BANNER: 'ca-app-pub-3940256099942544/6300978111',\n INTERSTITIAL: 'ca-app-pub-3940256099942544/1033173712',\n REWARDED: 'ca-app-pub-3940256099942544/5224354917',\n REWARDED_INTERSTITIAL: 'ca-app-pub-3940256099942544/5354046379',\n },\n ios: {\n APP_OPEN: 'ca-app-pub-3940256099942544/5662855259',\n BANNER: 'ca-app-pub-3940256099942544/2934735716',\n INTERSTITIAL: 'ca-app-pub-3940256099942544/4411468910',\n REWARDED: 'ca-app-pub-3940256099942544/1712485313',\n REWARDED_INTERSTITIAL: 'ca-app-pub-3940256099942544/6978759866',\n },\n }),\n};\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport enum AdEventType {\n /**\n * When an ad has loaded. At this point, the ad is ready to be shown to the user.\n *\n * #### Example\n *\n * ```js\n * import { AdEventType } from 'react-native-google-mobile-ads';\n *\n * advert.addEventListener(AdEventType.LOADED, () => {\n * advert.show();\n * });\n * ```\n */\n LOADED = 'loaded',\n\n /**\n * The ad has thrown an error. See the error parameter the listener callback for more information.\n *\n * #### Example\n *\n * ```js\n * import { AdEventType } from 'react-native-google-mobile-ads';\n *\n * advert.addEventListener(AdEventType.ERROR, (error) => {\n * console.log('Ad error:', error);\n * });\n * ```\n */\n ERROR = 'error',\n\n /**\n * The ad opened and is currently visible to the user. This event is fired after the `show()`\n * method has been called.\n */\n OPENED = 'opened',\n\n /**\n * The user clicked the advert.\n */\n CLICKED = 'clicked',\n\n /**\n * The user closed the ad and has returned back to your application.\n */\n CLOSED = 'closed',\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n */\n\nexport enum BannerAdSize {\n /**\n * Mobile Marketing Association (MMA) banner ad size (320x50 density-independent pixels).\n */\n BANNER = 'BANNER',\n\n /**\n * Interactive Advertising Bureau (IAB) full banner ad size (468x60 density-independent pixels).\n */\n FULL_BANNER = 'FULL_BANNER',\n\n /**\n * Large banner ad size (320x100 density-independent pixels).\n */\n LARGE_BANNER = 'LARGE_BANNER',\n\n /**\n * Interactive Advertising Bureau (IAB) leaderboard ad size (728x90 density-independent pixels).\n */\n LEADERBOARD = 'LEADERBOARD',\n\n /**\n * Interactive Advertising Bureau (IAB) medium rectangle ad size (300x250 density-independent pixels).\n */\n MEDIUM_RECTANGLE = 'MEDIUM_RECTANGLE',\n\n /**\n * @deprecated Use `ANCHORED_ADAPTIVE_BANNER` instead.\n */\n ADAPTIVE_BANNER = 'ADAPTIVE_BANNER',\n\n /**\n * A (next generation) dynamically sized banner that is full-width and auto-height.\n */\n ANCHORED_ADAPTIVE_BANNER = 'ANCHORED_ADAPTIVE_BANNER',\n\n /**\n * Inline adaptive banners are larger, taller banners compared to anchored adaptive banners. They are of variable height, and can be as tall as the device screen.\n * They are intended to be placed in scrolling content.\n */\n INLINE_ADAPTIVE_BANNER = 'INLINE_ADAPTIVE_BANNER',\n\n /**\n * IAB wide skyscraper ad size (160x600 density-independent pixels). This size is currently not supported by the Google Mobile Ads network; this is intended for mediation ad networks only.\n */\n WIDE_SKYSCRAPER = 'WIDE_SKYSCRAPER',\n}\n\nexport const GAMBannerAdSize = {\n ...BannerAdSize,\n\n /**\n * A dynamically sized banner that matches its parent's width and expands/contracts its height to match the ad's content after loading completes.\n */\n FLUID: 'FLUID',\n} as const;\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport enum GAMAdEventType {\n /**\n * An event fired when the ad received Ad Manager specific app event.\n *\n * The app event contains a `name` and `data`. `data` could be undefeined.\n *\n * #### Example\n *\n * ```js\n * import { GAMAdEventType } from 'react-native-google-mobile-ads';\n *\n * interstitialAd.onAdEvent((type, error, data) => {\n * if (type === GAMAdEventType.APP_EVENT) {\n * console.log(`Received app event: ${data.name} with data: ${data.data}`);\n * }\n * });\n * ```\n */\n APP_EVENT = 'app_event',\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport enum RewardedAdEventType {\n /**\n * An event fired when a rewarded ad has loaded.\n *\n * This type differs from `AdEventType.LOADED` as when a rewarded ad is loaded,\n * an additional data payload is provided to the event handler containing the ad reward\n * (assuming the user earns the reward).\n *\n * The reward contains a `type` and `amount`.\n *\n * #### Example\n *\n * ```js\n * import { RewardedAdEventType } from 'react-native-google-mobile-ads';\n *\n * rewardedAd.addEventListener(RewardedAdEventType.LOADED, (reward) => {\n * console.log(`Rewarded Ad loaded with ${data.amount} ${data.type} as reward`);\n * // E.g. \"Rewarded Ad loaded with 50 coins as reward\"\n * rewardedAd.show();\n * });\n * ```\n */\n LOADED = 'rewarded_loaded',\n\n /**\n * An event fired when the user earned the reward for the video. If the user does not earn a reward,\n * the `AdEventType.CLOSED` event will be fired with no rewarded event.\n *\n * The reward contains a `type` and `amount`.\n *\n * #### Example\n *\n * ```js\n * import { RewardedAdEventType } from 'react-native-google-mobile-ads';\n *\n * rewardedAd.addEventListener(RewardedAdEventType.EARNED_REWARD, (reward) => {\n * console.log(`User earned ${data.amount} ${data.type}`);\n * // E.g. \"User earned 50 coins\"\n * });\n * ```\n */\n EARNED_REWARD = 'rewarded_earned_reward',\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { TCModel, TCString } from '@iabtcf/core';\nimport { NativeModules } from 'react-native';\nimport { AdsConsentDebugGeography } from './AdsConsentDebugGeography';\nimport { AdsConsentPurposes } from './AdsConsentPurposes';\nimport { AdsConsentSpecialFeatures } from './AdsConsentSpecialFeatures';\nimport { isPropertySet, isArray, isBoolean, isObject, isString } from './common';\nimport {\n AdsConsentFormResult,\n AdsConsentInfo,\n AdsConsentInfoOptions,\n AdsConsentInterface,\n AdsConsentUserChoices,\n} from './types/AdsConsent.interface';\n\nconst native = NativeModules.RNGoogleMobileAdsConsentModule;\n\nexport const AdsConsent: AdsConsentInterface = {\n requestInfoUpdate(options: AdsConsentInfoOptions = {}): Promise<AdsConsentInfo> {\n if (!isObject(options)) {\n throw new Error(\"AdsConsent.requestInfoUpdate(*) 'options' expected an object value.\");\n }\n\n if (\n isPropertySet(options, 'debugGeography') &&\n options.debugGeography !== AdsConsentDebugGeography.DISABLED &&\n options.debugGeography !== AdsConsentDebugGeography.EEA &&\n options.debugGeography !== AdsConsentDebugGeography.NOT_EEA\n ) {\n throw new Error(\n \"AdsConsent.requestInfoUpdate(*) 'options.debugGeography' expected one of AdsConsentDebugGeography.DISABLED, AdsConsentDebugGeography.EEA or AdsConsentDebugGeography.NOT_EEA.\",\n );\n }\n\n if (\n isPropertySet(options, 'tagForUnderAgeOfConsent') &&\n !isBoolean(options.tagForUnderAgeOfConsent)\n ) {\n throw new Error(\n \"AdsConsent.requestInfoUpdate(*) 'options.tagForUnderAgeOfConsent' expected a boolean value.\",\n );\n }\n\n if (isPropertySet(options, 'testDeviceIdentifiers')) {\n if (!isArray(options.testDeviceIdentifiers)) {\n throw new Error(\n \"AdsConsent.requestInfoUpdate(*) 'options.testDeviceIdentifiers' expected an array of string values.\",\n );\n }\n\n for (const deviceId of options.testDeviceIdentifiers ?? []) {\n if (!isString(deviceId)) {\n throw new Error(\n \"AdsConsent.requestInfoUpdate(*) 'options.testDeviceIdentifiers' expected an array of string values.\",\n );\n }\n }\n }\n\n return native.requestInfoUpdate(options);\n },\n\n showForm(): Promise<AdsConsentFormResult> {\n return native.showForm();\n },\n\n reset(): void {\n return native.reset();\n },\n\n getTCString(): Promise<string> {\n return native.getTCString();\n },\n\n async getTCModel(): Promise<TCModel> {\n const tcString = await native.getTCString();\n return TCString.decode(tcString);\n },\n\n async getUserChoices(): Promise<AdsConsentUserChoices> {\n const tcString = await native.getTCString();\n\n let tcModel: TCModel;\n\n try {\n tcModel = TCString.decode(tcString);\n } catch (e) {\n tcModel = new TCModel();\n\n if (__DEV__) {\n // eslint-disable-next-line no-console\n console.warn(`Failed to decode tcString ${tcString}:`, e);\n }\n }\n\n return {\n activelyScanDeviceCharacteristicsForIdentification: tcModel.specialFeatureOptins.has(\n AdsConsentSpecialFeatures.ACTIVELY_SCAN_DEVICE_CHARACTERISTICS_FOR_IDENTIFICATION,\n ),\n applyMarketResearchToGenerateAudienceInsights: tcModel.purposeConsents.has(\n AdsConsentPurposes.APPLY_MARKET_RESEARCH_TO_GENERATE_AUDIENCE_INSIGHTS,\n ),\n createAPersonalisedAdsProfile: tcModel.purposeConsents.has(\n AdsConsentPurposes.CREATE_A_PERSONALISED_ADS_PROFILE,\n ),\n createAPersonalisedContentProfile: tcModel.purposeConsents.has(\n AdsConsentPurposes.CREATE_A_PERSONALISED_ADS_PROFILE,\n ),\n developAndImproveProducts: tcModel.purposeConsents.has(\n AdsConsentPurposes.DEVELOP_AND_IMPROVE_PRODUCTS,\n ),\n measureAdPerformance: tcModel.purposeConsents.has(AdsConsentPurposes.MEASURE_AD_PERFORMANCE),\n measureContentPerformance: tcModel.purposeConsents.has(\n AdsConsentPurposes.MEASURE_CONTENT_PERFORMANCE,\n ),\n selectBasicAds: tcModel.purposeConsents.has(AdsConsentPurposes.SELECT_BASIC_ADS),\n selectPersonalisedAds: tcModel.purposeConsents.has(\n AdsConsentPurposes.SELECT_PERSONALISED_ADS,\n ),\n selectPersonalisedContent: tcModel.purposeConsents.has(\n AdsConsentPurposes.SELECT_PERSONALISED_CONTENT,\n ),\n storeAndAccessInformationOnDevice: tcModel.purposeConsents.has(\n AdsConsentPurposes.STORE_AND_ACCESS_INFORMATION_ON_DEVICE,\n ),\n usePreciseGeolocationData: tcModel.specialFeatureOptins.has(\n AdsConsentSpecialFeatures.USE_PRECISE_GEOLOCATION_DATA,\n ),\n };\n },\n};\n","\"use strict\";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t),Object.defineProperty(e,o,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)\"default\"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,\"__esModule\",{value:!0}),__exportStar(require(\"./encoder/index.js\"),exports),__exportStar(require(\"./errors/index.js\"),exports),__exportStar(require(\"./model/index.js\"),exports),__exportStar(require(\"./Cloneable.js\"),exports),__exportStar(require(\"./GVL.js\"),exports),__exportStar(require(\"./Json.js\"),exports),__exportStar(require(\"./TCModel.js\"),exports),__exportStar(require(\"./TCString.js\"),exports);","\"use strict\";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,i){void 0===i&&(i=t),Object.defineProperty(e,i,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,i){void 0===i&&(i=t),e[i]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)\"default\"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,\"__esModule\",{value:!0}),__exportStar(require(\"./Base64Url.js\"),exports),__exportStar(require(\"./BitLength.js\"),exports),__exportStar(require(\"./EncodingOptions.js\"),exports),__exportStar(require(\"./SegmentEncoder.js\"),exports),__exportStar(require(\"./SemanticPreEncoder.js\"),exports),__exportStar(require(\"./field/index.js\"),exports),__exportStar(require(\"./sequence/index.js\"),exports);","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Base64Url=void 0;var index_js_1=require(\"../errors/index.js\"),Base64Url=function(){function e(){}return e.encode=function(e){if(!/^[0-1]+$/.test(e))throw new index_js_1.EncodingError(\"Invalid bitField\");var r=e.length%this.LCM;e+=r?\"0\".repeat(this.LCM-r):\"\";for(var t=\"\",n=0;n<e.length;n+=this.BASIS)t+=this.DICT[parseInt(e.substr(n,this.BASIS),2)];return t},e.decode=function(e){if(!/^[A-Za-z0-9\\-_]+$/.test(e))throw new index_js_1.DecodingError(\"Invalidly encoded Base64URL string\");for(var r=\"\",t=0;t<e.length;t++){var n=this.REVERSE_DICT.get(e[t]).toString(2);r+=\"0\".repeat(this.BASIS-n.length)+n}return r},e.DICT=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",e.REVERSE_DICT=new Map([[\"A\",0],[\"B\",1],[\"C\",2],[\"D\",3],[\"E\",4],[\"F\",5],[\"G\",6],[\"H\",7],[\"I\",8],[\"J\",9],[\"K\",10],[\"L\",11],[\"M\",12],[\"N\",13],[\"O\",14],[\"P\",15],[\"Q\",16],[\"R\",17],[\"S\",18],[\"T\",19],[\"U\",20],[\"V\",21],[\"W\",22],[\"X\",23],[\"Y\",24],[\"Z\",25],[\"a\",26],[\"b\",27],[\"c\",28],[\"d\",29],[\"e\",30],[\"f\",31],[\"g\",32],[\"h\",33],[\"i\",34],[\"j\",35],[\"k\",36],[\"l\",37],[\"m\",38],[\"n\",39],[\"o\",40],[\"p\",41],[\"q\",42],[\"r\",43],[\"s\",44],[\"t\",45],[\"u\",46],[\"v\",47],[\"w\",48],[\"x\",49],[\"y\",50],[\"z\",51],[\"0\",52],[\"1\",53],[\"2\",54],[\"3\",55],[\"4\",56],[\"5\",57],[\"6\",58],[\"7\",59],[\"8\",60],[\"9\",61],[\"-\",62],[\"_\",63]]),e.BASIS=6,e.LCM=24,e}();exports.Base64Url=Base64Url;","\"use strict\";var __createBinding=this&&this.__createBinding||(Object.create?function(r,e,t,o){void 0===o&&(o=t),Object.defineProperty(r,o,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,o){void 0===o&&(o=t),r[o]=e[t]}),__exportStar=this&&this.__exportStar||function(r,e){for(var t in r)\"default\"===t||Object.prototype.hasOwnProperty.call(e,t)||__createBinding(e,r,t)};Object.defineProperty(exports,\"__esModule\",{value:!0}),__exportStar(require(\"./DecodingError.js\"),exports),__exportStar(require(\"./EncodingError.js\"),exports),__exportStar(require(\"./GVLError.js\"),exports),__exportStar(require(\"./TCModelError.js\"),exports);","\"use strict\";var __extends=this&&this.__extends||function(){var r=function(t,o){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o])})(t,o)};return function(t,o){if(\"function\"!=typeof o&&null!==o)throw new TypeError(\"Class extends value \"+String(o)+\" is not a constructor or null\");function e(){this.constructor=t}r(t,o),t.prototype=null===o?Object.create(o):(e.prototype=o.prototype,new e)}}();Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.DecodingError=void 0;var DecodingError=function(r){function t(t){var o=r.call(this,t)||this;return o.name=\"DecodingError\",o}return __extends(t,r),t}(Error);exports.DecodingError=DecodingError;","\"use strict\";var __extends=this&&this.__extends||function(){var r=function(t,o){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o])})(t,o)};return function(t,o){if(\"function\"!=typeof o&&null!==o)throw new TypeError(\"Class extends value \"+String(o)+\" is not a constructor or null\");function n(){this.constructor=t}r(t,o),t.prototype=null===o?Object.create(o):(n.prototype=o.prototype,new n)}}();Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.EncodingError=void 0;var EncodingError=function(r){function t(t){var o=r.call(this,t)||this;return o.name=\"EncodingError\",o}return __extends(t,r),t}(Error);exports.EncodingError=EncodingError;","\"use strict\";var __extends=this&&this.__extends||function(){var r=function(t,o){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o])})(t,o)};return function(t,o){if(\"function\"!=typeof o&&null!==o)throw new TypeError(\"Class extends value \"+String(o)+\" is not a constructor or null\");function e(){this.constructor=t}r(t,o),t.prototype=null===o?Object.create(o):(e.prototype=o.prototype,new e)}}();Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.GVLError=void 0;var GVLError=function(r){function t(t){var o=r.call(this,t)||this;return o.name=\"GVLError\",o}return __extends(t,r),t}(Error);exports.GVLError=GVLError;","\"use strict\";var __extends=this&&this.__extends||function(){var r=function(t,o){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o])})(t,o)};return function(t,o){if(\"function\"!=typeof o&&null!==o)throw new TypeError(\"Class extends value \"+String(o)+\" is not a constructor or null\");function e(){this.constructor=t}r(t,o),t.prototype=null===o?Object.create(o):(e.prototype=o.prototype,new e)}}();Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.TCModelError=void 0;var TCModelError=function(r){function t(t,o,e){void 0===e&&(e=\"\");var n=r.call(this,\"invalid value \".concat(o,\" passed for \").concat(t,\" \").concat(e))||this;return n.name=\"TCModelError\",n}return __extends(t,r),t}(Error);exports.TCModelError=TCModelError;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.BitLength=void 0;var index_js_1=require(\"../model/index.js\"),BitLength=function(){function e(){}var s,i,n,d,t,r,_,o,l,p,x,u,j,a,c,F,g,m;return s=index_js_1.Fields.cmpId,i=index_js_1.Fields.cmpVersion,n=index_js_1.Fields.consentLanguage,d=index_js_1.Fields.consentScreen,t=index_js_1.Fields.created,r=index_js_1.Fields.isServiceSpecific,_=index_js_1.Fields.lastUpdated,o=index_js_1.Fields.policyVersion,l=index_js_1.Fields.publisherCountryCode,p=index_js_1.Fields.publisherLegitimateInterests,x=index_js_1.Fields.publisherConsents,u=index_js_1.Fields.purposeConsents,j=index_js_1.Fields.purposeLegitimateInterests,a=index_js_1.Fields.purposeOneTreatment,c=index_js_1.Fields.specialFeatureOptins,F=index_js_1.Fields.useNonStandardStacks,g=index_js_1.Fields.vendorListVersion,m=index_js_1.Fields.version,e[s]=12,e[i]=12,e[n]=12,e[d]=6,e[t]=36,e[r]=1,e[_]=36,e[o]=6,e[l]=12,e[p]=24,e[x]=24,e[u]=24,e[j]=24,e[a]=1,e[c]=12,e[F]=1,e[g]=12,e[m]=6,e.anyBoolean=1,e.encodingType=1,e.maxId=16,e.numCustomPurposes=6,e.numEntries=12,e.numRestrictions=12,e.purposeId=6,e.restrictionType=2,e.segmentType=3,e.singleOrRange=1,e.vendorId=16,e}();exports.BitLength=BitLength;","\"use strict\";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t),Object.defineProperty(e,o,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)\"default\"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,\"__esModule\",{value:!0}),__exportStar(require(\"./BinarySearchTree.js\"),exports),__exportStar(require(\"./ConsentLanguages.js\"),exports),__exportStar(require(\"./Fields.js\"),exports),__exportStar(require(\"./IntMap.js\"),exports),__exportStar(require(\"./KeyMap.js\"),exports),__exportStar(require(\"./PurposeRestriction.js\"),exports),__exportStar(require(\"./PurposeRestrictionVector.js\"),exports),__exportStar(require(\"./DeviceDisclosureStorageAccessType.js\"),exports),__exportStar(require(\"./DeviceDisclosure.js\"),exports),__exportStar(require(\"./RestrictionType.js\"),exports),__exportStar(require(\"./Segment.js\"),exports),__exportStar(require(\"./SegmentIDs.js\"),exports),__exportStar(require(\"./Vector.js\"),exports),__exportStar(require(\"./gvl/index.js\"),exports);","\"use strict\";var __extends=this&&this.__extends||function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){if(\"function\"!=typeof r&&null!==r)throw new TypeError(\"Class extends value \"+String(r)+\" is not a constructor or null\");function o(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(o.prototype=r.prototype,new o)}}();Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.BinarySearchTree=void 0;var Cloneable_js_1=require(\"../Cloneable.js\"),BinarySearchTree=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.root=null,e}return __extends(e,t),e.prototype.isEmpty=function(){return!this.root},e.prototype.add=function(t){var e,r={value:t,left:null,right:null};if(this.isEmpty())this.root=r;else for(e=this.root;;)if(t<e.value){if(null===e.left){e.left=r;break}e=e.left}else{if(!(t>e.value))break;if(null===e.right){e.right=r;break}e=e.right}},e.prototype.get=function(){for(var t=[],e=this.root;e;)if(e.left){for(var r=e.left;r.right&&r.right!=e;)r=r.right;r.right==e?(r.right=null,t.push(e.value),e=e.right):(r.right=e,e=e.left)}else t.push(e.value),e=e.right;return t},e.prototype.contains=function(t){for(var e=!1,r=this.root;r;){if(r.value===t){e=!0;break}t>r.value?r=r.right:t<r.value&&(r=r.left)}return e},e.prototype.min=function(t){var e;for(void 0===t&&(t=this.root);t;)t.left?t=t.left:(e=t.value,t=null);return e},e.prototype.max=function(t){var e;for(void 0===t&&(t=this.root);t;)t.right?t=t.right:(e=t.value,t=null);return e},e.prototype.remove=function(t,e){void 0===e&&(e=this.root);for(var r=null,o=\"left\";e;)if(t<e.value)r=e,e=e.left,o=\"left\";else if(t>e.value)r=e,e=e.right,o=\"right\";else{if(e.left||e.right)if(e.left)if(e.right){var i=this.min(e.right);this.remove(i,e.right),e.value=i}else r?r[o]=e.left:this.root=e.left;else r?r[o]=e.right:this.root=e.right;else r?r[o]=null:this.root=null;e=null}},e}(Cloneable_js_1.Cloneable);exports.BinarySearchTree=BinarySearchTree;","\"use strict\";var __values=this&&this.__values||function(e){var r=\"function\"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Cloneable=void 0;var Cloneable=function(){function e(){}return e.prototype.clone=function(){var e=this,r=new this.constructor;return Object.keys(this).forEach((function(t){var n=e.deepClone(e[t]);void 0!==n&&(r[t]=n)})),r},e.prototype.deepClone=function(e){var r,t,n=typeof e;if(\"number\"===n||\"string\"===n||\"boolean\"===n)return e;if(null!==e&&\"object\"===n){if(\"function\"==typeof e.clone)return e.clone();if(e instanceof Date)return new Date(e.getTime());if(void 0!==e[Symbol.iterator]){var o=[];try{for(var i=__values(e),l=i.next();!l.done;l=i.next()){var a=l.value;o.push(this.deepClone(a))}}catch(e){r={error:e}}finally{try{l&&!l.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return e instanceof Array?o:new e.constructor(o)}var u={};for(var f in e)e.hasOwnProperty(f)&&(u[f]=this.deepClone(e[f]));return u}},e}();exports.Cloneable=Cloneable;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.ConsentLanguages=void 0;var ConsentLanguages=function(){function e(){}return e.prototype.has=function(n){return e.langSet.has(n)},e.prototype.forEach=function(n){e.langSet.forEach(n)},Object.defineProperty(e.prototype,\"size\",{get:function(){return e.langSet.size},enumerable:!1,configurable:!0}),e.langSet=new Set([\"BG\",\"CA\",\"CS\",\"DA\",\"DE\",\"EL\",\"EN\",\"ES\",\"ET\",\"FI\",\"FR\",\"HR\",\"HU\",\"IT\",\"JA\",\"LT\",\"LV\",\"MT\",\"NL\",\"NO\",\"PL\",\"PT\",\"RO\",\"RU\",\"SK\",\"SL\",\"SV\",\"TR\",\"ZH\"]),e}();exports.ConsentLanguages=ConsentLanguages;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Fields=void 0;var Fields=function(){function e(){}return e.cmpId=\"cmpId\",e.cmpVersion=\"cmpVersion\",e.consentLanguage=\"consentLanguage\",e.consentScreen=\"consentScreen\",e.created=\"created\",e.supportOOB=\"supportOOB\",e.isServiceSpecific=\"isServiceSpecific\",e.lastUpdated=\"lastUpdated\",e.numCustomPurposes=\"numCustomPurposes\",e.policyVersion=\"policyVersion\",e.publisherCountryCode=\"publisherCountryCode\",e.publisherCustomConsents=\"publisherCustomConsents\",e.publisherCustomLegitimateInterests=\"publisherCustomLegitimateInterests\",e.publisherLegitimateInterests=\"publisherLegitimateInterests\",e.publisherConsents=\"publisherConsents\",e.publisherRestrictions=\"publisherRestrictions\",e.purposeConsents=\"purposeConsents\",e.purposeLegitimateInterests=\"purposeLegitimateInterests\",e.purposeOneTreatment=\"purposeOneTreatment\",e.specialFeatureOptins=\"specialFeatureOptins\",e.useNonStandardStacks=\"useNonStandardStacks\",e.vendorConsents=\"vendorConsents\",e.vendorLegitimateInterests=\"vendorLegitimateInterests\",e.vendorListVersion=\"vendorListVersion\",e.vendorsAllowed=\"vendorsAllowed\",e.vendorsDisclosed=\"vendorsDisclosed\",e.version=\"version\",e}();exports.Fields=Fields;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";var __extends=this&&this.__extends||function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){if(\"function\"!=typeof r&&null!==r)throw new TypeError(\"Class extends value \"+String(r)+\" is not a constructor or null\");function o(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(o.prototype=r.prototype,new o)}}();Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.PurposeRestriction=void 0;var Cloneable_js_1=require(\"../Cloneable.js\"),index_js_1=require(\"../errors/index.js\"),RestrictionType_js_1=require(\"./RestrictionType.js\"),PurposeRestriction=function(e){function t(t,r){var o=e.call(this)||this;return void 0!==t&&(o.purposeId=t),void 0!==r&&(o.restrictionType=r),o}return __extends(t,e),t.unHash=function(e){var r=e.split(this.hashSeparator),o=new t;if(2!==r.length)throw new index_js_1.TCModelError(\"hash\",e);return o.purposeId=parseInt(r[0],10),o.restrictionType=parseInt(r[1],10),o},Object.defineProperty(t.prototype,\"hash\",{get:function(){if(!this.isValid())throw new Error(\"cannot hash invalid PurposeRestriction\");return\"\".concat(this.purposeId).concat(t.hashSeparator).concat(this.restrictionType)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"purposeId\",{get:function(){return this.purposeId_},set:function(e){this.purposeId_=e},enumerable:!1,configurable:!0}),t.prototype.isValid=function(){return Number.isInteger(this.purposeId)&&this.purposeId>0&&(this.restrictionType===RestrictionType_js_1.RestrictionType.NOT_ALLOWED||this.restrictionType===RestrictionType_js_1.RestrictionType.REQUIRE_CONSENT||this.restrictionType===RestrictionType_js_1.RestrictionType.REQUIRE_LI)},t.prototype.isSameAs=function(e){return this.purposeId===e.purposeId&&this.restrictionType===e.restrictionType},t.hashSeparator=\"-\",t}(Cloneable_js_1.Cloneable);exports.PurposeRestriction=PurposeRestriction;","\"use strict\";var RestrictionType;Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.RestrictionType=void 0,function(e){e[e.NOT_ALLOWED=0]=\"NOT_ALLOWED\",e[e.REQUIRE_CONSENT=1]=\"REQUIRE_CONSENT\",e[e.REQUIRE_LI=2]=\"REQUIRE_LI\"}(RestrictionType=exports.RestrictionType||(exports.RestrictionType={}));","\"use strict\";var __extends=this&&this.__extends||function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){if(\"function\"!=typeof r&&null!==r)throw new TypeError(\"Class extends value \"+String(r)+\" is not a constructor or null\");function o(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(o.prototype=r.prototype,new o)}}(),__values=this&&this.__values||function(e){var t=\"function\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&\"number\"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.PurposeRestrictionVector=void 0;var PurposeRestriction_js_1=require(\"./PurposeRestriction.js\"),BinarySearchTree_js_1=require(\"./BinarySearchTree.js\"),RestrictionType_js_1=require(\"./RestrictionType.js\"),Cloneable_js_1=require(\"../Cloneable.js\"),PurposeRestrictionVector=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.bitLength=0,t.map=new Map,t}return __extends(t,e),t.prototype.has=function(e){return this.map.has(e)},t.prototype.isOkToHave=function(e,t,r){var o,n=!0;if(null===(o=this.gvl)||void 0===o?void 0:o.vendors){var i=this.gvl.vendors[r];if(i)if(e===RestrictionType_js_1.RestrictionType.NOT_ALLOWED)n=i.legIntPurposes.includes(t)||i.purposes.includes(t);else if(i.flexiblePurposes.length)switch(e){case RestrictionType_js_1.RestrictionType.REQUIRE_CONSENT:n=i.flexiblePurposes.includes(t)&&i.legIntPurposes.includes(t);break;case RestrictionType_js_1.RestrictionType.REQUIRE_LI:n=i.flexiblePurposes.includes(t)&&i.purposes.includes(t)}else n=!1;else n=!1}return n},t.prototype.add=function(e,t){if(this.isOkToHave(t.restrictionType,t.purposeId,e)){var r=t.hash;this.has(r)||(this.map.set(r,new BinarySearchTree_js_1.BinarySearchTree),this.bitLength=0),this.map.get(r).add(e)}},t.prototype.restrictPurposeToLegalBasis=function(e){for(var t=this.gvl.vendorIds,r=e.hash,o=function(){var e,r,o;try{for(var n=__values(t),i=n.next();!i.done;i=n.next())o=i.value}catch(t){e={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}return o}(),n=1;n<=o;n++)this.has(r)||(this.map.set(r,new BinarySearchTree_js_1.BinarySearchTree),this.bitLength=0),this.map.get(r).add(n)},t.prototype.getVendors=function(e){var t=[];if(e){var r=e.hash;this.has(r)&&(t=this.map.get(r).get())}else{var o=new Set;this.map.forEach((function(e){e.get().forEach((function(e){o.add(e)}))})),t=Array.from(o)}return t},t.prototype.getRestrictionType=function(e,t){var r;return this.getRestrictions(e).forEach((function(e){e.purposeId===t&&(void 0===r||r>e.restrictionType)&&(r=e.restrictionType)})),r},t.prototype.vendorHasRestriction=function(e,t){for(var r=!1,o=this.getRestrictions(e),n=0;n<o.length&&!r;n++)r=t.isSameAs(o[n]);return r},t.prototype.getMaxVendorId=function(){var e=0;return this.map.forEach((function(t){e=Math.max(t.max(),e)})),e},t.prototype.getRestrictions=function(e){var t=[];return this.map.forEach((function(r,o){e?r.contains(e)&&t.push(PurposeRestriction_js_1.PurposeRestriction.unHash(o)):t.push(PurposeRestriction_js_1.PurposeRestriction.unHash(o))})),t},t.prototype.getPurposes=function(){var e=new Set;return this.map.forEach((function(t,r){e.add(PurposeRestriction_js_1.PurposeRestriction.unHash(r).purposeId)})),Array.from(e)},t.prototype.remove=function(e,t){var r=t.hash,o=this.map.get(r);o&&(o.remove(e),o.isEmpty()&&(this.map.delete(r),this.bitLength=0))},Object.defineProperty(t.prototype,\"gvl\",{get:function(){return this.gvl_},set:function(e){var t=this;this.gvl_||(this.gvl_=e,this.map.forEach((function(e,r){var o=PurposeRestriction_js_1.PurposeRestriction.unHash(r);e.get().forEach((function(r){t.isOkToHave(o.restrictionType,o.purposeId,r)||e.remove(r)}))})))},enumerable:!1,configurable:!0}),t.prototype.isEmpty=function(){return 0===this.map.size},Object.defineProperty(t.prototype,\"numRestrictions\",{get:function(){return this.map.size},enumerable:!1,configurable:!0}),t}(Cloneable_js_1.Cloneable);exports.PurposeRestrictionVector=PurposeRestrictionVector;","\"use strict\";var DeviceDisclosureStorageAccessType;Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.DeviceDisclosureStorageAccessType=void 0,function(e){e.COOKIE=\"cookie\",e.WEB=\"web\",e.APP=\"app\"}(DeviceDisclosureStorageAccessType=exports.DeviceDisclosureStorageAccessType||(exports.DeviceDisclosureStorageAccessType={}));","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";var Segment;Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Segment=void 0,function(e){e.CORE=\"core\",e.VENDORS_DISCLOSED=\"vendorsDisclosed\",e.VENDORS_ALLOWED=\"vendorsAllowed\",e.PUBLISHER_TC=\"publisherTC\"}(Segment=exports.Segment||(exports.Segment={}));","\"use strict\";var _a;Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SegmentIDs=void 0;var Segment_js_1=require(\"./Segment.js\"),SegmentIDs=function(){function e(){}return e.ID_TO_KEY=[Segment_js_1.Segment.CORE,Segment_js_1.Segment.VENDORS_DISCLOSED,Segment_js_1.Segment.VENDORS_ALLOWED,Segment_js_1.Segment.PUBLISHER_TC],e.KEY_TO_ID=((_a={})[Segment_js_1.Segment.CORE]=0,_a[Segment_js_1.Segment.VENDORS_DISCLOSED]=1,_a[Segment_js_1.Segment.VENDORS_ALLOWED]=2,_a[Segment_js_1.Segment.PUBLISHER_TC]=3,_a),e}();exports.SegmentIDs=SegmentIDs;","\"use strict\";var __extends=this&&this.__extends||function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){if(\"function\"!=typeof r&&null!==r)throw new TypeError(\"Class extends value \"+String(r)+\" is not a constructor or null\");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),__generator=this&&this.__generator||function(t,e){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(r)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=e.call(t,s)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Vector=void 0;var Cloneable_js_1=require(\"../Cloneable.js\"),index_js_1=require(\"../errors/index.js\"),Vector=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.bitLength=0,e.maxId_=0,e.set_=new Set,e}return __extends(e,t),e.prototype[Symbol.iterator]=function(){var t;return __generator(this,(function(e){switch(e.label){case 0:t=1,e.label=1;case 1:return t<=this.maxId?[4,[t,this.has(t)]]:[3,4];case 2:e.sent(),e.label=3;case 3:return t++,[3,1];case 4:return[2]}}))},e.prototype.values=function(){return this.set_.values()},Object.defineProperty(e.prototype,\"maxId\",{get:function(){return this.maxId_},enumerable:!1,configurable:!0}),e.prototype.has=function(t){return this.set_.has(t)},e.prototype.unset=function(t){var e=this;Array.isArray(t)?t.forEach((function(t){return e.unset(t)})):\"object\"==typeof t?this.unset(Object.keys(t).map((function(t){return Number(t)}))):(this.set_.delete(Number(t)),this.bitLength=0,t===this.maxId&&(this.maxId_=0,this.set_.forEach((function(t){e.maxId_=Math.max(e.maxId,t)}))))},e.prototype.isIntMap=function(t){var e=this,r=\"object\"==typeof t;return r=r&&Object.keys(t).every((function(r){var n=Number.isInteger(parseInt(r,10));return n=(n=n&&e.isValidNumber(t[r].id))&&void 0!==t[r].name}))},e.prototype.isValidNumber=function(t){return parseInt(t,10)>0},e.prototype.isSet=function(t){var e=!1;return t instanceof Set&&(e=Array.from(t).every(this.isValidNumber)),e},e.prototype.set=function(t){var e=this;if(Array.isArray(t))t.forEach((function(t){return e.set(t)}));else if(this.isSet(t))this.set(Array.from(t));else if(this.isIntMap(t))this.set(Object.keys(t).map((function(t){return Number(t)})));else{if(!this.isValidNumber(t))throw new index_js_1.TCModelError(\"set()\",t,\"must be positive integer array, positive integer, Set<number>, or IntMap\");this.set_.add(t),this.maxId_=Math.max(this.maxId,t),this.bitLength=0}},e.prototype.empty=function(){this.set_=new Set},e.prototype.forEach=function(t){for(var e=1;e<=this.maxId;e++)t(this.has(e),e)},Object.defineProperty(e.prototype,\"size\",{get:function(){return this.set_.size},enumerable:!1,configurable:!0}),e.prototype.setAll=function(t){this.set(t)},e}(Cloneable_js_1.Cloneable);exports.Vector=Vector;","\"use strict\";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t),Object.defineProperty(e,o,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)\"default\"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,\"__esModule\",{value:!0}),__exportStar(require(\"./ByPurposeVendorMap.js\"),exports),__exportStar(require(\"./Declarations.js\"),exports),__exportStar(require(\"./Feature.js\"),exports),__exportStar(require(\"./GVLMapItem.js\"),exports),__exportStar(require(\"./IDSetMap.js\"),exports),__exportStar(require(\"./Purpose.js\"),exports),__exportStar(require(\"./Stack.js\"),exports),__exportStar(require(\"./Vendor.js\"),exports),__exportStar(require(\"./VendorList.js\"),exports);","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SegmentEncoder=void 0;var Base64Url_js_1=require(\"./Base64Url.js\"),BitLength_js_1=require(\"./BitLength.js\"),index_js_1=require(\"./field/index.js\"),index_js_2=require(\"./sequence/index.js\"),index_js_3=require(\"../errors/index.js\"),Fields_js_1=require(\"../model/Fields.js\"),index_js_4=require(\"../model/index.js\"),SegmentEncoder=function(){function e(){}return e.encode=function(e,n){var s,i=this;try{s=this.fieldSequence[String(e.version)][n]}catch(s){throw new index_js_3.EncodingError(\"Unable to encode version: \".concat(e.version,\", segment: \").concat(n))}var r=\"\";n!==index_js_4.Segment.CORE&&(r=index_js_1.IntEncoder.encode(index_js_4.SegmentIDs.KEY_TO_ID[n],BitLength_js_1.BitLength.segmentType));var t=(0,index_js_1.FieldEncoderMap)();return s.forEach((function(s){var d=e[s],o=t[s],_=BitLength_js_1.BitLength[s];void 0===_&&i.isPublisherCustom(s)&&(_=Number(e[Fields_js_1.Fields.numCustomPurposes]));try{r+=o.encode(d,_)}catch(e){throw new index_js_3.EncodingError(\"Error encoding \".concat(n,\"->\").concat(s,\": \").concat(e.message))}})),Base64Url_js_1.Base64Url.encode(r)},e.decode=function(e,n,s){var i=this,r=Base64Url_js_1.Base64Url.decode(e),t=0;s===index_js_4.Segment.CORE&&(n.version=index_js_1.IntEncoder.decode(r.substr(t,BitLength_js_1.BitLength[Fields_js_1.Fields.version]),BitLength_js_1.BitLength[Fields_js_1.Fields.version])),s!==index_js_4.Segment.CORE&&(t+=BitLength_js_1.BitLength.segmentType);var d=this.fieldSequence[String(n.version)][s],o=(0,index_js_1.FieldEncoderMap)();return d.forEach((function(e){var s=o[e],d=BitLength_js_1.BitLength[e];if(void 0===d&&i.isPublisherCustom(e)&&(d=Number(n[Fields_js_1.Fields.numCustomPurposes])),0!==d){var _=r.substr(t,d);if(s===index_js_1.VendorVectorEncoder?n[e]=s.decode(_,n.version):n[e]=s.decode(_,d),Number.isInteger(d))t+=d;else{if(!Number.isInteger(n[e].bitLength))throw new index_js_3.DecodingError(e);t+=n[e].bitLength}}})),n},e.isPublisherCustom=function(e){return 0===e.indexOf(\"publisherCustom\")},e.fieldSequence=new index_js_2.FieldSequence,e}();exports.SegmentEncoder=SegmentEncoder;","\"use strict\";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t),Object.defineProperty(e,o,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)\"default\"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,\"__esModule\",{value:!0}),__exportStar(require(\"./BooleanEncoder.js\"),exports),__exportStar(require(\"./DateEncoder.js\"),exports),__exportStar(require(\"./FieldEncoderMap.js\"),exports),__exportStar(require(\"./FixedVectorEncoder.js\"),exports),__exportStar(require(\"./IntEncoder.js\"),exports),__exportStar(require(\"./LangEncoder.js\"),exports),__exportStar(require(\"./PurposeRestrictionVectorEncoder.js\"),exports),__exportStar(require(\"./VectorEncodingType.js\"),exports),__exportStar(require(\"./VendorVectorEncoder.js\"),exports);","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.BooleanEncoder=void 0;var BooleanEncoder=function(){function e(){}return e.encode=function(e){return String(Number(e))},e.decode=function(e){return\"1\"===e},e}();exports.BooleanEncoder=BooleanEncoder;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.DateEncoder=void 0;var IntEncoder_js_1=require(\"./IntEncoder.js\"),index_js_1=require(\"../../errors/index.js\"),DateEncoder=function(){function e(){}return e.encode=function(e,n){return IntEncoder_js_1.IntEncoder.encode(Math.round(e.getTime()/100),n)},e.decode=function(e,n){if(n!==e.length)throw new index_js_1.DecodingError(\"invalid bit length\");var r=new Date;return r.setTime(100*IntEncoder_js_1.IntEncoder.decode(e,n)),r},e}();exports.DateEncoder=DateEncoder;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.IntEncoder=void 0;var index_js_1=require(\"../../errors/index.js\"),IntEncoder=function(){function e(){}return e.encode=function(e,n){var t;if(\"string\"==typeof e&&(e=parseInt(e,10)),(t=e.toString(2)).length>n||e<0)throw new index_js_1.EncodingError(\"\".concat(e,\" too large to encode into \").concat(n));return t.length<n&&(t=\"0\".repeat(n-t.length)+t),t},e.decode=function(e,n){if(n!==e.length)throw new index_js_1.DecodingError(\"invalid bit length\");return parseInt(e,2)},e}();exports.IntEncoder=IntEncoder;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.FieldEncoderMap=void 0;var index_js_1=require(\"../../model/index.js\"),BooleanEncoder_js_1=require(\"./BooleanEncoder.js\"),DateEncoder_js_1=require(\"./DateEncoder.js\"),FixedVectorEncoder_js_1=require(\"./FixedVectorEncoder.js\"),IntEncoder_js_1=require(\"./IntEncoder.js\"),LangEncoder_js_1=require(\"./LangEncoder.js\"),PurposeRestrictionVectorEncoder_js_1=require(\"./PurposeRestrictionVectorEncoder.js\"),VendorVectorEncoder_js_1=require(\"./VendorVectorEncoder.js\");function FieldEncoderMap(){var e;return(e={})[index_js_1.Fields.version]=IntEncoder_js_1.IntEncoder,e[index_js_1.Fields.created]=DateEncoder_js_1.DateEncoder,e[index_js_1.Fields.lastUpdated]=DateEncoder_js_1.DateEncoder,e[index_js_1.Fields.cmpId]=IntEncoder_js_1.IntEncoder,e[index_js_1.Fields.cmpVersion]=IntEncoder_js_1.IntEncoder,e[index_js_1.Fields.consentScreen]=IntEncoder_js_1.IntEncoder,e[index_js_1.Fields.consentLanguage]=LangEncoder_js_1.LangEncoder,e[index_js_1.Fields.vendorListVersion]=IntEncoder_js_1.IntEncoder,e[index_js_1.Fields.policyVersion]=IntEncoder_js_1.IntEncoder,e[index_js_1.Fields.isServiceSpecific]=BooleanEncoder_js_1.BooleanEncoder,e[index_js_1.Fields.useNonStandardStacks]=BooleanEncoder_js_1.BooleanEncoder,e[index_js_1.Fields.specialFeatureOptins]=FixedVectorEncoder_js_1.FixedVectorEncoder,e[index_js_1.Fields.purposeConsents]=FixedVectorEncoder_js_1.FixedVectorEncoder,e[index_js_1.Fields.purposeLegitimateInterests]=FixedVectorEncoder_js_1.FixedVectorEncoder,e[index_js_1.Fields.purposeOneTreatment]=BooleanEncoder_js_1.BooleanEncoder,e[index_js_1.Fields.publisherCountryCode]=LangEncoder_js_1.LangEncoder,e[index_js_1.Fields.vendorConsents]=VendorVectorEncoder_js_1.VendorVectorEncoder,e[index_js_1.Fields.vendorLegitimateInterests]=VendorVectorEncoder_js_1.VendorVectorEncoder,e[index_js_1.Fields.publisherRestrictions]=PurposeRestrictionVectorEncoder_js_1.PurposeRestrictionVectorEncoder,e.segmentType=IntEncoder_js_1.IntEncoder,e[index_js_1.Fields.vendorsDisclosed]=VendorVectorEncoder_js_1.VendorVectorEncoder,e[index_js_1.Fields.vendorsAllowed]=VendorVectorEncoder_js_1.VendorVectorEncoder,e[index_js_1.Fields.publisherConsents]=FixedVectorEncoder_js_1.FixedVectorEncoder,e[index_js_1.Fields.publisherLegitimateInterests]=FixedVectorEncoder_js_1.FixedVectorEncoder,e[index_js_1.Fields.numCustomPurposes]=IntEncoder_js_1.IntEncoder,e[index_js_1.Fields.publisherCustomConsents]=FixedVectorEncoder_js_1.FixedVectorEncoder,e[index_js_1.Fields.publisherCustomLegitimateInterests]=FixedVectorEncoder_js_1.FixedVectorEncoder,e}exports.FieldEncoderMap=FieldEncoderMap;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.FixedVectorEncoder=void 0;var BooleanEncoder_js_1=require(\"./BooleanEncoder.js\"),index_js_1=require(\"../../errors/index.js\"),index_js_2=require(\"../../model/index.js\"),FixedVectorEncoder=function(){function e(){}return e.encode=function(e,o){for(var n=\"\",r=1;r<=o;r++)n+=BooleanEncoder_js_1.BooleanEncoder.encode(e.has(r));return n},e.decode=function(e,o){if(e.length!==o)throw new index_js_1.DecodingError(\"bitfield encoding length mismatch\");for(var n=new index_js_2.Vector,r=1;r<=o;r++)BooleanEncoder_js_1.BooleanEncoder.decode(e[r-1])&&n.set(r);return n.bitLength=e.length,n},e}();exports.FixedVectorEncoder=FixedVectorEncoder;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.LangEncoder=void 0;var IntEncoder_js_1=require(\"./IntEncoder.js\"),index_js_1=require(\"../../errors/index.js\"),LangEncoder=function(){function e(){}return e.encode=function(e,n){var r=(e=e.toUpperCase()).charCodeAt(0)-65,o=e.charCodeAt(1)-65;if(r<0||r>25||o<0||o>25)throw new index_js_1.EncodingError(\"invalid language code: \".concat(e));if(n%2==1)throw new index_js_1.EncodingError(\"numBits must be even, \".concat(n,\" is not valid\"));return n/=2,IntEncoder_js_1.IntEncoder.encode(r,n)+IntEncoder_js_1.IntEncoder.encode(o,n)},e.decode=function(e,n){if(n!==e.length||e.length%2)throw new index_js_1.DecodingError(\"invalid bit length for language\");var r=e.length/2,o=IntEncoder_js_1.IntEncoder.decode(e.slice(0,r),r)+65,d=IntEncoder_js_1.IntEncoder.decode(e.slice(r),r)+65;return String.fromCharCode(o)+String.fromCharCode(d)},e}();exports.LangEncoder=LangEncoder;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.PurposeRestrictionVectorEncoder=void 0;var BitLength_js_1=require(\"../BitLength.js\"),BooleanEncoder_js_1=require(\"./BooleanEncoder.js\"),index_js_1=require(\"../../errors/index.js\"),IntEncoder_js_1=require(\"./IntEncoder.js\"),index_js_2=require(\"../../model/index.js\"),PurposeRestrictionVectorEncoder=function(){function e(){}return e.encode=function(e){var n=IntEncoder_js_1.IntEncoder.encode(e.numRestrictions,BitLength_js_1.BitLength.numRestrictions);return e.isEmpty()||e.getRestrictions().forEach((function(t){n+=IntEncoder_js_1.IntEncoder.encode(t.purposeId,BitLength_js_1.BitLength.purposeId),n+=IntEncoder_js_1.IntEncoder.encode(t.restrictionType,BitLength_js_1.BitLength.restrictionType);for(var r=e.getVendors(t),o=r.length,i=0,s=0,d=\"\",_=function(n){var t=r[n];0===s&&(i++,s=t);var _=r[o-1],c=e.gvl.vendorIds;if(n===o-1||r[n+1]>function(e){for(;++e<=_&&!c.has(e););return e}(t)){var B=!(t===s);d+=BooleanEncoder_js_1.BooleanEncoder.encode(B),d+=IntEncoder_js_1.IntEncoder.encode(s,BitLength_js_1.BitLength.vendorId),B&&(d+=IntEncoder_js_1.IntEncoder.encode(t,BitLength_js_1.BitLength.vendorId)),s=0}},c=0;c<o;c++)_(c);n+=IntEncoder_js_1.IntEncoder.encode(i,BitLength_js_1.BitLength.numEntries),n+=d})),n},e.decode=function(e){var n=0,t=new index_js_2.PurposeRestrictionVector,r=IntEncoder_js_1.IntEncoder.decode(e.substr(n,BitLength_js_1.BitLength.numRestrictions),BitLength_js_1.BitLength.numRestrictions);n+=BitLength_js_1.BitLength.numRestrictions;for(var o=0;o<r;o++){var i=IntEncoder_js_1.IntEncoder.decode(e.substr(n,BitLength_js_1.BitLength.purposeId),BitLength_js_1.BitLength.purposeId);n+=BitLength_js_1.BitLength.purposeId;var s=IntEncoder_js_1.IntEncoder.decode(e.substr(n,BitLength_js_1.BitLength.restrictionType),BitLength_js_1.BitLength.restrictionType);n+=BitLength_js_1.BitLength.restrictionType;var d=new index_js_2.PurposeRestriction(i,s),_=IntEncoder_js_1.IntEncoder.decode(e.substr(n,BitLength_js_1.BitLength.numEntries),BitLength_js_1.BitLength.numEntries);n+=BitLength_js_1.BitLength.numEntries;for(var c=0;c<_;c++){var B=BooleanEncoder_js_1.BooleanEncoder.decode(e.substr(n,BitLength_js_1.BitLength.anyBoolean));n+=BitLength_js_1.BitLength.anyBoolean;var g=IntEncoder_js_1.IntEncoder.decode(e.substr(n,BitLength_js_1.BitLength.vendorId),BitLength_js_1.BitLength.vendorId);if(n+=BitLength_js_1.BitLength.vendorId,B){var h=IntEncoder_js_1.IntEncoder.decode(e.substr(n,BitLength_js_1.BitLength.vendorId),BitLength_js_1.BitLength.vendorId);if(n+=BitLength_js_1.BitLength.vendorId,h<g)throw new index_js_1.DecodingError(\"Invalid RangeEntry: endVendorId \".concat(h,\" is less than \").concat(g));for(var L=g;L<=h;L++)t.add(L,d)}else t.add(g,d)}}return t.bitLength=n,t},e}();exports.PurposeRestrictionVectorEncoder=PurposeRestrictionVectorEncoder;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.VendorVectorEncoder=void 0;var index_js_1=require(\"../../model/index.js\"),index_js_2=require(\"../index.js\"),IntEncoder_js_1=require(\"./IntEncoder.js\"),BooleanEncoder_js_1=require(\"./BooleanEncoder.js\"),FixedVectorEncoder_js_1=require(\"./FixedVectorEncoder.js\"),VectorEncodingType_js_1=require(\"./VectorEncodingType.js\"),index_js_3=require(\"../../errors/index.js\"),VendorVectorEncoder=function(){function e(){}return e.encode=function(e){var n,d=[],r=[],t=IntEncoder_js_1.IntEncoder.encode(e.maxId,index_js_2.BitLength.maxId),o=\"\",i=index_js_2.BitLength.maxId+index_js_2.BitLength.encodingType,_=i+e.maxId,s=2*index_js_2.BitLength.vendorId+index_js_2.BitLength.singleOrRange+index_js_2.BitLength.numEntries,c=i+index_js_2.BitLength.numEntries;return e.forEach((function(t,i){(o+=BooleanEncoder_js_1.BooleanEncoder.encode(t),(n=e.maxId>s&&c<_)&&t)&&(e.has(i+1)?0===r.length&&(r.push(i),c+=index_js_2.BitLength.singleOrRange,c+=index_js_2.BitLength.vendorId):(r.push(i),c+=index_js_2.BitLength.vendorId,d.push(r),r=[]))})),n?(t+=String(VectorEncodingType_js_1.VectorEncodingType.RANGE),t+=this.buildRangeEncoding(d)):(t+=String(VectorEncodingType_js_1.VectorEncodingType.FIELD),t+=o),t},e.decode=function(e,n){var d,r=0,t=IntEncoder_js_1.IntEncoder.decode(e.substr(r,index_js_2.BitLength.maxId),index_js_2.BitLength.maxId);r+=index_js_2.BitLength.maxId;var o=IntEncoder_js_1.IntEncoder.decode(e.charAt(r),index_js_2.BitLength.encodingType);if(r+=index_js_2.BitLength.encodingType,o===VectorEncodingType_js_1.VectorEncodingType.RANGE){if(d=new index_js_1.Vector,1===n){if(\"1\"===e.substr(r,1))throw new index_js_3.DecodingError(\"Unable to decode default consent=1\");r++}var i=IntEncoder_js_1.IntEncoder.decode(e.substr(r,index_js_2.BitLength.numEntries),index_js_2.BitLength.numEntries);r+=index_js_2.BitLength.numEntries;for(var _=0;_<i;_++){var s=BooleanEncoder_js_1.BooleanEncoder.decode(e.charAt(r));r+=index_js_2.BitLength.singleOrRange;var c=IntEncoder_js_1.IntEncoder.decode(e.substr(r,index_js_2.BitLength.vendorId),index_js_2.BitLength.vendorId);if(r+=index_js_2.BitLength.vendorId,s){var j=IntEncoder_js_1.IntEncoder.decode(e.substr(r,index_js_2.BitLength.vendorId),index_js_2.BitLength.vendorId);r+=index_js_2.BitLength.vendorId;for(var E=c;E<=j;E++)d.set(E)}else d.set(c)}}else{var g=e.substr(r,t);r+=t,d=FixedVectorEncoder_js_1.FixedVectorEncoder.decode(g,t)}return d.bitLength=r,d},e.buildRangeEncoding=function(e){var n=e.length,d=IntEncoder_js_1.IntEncoder.encode(n,index_js_2.BitLength.numEntries);return e.forEach((function(e){var n=1===e.length;d+=BooleanEncoder_js_1.BooleanEncoder.encode(!n),d+=IntEncoder_js_1.IntEncoder.encode(e[0],index_js_2.BitLength.vendorId),n||(d+=IntEncoder_js_1.IntEncoder.encode(e[1],index_js_2.BitLength.vendorId))})),d},e}();exports.VendorVectorEncoder=VendorVectorEncoder;","\"use strict\";var VectorEncodingType;Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.VectorEncodingType=void 0,function(e){e[e.FIELD=0]=\"FIELD\",e[e.RANGE=1]=\"RANGE\"}(VectorEncodingType=exports.VectorEncodingType||(exports.VectorEncodingType={}));","\"use strict\";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)\"default\"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)};Object.defineProperty(exports,\"__esModule\",{value:!0}),__exportStar(require(\"./FieldSequence.js\"),exports),__exportStar(require(\"./SegmentSequence.js\"),exports),__exportStar(require(\"./SequenceVersionMap.js\"),exports);","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.FieldSequence=void 0;var index_js_1=require(\"../../model/index.js\"),FieldSequence=function(){var e,s;this[1]=((e={})[index_js_1.Segment.CORE]=[index_js_1.Fields.version,index_js_1.Fields.created,index_js_1.Fields.lastUpdated,index_js_1.Fields.cmpId,index_js_1.Fields.cmpVersion,index_js_1.Fields.consentScreen,index_js_1.Fields.consentLanguage,index_js_1.Fields.vendorListVersion,index_js_1.Fields.purposeConsents,index_js_1.Fields.vendorConsents],e),this[2]=((s={})[index_js_1.Segment.CORE]=[index_js_1.Fields.version,index_js_1.Fields.created,index_js_1.Fields.lastUpdated,index_js_1.Fields.cmpId,index_js_1.Fields.cmpVersion,index_js_1.Fields.consentScreen,index_js_1.Fields.consentLanguage,index_js_1.Fields.vendorListVersion,index_js_1.Fields.policyVersion,index_js_1.Fields.isServiceSpecific,index_js_1.Fields.useNonStandardStacks,index_js_1.Fields.specialFeatureOptins,index_js_1.Fields.purposeConsents,index_js_1.Fields.purposeLegitimateInterests,index_js_1.Fields.purposeOneTreatment,index_js_1.Fields.publisherCountryCode,index_js_1.Fields.vendorConsents,index_js_1.Fields.vendorLegitimateInterests,index_js_1.Fields.publisherRestrictions],s[index_js_1.Segment.PUBLISHER_TC]=[index_js_1.Fields.publisherConsents,index_js_1.Fields.publisherLegitimateInterests,index_js_1.Fields.numCustomPurposes,index_js_1.Fields.publisherCustomConsents,index_js_1.Fields.publisherCustomLegitimateInterests],s[index_js_1.Segment.VENDORS_ALLOWED]=[index_js_1.Fields.vendorsAllowed],s[index_js_1.Segment.VENDORS_DISCLOSED]=[index_js_1.Fields.vendorsDisclosed],s)};exports.FieldSequence=FieldSequence;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SegmentSequence=void 0;var index_js_1=require(\"../../model/index.js\"),SegmentSequence=function(e,s){if(this[1]=[index_js_1.Segment.CORE],this[2]=[index_js_1.Segment.CORE],2===e.version)if(e.isServiceSpecific)this[2].push(index_js_1.Segment.PUBLISHER_TC);else{var i=!(!s||!s.isForVendors);i&&!0!==e[index_js_1.Fields.supportOOB]||this[2].push(index_js_1.Segment.VENDORS_DISCLOSED),i&&(e[index_js_1.Fields.supportOOB]&&e[index_js_1.Fields.vendorsAllowed].size>0&&this[2].push(index_js_1.Segment.VENDORS_ALLOWED),this[2].push(index_js_1.Segment.PUBLISHER_TC))}};exports.SegmentSequence=SegmentSequence;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SemanticPreEncoder=void 0;var index_js_1=require(\"../errors/index.js\"),index_js_2=require(\"../model/index.js\"),SemanticPreEncoder=function(){function e(){}return e.process=function(e,r){var s=e.gvl;if(!s)throw new index_js_1.EncodingError(\"Unable to encode TCModel without a GVL\");if(!s.isReady)throw new index_js_1.EncodingError(\"Unable to encode TCModel tcModel.gvl.readyPromise is not resolved\");(e=e.clone()).consentLanguage=s.language.toUpperCase(),(null==r?void 0:r.version)>0&&(null==r?void 0:r.version)<=this.processor.length?e.version=r.version:e.version=this.processor.length;var n=e.version-1;if(!this.processor[n])throw new index_js_1.EncodingError(\"Invalid version: \".concat(e.version));return this.processor[n](e,s)},e.processor=[function(e){return e},function(e,r){e.publisherRestrictions.gvl=r,e.purposeLegitimateInterests.unset(1);var s=new Map;return s.set(\"legIntPurposes\",e.vendorLegitimateInterests),s.set(\"purposes\",e.vendorConsents),s.forEach((function(s,n){s.forEach((function(o,t){if(o){var i=r.vendors[t];if(!i||i.deletedDate)s.unset(t);else if(0===i[n].length)if(\"legIntPurposes\"===n&&0===i.purposes.length&&0===i.legIntPurposes.length&&i.specialPurposes.length>0);else if(e.isServiceSpecific)if(0===i.flexiblePurposes.length)s.unset(t);else{for(var c=e.publisherRestrictions.getRestrictions(t),l=!1,d=0,u=c.length;d<u&&!l;d++)l=c[d].restrictionType===index_js_2.RestrictionType.REQUIRE_CONSENT&&\"purposes\"===n||c[d].restrictionType===index_js_2.RestrictionType.REQUIRE_LI&&\"legIntPurposes\"===n;l||s.unset(t)}else s.unset(t)}}))})),e.vendorsDisclosed.set(r.vendors),e}],e}();exports.SemanticPreEncoder=SemanticPreEncoder;","\"use strict\";var __extends=this&&this.__extends||function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){if(\"function\"!=typeof r&&null!==r)throw new TypeError(\"Class extends value \"+String(r)+\" is not a constructor or null\");function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),__awaiter=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(s,o){function i(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,a)}u((n=n.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var r,n,s,o,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError(\"Generator is already executing.\");for(;i;)try{if(r=1,n&&(s=2&o[0]?n.return:o[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,o[1])).done)return s;switch(n=0,s&&(o=[2&o[0],s.value]),o[0]){case 0:case 1:s=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,n=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(s=i.trys,(s=s.length>0&&s[s.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!s||o[1]>s[0]&&o[1]<s[3])){i.label=o[1];break}if(6===o[0]&&i.label<s[1]){i.label=s[1],s=o;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(o);break}s[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e],n=0}finally{r=s=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.GVL=void 0;var Cloneable_js_1=require(\"./Cloneable.js\"),index_js_1=require(\"./errors/index.js\"),Json_js_1=require(\"./Json.js\"),index_js_2=require(\"./model/index.js\"),GVL=function(e){function t(r){var n=e.call(this)||this;n.isReady_=!1,n.isLatest=!1;var s=t.baseUrl;if(n.lang_=t.DEFAULT_LANGUAGE,n.isVendorList(r))n.populate(r),n.readyPromise=Promise.resolve();else{if(!s)throw new index_js_1.GVLError(\"must specify GVL.baseUrl before loading GVL json\");if(r>0){var o=r;t.CACHE.has(o)?(n.populate(t.CACHE.get(o)),n.readyPromise=Promise.resolve()):(s+=t.versionedFilename.replace(\"[VERSION]\",String(o)),n.readyPromise=n.fetchJson(s))}else t.CACHE.has(t.LATEST_CACHE_KEY)?(n.populate(t.CACHE.get(t.LATEST_CACHE_KEY)),n.readyPromise=Promise.resolve()):(n.isLatest=!0,n.readyPromise=n.fetchJson(s+t.latestFilename))}return n}return __extends(t,e),Object.defineProperty(t,\"baseUrl\",{get:function(){return this.baseUrl_},set:function(e){if(/^https?:\\/\\/vendorlist\\.consensu\\.org\\//.test(e))throw new index_js_1.GVLError(\"Invalid baseUrl! You may not pull directly from vendorlist.consensu.org and must provide your own cache\");e.length>0&&\"/\"!==e[e.length-1]&&(e+=\"/\"),this.baseUrl_=e},enumerable:!1,configurable:!0}),t.emptyLanguageCache=function(e){var r=!1;return void 0===e&&t.LANGUAGE_CACHE.size>0?(t.LANGUAGE_CACHE=new Map,r=!0):\"string\"==typeof e&&this.consentLanguages.has(e.toUpperCase())&&(t.LANGUAGE_CACHE.delete(e.toUpperCase()),r=!0),r},t.emptyCache=function(e){var r=!1;return Number.isInteger(e)&&e>=0?(t.CACHE.delete(e),r=!0):void 0===e&&(t.CACHE=new Map,r=!0),r},t.prototype.cacheLanguage=function(){t.LANGUAGE_CACHE.has(this.lang_)||t.LANGUAGE_CACHE.set(this.lang_,{purposes:this.purposes,specialPurposes:this.specialPurposes,features:this.features,specialFeatures:this.specialFeatures,stacks:this.stacks})},t.prototype.fetchJson=function(e){return __awaiter(this,void 0,void 0,(function(){var t,r;return __generator(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),t=this.populate,[4,Json_js_1.Json.fetch(e)];case 1:return t.apply(this,[n.sent()]),[3,3];case 2:throw r=n.sent(),new index_js_1.GVLError(r.message);case 3:return[2]}}))}))},t.prototype.getJson=function(){return JSON.parse(JSON.stringify({gvlSpecificationVersion:this.gvlSpecificationVersion,vendorListVersion:this.vendorListVersion,tcfPolicyVersion:this.tcfPolicyVersion,lastUpdated:this.lastUpdated,purposes:this.purposes,specialPurposes:this.specialPurposes,features:this.features,specialFeatures:this.specialFeatures,stacks:this.stacks,vendors:this.fullVendorList}))},t.prototype.changeLanguage=function(e){return __awaiter(this,void 0,void 0,(function(){var r,n,s,o,i;return __generator(this,(function(a){switch(a.label){case 0:if(r=e.toUpperCase(),!t.consentLanguages.has(r))return[3,6];if(r===this.lang_)return[3,5];if(this.lang_=r,!t.LANGUAGE_CACHE.has(r))return[3,1];for(s in n=t.LANGUAGE_CACHE.get(r))n.hasOwnProperty(s)&&(this[s]=n[s]);return[3,5];case 1:o=t.baseUrl+t.languageFilename.replace(\"[LANG]\",e),a.label=2;case 2:return a.trys.push([2,4,,5]),[4,this.fetchJson(o)];case 3:return a.sent(),this.cacheLanguage(),[3,5];case 4:throw i=a.sent(),new index_js_1.GVLError(\"unable to load language: \"+i.message);case 5:return[3,7];case 6:throw new index_js_1.GVLError(\"unsupported language \".concat(e));case 7:return[2]}}))}))},Object.defineProperty(t.prototype,\"language\",{get:function(){return this.lang_},enumerable:!1,configurable:!0}),t.prototype.isVendorList=function(e){return void 0!==e&&void 0!==e.vendors},t.prototype.populate=function(e){this.purposes=e.purposes,this.specialPurposes=e.specialPurposes,this.features=e.features,this.specialFeatures=e.specialFeatures,this.stacks=e.stacks,this.isVendorList(e)&&(this.gvlSpecificationVersion=e.gvlSpecificationVersion,this.tcfPolicyVersion=e.tcfPolicyVersion,this.vendorListVersion=e.vendorListVersion,this.lastUpdated=e.lastUpdated,\"string\"==typeof this.lastUpdated&&(this.lastUpdated=new Date(this.lastUpdated)),this.vendors_=e.vendors,this.fullVendorList=e.vendors,this.mapVendors(),this.isReady_=!0,this.isLatest&&t.CACHE.set(t.LATEST_CACHE_KEY,this.getJson()),t.CACHE.has(this.vendorListVersion)||t.CACHE.set(this.vendorListVersion,this.getJson())),this.cacheLanguage()},t.prototype.mapVendors=function(e){var t=this;this.byPurposeVendorMap={},this.bySpecialPurposeVendorMap={},this.byFeatureVendorMap={},this.bySpecialFeatureVendorMap={},Object.keys(this.purposes).forEach((function(e){t.byPurposeVendorMap[e]={legInt:new Set,consent:new Set,flexible:new Set}})),Object.keys(this.specialPurposes).forEach((function(e){t.bySpecialPurposeVendorMap[e]=new Set})),Object.keys(this.features).forEach((function(e){t.byFeatureVendorMap[e]=new Set})),Object.keys(this.specialFeatures).forEach((function(e){t.bySpecialFeatureVendorMap[e]=new Set})),Array.isArray(e)||(e=Object.keys(this.fullVendorList).map((function(e){return+e}))),this.vendorIds=new Set(e),this.vendors_=e.reduce((function(e,r){var n=t.vendors_[String(r)];return n&&void 0===n.deletedDate&&(n.purposes.forEach((function(e){t.byPurposeVendorMap[String(e)].consent.add(r)})),n.specialPurposes.forEach((function(e){t.bySpecialPurposeVendorMap[String(e)].add(r)})),n.legIntPurposes.forEach((function(e){t.byPurposeVendorMap[String(e)].legInt.add(r)})),n.flexiblePurposes&&n.flexiblePurposes.forEach((function(e){t.byPurposeVendorMap[String(e)].flexible.add(r)})),n.features.forEach((function(e){t.byFeatureVendorMap[String(e)].add(r)})),n.specialFeatures.forEach((function(e){t.bySpecialFeatureVendorMap[String(e)].add(r)})),e[r]=n),e}),{})},t.prototype.getFilteredVendors=function(e,t,r,n){var s=this,o=e.charAt(0).toUpperCase()+e.slice(1),i={};return(\"purpose\"===e&&r?this[\"by\"+o+\"VendorMap\"][String(t)][r]:this[\"by\"+(n?\"Special\":\"\")+o+\"VendorMap\"][String(t)]).forEach((function(e){i[String(e)]=s.vendors[String(e)]})),i},t.prototype.getVendorsWithConsentPurpose=function(e){return this.getFilteredVendors(\"purpose\",e,\"consent\")},t.prototype.getVendorsWithLegIntPurpose=function(e){return this.getFilteredVendors(\"purpose\",e,\"legInt\")},t.prototype.getVendorsWithFlexiblePurpose=function(e){return this.getFilteredVendors(\"purpose\",e,\"flexible\")},t.prototype.getVendorsWithSpecialPurpose=function(e){return this.getFilteredVendors(\"purpose\",e,void 0,!0)},t.prototype.getVendorsWithFeature=function(e){return this.getFilteredVendors(\"feature\",e)},t.prototype.getVendorsWithSpecialFeature=function(e){return this.getFilteredVendors(\"feature\",e,void 0,!0)},Object.defineProperty(t.prototype,\"vendors\",{get:function(){return this.vendors_},enumerable:!1,configurable:!0}),t.prototype.narrowVendorsTo=function(e){this.mapVendors(e)},Object.defineProperty(t.prototype,\"isReady\",{get:function(){return this.isReady_},enumerable:!1,configurable:!0}),t.prototype.clone=function(){var e=new t(this.getJson());return this.lang_!==t.DEFAULT_LANGUAGE&&e.changeLanguage(this.lang_),e},t.isInstanceOf=function(e){return\"object\"==typeof e&&\"function\"==typeof e.narrowVendorsTo},t.LANGUAGE_CACHE=new Map,t.CACHE=new Map,t.LATEST_CACHE_KEY=0,t.DEFAULT_LANGUAGE=\"EN\",t.consentLanguages=new index_js_2.ConsentLanguages,t.latestFilename=\"vendor-list.json\",t.versionedFilename=\"archives/vendor-list-v[VERSION].json\",t.languageFilename=\"purposes-[LANG].json\",t}(Cloneable_js_1.Cloneable);exports.GVL=GVL;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.Json=void 0;var Json=function(){function e(){}return e.absCall=function(e,t,n,r){return new Promise((function(o,s){var i=new XMLHttpRequest;i.withCredentials=n,i.addEventListener(\"load\",(function(){if(i.readyState==XMLHttpRequest.DONE)if(i.status>=200&&i.status<300){var e=i.response;if(\"string\"==typeof e)try{e=JSON.parse(e)}catch(e){}o(e)}else s(new Error(\"HTTP Status: \".concat(i.status,\" response type: \").concat(i.responseType)))})),i.addEventListener(\"error\",(function(){s(new Error(\"error\"))})),i.addEventListener(\"abort\",(function(){s(new Error(\"aborted\"))})),null===t?i.open(\"GET\",e,!0):i.open(\"POST\",e,!0),i.responseType=\"json\",i.timeout=r,i.ontimeout=function(){s(new Error(\"Timeout \"+r+\"ms \"+e))},i.send(t)}))},e.post=function(e,t,n,r){return void 0===n&&(n=!1),void 0===r&&(r=0),this.absCall(e,JSON.stringify(t),n,r)},e.fetch=function(e,t,n){return void 0===t&&(t=!1),void 0===n&&(n=0),this.absCall(e,null,t,n)},e}();exports.Json=Json;","\"use strict\";var __extends=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(t,n)};return function(t,n){if(\"function\"!=typeof n&&null!==n)throw new TypeError(\"Class extends value \"+String(n)+\" is not a constructor or null\");function s(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(s.prototype=n.prototype,new s)}}();Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.TCModel=void 0;var Cloneable_js_1=require(\"./Cloneable.js\"),index_js_1=require(\"./errors/index.js\"),GVL_js_1=require(\"./GVL.js\"),index_js_2=require(\"./model/index.js\"),TCModel=function(e){function t(t){var n=e.call(this)||this;return n.isServiceSpecific_=!1,n.supportOOB_=!0,n.useNonStandardStacks_=!1,n.purposeOneTreatment_=!1,n.publisherCountryCode_=\"AA\",n.version_=2,n.consentScreen_=0,n.policyVersion_=2,n.consentLanguage_=\"EN\",n.cmpId_=0,n.cmpVersion_=0,n.vendorListVersion_=0,n.numCustomPurposes_=0,n.specialFeatureOptins=new index_js_2.Vector,n.purposeConsents=new index_js_2.Vector,n.purposeLegitimateInterests=new index_js_2.Vector,n.publisherConsents=new index_js_2.Vector,n.publisherLegitimateInterests=new index_js_2.Vector,n.publisherCustomConsents=new index_js_2.Vector,n.publisherCustomLegitimateInterests=new index_js_2.Vector,n.vendorConsents=new index_js_2.Vector,n.vendorLegitimateInterests=new index_js_2.Vector,n.vendorsDisclosed=new index_js_2.Vector,n.vendorsAllowed=new index_js_2.Vector,n.publisherRestrictions=new index_js_2.PurposeRestrictionVector,t&&(n.gvl=t),n.updated(),n}return __extends(t,e),Object.defineProperty(t.prototype,\"gvl\",{get:function(){return this.gvl_},set:function(e){GVL_js_1.GVL.isInstanceOf(e)||(e=new GVL_js_1.GVL(e)),this.gvl_=e,this.publisherRestrictions.gvl=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cmpId\",{get:function(){return this.cmpId_},set:function(e){if(e=Number(e),!(Number.isInteger(e)&&e>1))throw new index_js_1.TCModelError(\"cmpId\",e);this.cmpId_=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cmpVersion\",{get:function(){return this.cmpVersion_},set:function(e){if(e=Number(e),!(Number.isInteger(e)&&e>-1))throw new index_js_1.TCModelError(\"cmpVersion\",e);this.cmpVersion_=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"consentScreen\",{get:function(){return this.consentScreen_},set:function(e){if(e=Number(e),!(Number.isInteger(e)&&e>-1))throw new index_js_1.TCModelError(\"consentScreen\",e);this.consentScreen_=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"consentLanguage\",{get:function(){return this.consentLanguage_},set:function(e){this.consentLanguage_=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"publisherCountryCode\",{get:function(){return this.publisherCountryCode_},set:function(e){if(!/^([A-z]){2}$/.test(e))throw new index_js_1.TCModelError(\"publisherCountryCode\",e);this.publisherCountryCode_=e.toUpperCase()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vendorListVersion\",{get:function(){return this.gvl?this.gvl.vendorListVersion:this.vendorListVersion_},set:function(e){if((e=Number(e)>>0)<0)throw new index_js_1.TCModelError(\"vendorListVersion\",e);this.vendorListVersion_=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"policyVersion\",{get:function(){return this.gvl?this.gvl.tcfPolicyVersion:this.policyVersion_},set:function(e){if(this.policyVersion_=parseInt(e,10),this.policyVersion_<0)throw new index_js_1.TCModelError(\"policyVersion\",e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"version\",{get:function(){return this.version_},set:function(e){this.version_=parseInt(e,10)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isServiceSpecific\",{get:function(){return this.isServiceSpecific_},set:function(e){this.isServiceSpecific_=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"useNonStandardStacks\",{get:function(){return this.useNonStandardStacks_},set:function(e){this.useNonStandardStacks_=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"supportOOB\",{get:function(){return this.supportOOB_},set:function(e){this.supportOOB_=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"purposeOneTreatment\",{get:function(){return this.purposeOneTreatment_},set:function(e){this.purposeOneTreatment_=e},enumerable:!1,configurable:!0}),t.prototype.setAllVendorConsents=function(){this.vendorConsents.set(this.gvl.vendors)},t.prototype.unsetAllVendorConsents=function(){this.vendorConsents.empty()},t.prototype.setAllVendorsDisclosed=function(){this.vendorsDisclosed.set(this.gvl.vendors)},t.prototype.unsetAllVendorsDisclosed=function(){this.vendorsDisclosed.empty()},t.prototype.setAllVendorsAllowed=function(){this.vendorsAllowed.set(this.gvl.vendors)},t.prototype.unsetAllVendorsAllowed=function(){this.vendorsAllowed.empty()},t.prototype.setAllVendorLegitimateInterests=function(){this.vendorLegitimateInterests.set(this.gvl.vendors)},t.prototype.unsetAllVendorLegitimateInterests=function(){this.vendorLegitimateInterests.empty()},t.prototype.setAllPurposeConsents=function(){this.purposeConsents.set(this.gvl.purposes)},t.prototype.unsetAllPurposeConsents=function(){this.purposeConsents.empty()},t.prototype.setAllPurposeLegitimateInterests=function(){this.purposeLegitimateInterests.set(this.gvl.purposes)},t.prototype.unsetAllPurposeLegitimateInterests=function(){this.purposeLegitimateInterests.empty()},t.prototype.setAllSpecialFeatureOptins=function(){this.specialFeatureOptins.set(this.gvl.specialFeatures)},t.prototype.unsetAllSpecialFeatureOptins=function(){this.specialFeatureOptins.empty()},t.prototype.setAll=function(){this.setAllVendorConsents(),this.setAllPurposeLegitimateInterests(),this.setAllSpecialFeatureOptins(),this.setAllPurposeConsents(),this.setAllVendorLegitimateInterests()},t.prototype.unsetAll=function(){this.unsetAllVendorConsents(),this.unsetAllPurposeLegitimateInterests(),this.unsetAllSpecialFeatureOptins(),this.unsetAllPurposeConsents(),this.unsetAllVendorLegitimateInterests()},Object.defineProperty(t.prototype,\"numCustomPurposes\",{get:function(){var e=this.numCustomPurposes_;if(\"object\"==typeof this.customPurposes){var t=Object.keys(this.customPurposes).sort((function(e,t){return Number(e)-Number(t)}));e=parseInt(t.pop(),10)}return e},set:function(e){if(this.numCustomPurposes_=parseInt(e,10),this.numCustomPurposes_<0)throw new index_js_1.TCModelError(\"numCustomPurposes\",e)},enumerable:!1,configurable:!0}),t.prototype.updated=function(){var e=new Date,t=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()));this.created=t,this.lastUpdated=t},t.consentLanguages=GVL_js_1.GVL.consentLanguages,t}(Cloneable_js_1.Cloneable);exports.TCModel=TCModel;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.TCString=void 0;var index_js_1=require(\"./encoder/index.js\"),index_js_2=require(\"./model/index.js\"),IntEncoder_js_1=require(\"./encoder/field/IntEncoder.js\"),TCModel_js_1=require(\"./TCModel.js\"),TCString=function(){function e(){}return e.encode=function(e,n){var r,t=\"\";return e=index_js_1.SemanticPreEncoder.process(e,n),(r=Array.isArray(null==n?void 0:n.segments)?n.segments:new index_js_1.SegmentSequence(e,n)[\"\"+e.version]).forEach((function(n,d){var s=\"\";d<r.length-1&&(s=\".\"),t+=index_js_1.SegmentEncoder.encode(e,n)+s})),t},e.decode=function(e,n){var r=e.split(\".\"),t=r.length;n||(n=new TCModel_js_1.TCModel);for(var d=0;d<t;d++){var s=r[d],i=index_js_1.Base64Url.decode(s.charAt(0)).substr(0,index_js_1.BitLength.segmentType),o=index_js_2.SegmentIDs.ID_TO_KEY[IntEncoder_js_1.IntEncoder.decode(i,index_js_1.BitLength.segmentType).toString()];index_js_1.SegmentEncoder.decode(s,n,o)}return n},e}();exports.TCString=TCString;","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isString } from '../common';\nimport { MobileAds } from '../MobileAds';\nimport { validateAdRequestOptions } from '../validateAdRequestOptions';\nimport { MobileAd } from './MobileAd';\nimport { AdEventType } from '../AdEventType';\nimport { AdEventListener } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { RequestOptions } from '../types/RequestOptions';\n\nexport class AppOpenAd extends MobileAd {\n protected static _appOpenRequest = 0;\n\n static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions) {\n if (!isString(adUnitId)) {\n throw new Error(\"AppOpenAd.createForAdRequest(*) 'adUnitId' expected an string value.\");\n }\n\n let options = {};\n try {\n options = validateAdRequestOptions(requestOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`AppOpenAd.createForAdRequest(_, *) ${e.message}.`);\n }\n }\n\n const requestId = AppOpenAd._appOpenRequest++;\n return new AppOpenAd('app_open', MobileAds(), requestId, adUnitId, options);\n }\n\n addAdEventsListener<T extends AdEventType>(listener: AdEventsListener<T>): () => void {\n return this._addAdEventsListener(listener);\n }\n\n addAdEventListener<T extends AdEventType>(type: T, listener: AdEventListener<T>) {\n return this._addAdEventListener(type, listener);\n }\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport {\n isPropertySet,\n isArray,\n isBoolean,\n isObject,\n isString,\n isUndefined,\n isValidUrl,\n} from './common';\nimport { RequestOptions } from './types/RequestOptions';\n\nexport function validateAdRequestOptions(options?: RequestOptions) {\n const out: RequestOptions = {};\n\n if (isUndefined(options)) {\n return out;\n }\n\n if (!isObject(options)) {\n throw new Error(\"'options' expected an object value\");\n }\n\n if (isPropertySet(options, 'requestNonPersonalizedAdsOnly')) {\n if (!isBoolean(options.requestNonPersonalizedAdsOnly)) {\n throw new Error(\"'options.requestNonPersonalizedAdsOnly' expected a boolean value\");\n }\n\n out.requestNonPersonalizedAdsOnly = options.requestNonPersonalizedAdsOnly;\n }\n\n if (options.networkExtras) {\n if (!isObject(options.networkExtras)) {\n throw new Error(\"'options.networkExtras' expected an object of key/value pairs\");\n }\n\n Object.entries(options.networkExtras).forEach(([key, value]) => {\n if (!isString(value)) {\n throw new Error(`'options.networkExtras' expected a string value for object key \"${key}\"`);\n }\n });\n\n out.networkExtras = options.networkExtras;\n }\n\n if (options.keywords) {\n if (!isArray(options.keywords)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n\n for (let i = 0; i < options.keywords.length; i++) {\n const keyword = options.keywords[i];\n\n if (!isString(keyword)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n }\n\n out.keywords = options.keywords;\n }\n\n if (options.contentUrl) {\n if (!isString(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a string value\");\n }\n\n if (!isValidUrl(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a valid HTTP or HTTPS url.\");\n }\n\n if (options.contentUrl.length > 512) {\n throw new Error(\"'options.contentUrl' maximum length of a content URL is 512 characters.\");\n }\n\n out.contentUrl = options.contentUrl;\n }\n\n if (options.requestAgent) {\n if (!isString(options.requestAgent)) {\n throw new Error(\"'options.requestAgent' expected a string value\");\n }\n\n out.requestAgent = options.requestAgent;\n }\n\n if (options.serverSideVerificationOptions) {\n if (!isObject(options.serverSideVerificationOptions)) {\n throw new Error(\n \"'options.serverSideVerificationOptions' expected an object of key/value pairs\",\n );\n }\n\n const ssvOptions = options.serverSideVerificationOptions;\n\n if (ssvOptions.userId && !isString(ssvOptions.userId)) {\n throw new Error(\"'options.serverSideVerificationOptions.userId' expected a string value\");\n }\n\n if (ssvOptions.customData && !isString(ssvOptions.customData)) {\n throw new Error(\"'options.serverSideVerificationOptions.customData' expected a string value\");\n }\n\n out.serverSideVerificationOptions = options.serverSideVerificationOptions;\n }\n\n if (options.customTargeting) {\n if (!isObject(options.customTargeting)) {\n throw new Error(\"'options.customTargeting' expected an object of key/value pairs\");\n }\n out.customTargeting = options.customTargeting;\n }\n\n if (options.publisherProvidedId) {\n if (!isString(options.publisherProvidedId)) {\n throw new Error(\"'options.publisherProvidedId' expected a string value\");\n }\n out.publisherProvidedId = options.publisherProvidedId;\n }\n\n return out;\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { EmitterSubscription } from 'react-native';\nimport { isFunction, isOneOf } from '../common';\nimport { NativeError } from '../internal/NativeError';\nimport { AdEventType } from '../AdEventType';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdEventListener, AdEventPayload } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { AdShowOptions } from '../types/AdShowOptions';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { MobileAdInterface } from '../types/MobileAd.interface';\nimport { MobileAdsModuleInterface } from '../types/MobileAdsModule.interface';\nimport { RewardedAdReward } from '../types/RewardedAdReward';\nimport { GAMAdEventType } from '../GAMAdEventType';\nimport { AppEvent } from '../types/AppEvent';\nimport { validateAdShowOptions } from '../validateAdShowOptions';\n\ntype EventType = AdEventType | RewardedAdEventType | GAMAdEventType;\n\nexport abstract class MobileAd implements MobileAdInterface {\n protected _type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial';\n protected _googleMobileAds: MobileAdsModuleInterface;\n protected _requestId: number;\n protected _adUnitId: string;\n protected _requestOptions: RequestOptions;\n protected _loaded: boolean;\n protected _isLoadCalled: boolean;\n protected _adEventsListeners: Map<number, AdEventsListener<EventType>>;\n protected _adEventListenersMap: Map<EventType, Map<number, AdEventListener<EventType>>>;\n protected _adEventsListenerId: number;\n protected _adEventListenerId: number;\n protected _nativeListener: EmitterSubscription;\n\n protected constructor(\n type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial',\n googleMobileAds: MobileAdsModuleInterface,\n requestId: number,\n adUnitId: string,\n requestOptions: RequestOptions,\n ) {\n this._type = type;\n this._googleMobileAds = googleMobileAds;\n this._requestId = requestId;\n this._adUnitId = adUnitId;\n this._requestOptions = requestOptions;\n\n this._loaded = false;\n this._isLoadCalled = false;\n this._adEventsListeners = new Map();\n this._adEventListenersMap = new Map();\n Object.values({\n ...AdEventType,\n ...RewardedAdEventType,\n ...GAMAdEventType,\n _: AdEventType.LOADED, // since AdEventType.LOADED is overwritten by RewardedAdEventType.LOADED\n }).forEach(type => {\n this._adEventListenersMap.set(type as EventType, new Map());\n });\n this._adEventListenerId = 0;\n this._adEventsListenerId = 0;\n\n this._nativeListener = googleMobileAds.emitter.addListener(\n `google_mobile_ads_${type}_event:${adUnitId}:${requestId}`,\n this._handleAdEvent.bind(this),\n );\n }\n\n protected _handleAdEvent(event: {\n body: {\n type: EventType;\n error?: { code: string; message: string };\n data?: RewardedAdReward | AppEvent;\n };\n }) {\n const { type, error, data } = event.body;\n\n if (type === AdEventType.LOADED || type === RewardedAdEventType.LOADED) {\n this._loaded = true;\n }\n\n if (type === AdEventType.CLOSED) {\n this._loaded = false;\n this._isLoadCalled = false;\n }\n\n if (type === AdEventType.ERROR) {\n this._loaded = false;\n this._isLoadCalled = false;\n }\n\n let payload: AdEventPayload<EventType> = data;\n if (error) {\n payload = NativeError.fromEvent(error, 'googleMobileAds');\n }\n this._adEventsListeners.forEach(listener => {\n listener({\n type,\n payload,\n });\n });\n this._getAdEventListeners(type).forEach(listener => {\n listener(payload);\n });\n }\n\n protected _addAdEventsListener<T extends EventType>(listener: AdEventsListener<T>) {\n if (!isFunction(listener)) {\n throw new Error(`${this._className}.addAdEventsListener(*) 'listener' expected a function.`);\n }\n\n const id = this._adEventsListenerId++;\n this._adEventsListeners.set(id, listener as AdEventsListener<EventType>);\n return () => {\n this._adEventsListeners.delete(id);\n };\n }\n\n protected _addAdEventListener<T extends EventType>(type: T, listener: AdEventListener<T>) {\n if (\n !(\n isOneOf(type, Object.values(AdEventType)) ||\n (isOneOf(type, Object.values(RewardedAdEventType)) &&\n (this._type === 'rewarded' || this._type === 'rewarded_interstitial'))\n )\n ) {\n throw new Error(\n `${this._className}.addAdEventListener(*) 'type' expected a valid event type value.`,\n );\n }\n if (!isFunction(listener)) {\n throw new Error(\n `${this._className}.addAdEventListener(_, *) 'listener' expected a function.`,\n );\n }\n\n const id = this._adEventListenerId++;\n this._getAdEventListeners(type).set(id, listener);\n return () => {\n this._getAdEventListeners(type).delete(id);\n };\n }\n\n protected _getAdEventListeners<T extends EventType>(type: T) {\n return this._adEventListenersMap.get(type) as Map<number, AdEventListener<T>>;\n }\n\n protected get _className() {\n return this.constructor.name;\n }\n\n protected get _camelCaseType() {\n let type: 'appOpen' | 'interstitial' | 'rewarded' | 'rewardedInterstitial';\n if (this._type === 'app_open') {\n type = 'appOpen';\n } else if (this._type === 'rewarded_interstitial') {\n type = 'rewardedInterstitial';\n } else {\n type = this._type;\n }\n return type;\n }\n\n public load() {\n // Prevent multiple load calls\n if (this._loaded || this._isLoadCalled) {\n return;\n }\n\n this._isLoadCalled = true;\n const load = this._googleMobileAds.native[`${this._camelCaseType}Load`];\n load(this._requestId, this._adUnitId, this._requestOptions);\n }\n\n public show(showOptions?: AdShowOptions) {\n if (!this._loaded) {\n throw new Error(\n `${this._className}.show() The requested ${this._className} has not loaded and could not be shown.`,\n );\n }\n\n let options;\n try {\n options = validateAdShowOptions(showOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`${this._className}.show(*) ${e.message}.`);\n } else {\n throw e;\n }\n }\n\n const show = this._googleMobileAds.native[`${this._camelCaseType}Show`];\n return show(this._requestId, this._adUnitId, options);\n }\n\n public abstract addAdEventsListener<T extends never>(listener: AdEventsListener<T>): () => void;\n\n public abstract addAdEventListener<T extends never>(type: T, listener: AdEventListener<T>): void;\n\n public removeAllListeners() {\n this._adEventsListeners.clear();\n this._adEventListenersMap.forEach((_, type, map) => {\n map.set(type, new Map());\n });\n }\n\n public get adUnitId() {\n return this._adUnitId;\n }\n\n public get loaded() {\n return this._loaded;\n }\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isPropertySet, isBoolean, isObject, isUndefined } from './common';\nimport { AdShowOptions } from './types/AdShowOptions';\n\nexport function validateAdShowOptions(options?: AdShowOptions) {\n const out: AdShowOptions = {};\n\n if (isUndefined(options)) {\n return out;\n }\n\n if (!isObject(options)) {\n throw new Error(\"'options' expected an object value\");\n }\n\n if (isPropertySet(options, 'immersiveModeEnabled')) {\n if (!isBoolean(options.immersiveModeEnabled)) {\n throw new Error(\"'options.immersiveModeEnabled' expected a boolean value\");\n }\n\n out.immersiveModeEnabled = options.immersiveModeEnabled;\n }\n\n return out;\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isString } from '../common';\nimport { MobileAds } from '../MobileAds';\nimport { validateAdRequestOptions } from '../validateAdRequestOptions';\nimport { MobileAd } from './MobileAd';\nimport { AdEventType } from '../AdEventType';\nimport { AdEventListener } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { RequestOptions } from '../types/RequestOptions';\n\n/**\n * A class for interacting and showing Interstitial Ads.\n *\n * An Interstitial advert can be pre-loaded and shown at a suitable point in your apps flow, such as at the end of a level\n * in a game. An Interstitial is a full screen advert, laid on-top of your entire application which the user can interact with.\n * Interactions are passed back via events which should be handled accordingly inside of your app.\n *\n * #### Example\n *\n * First create a new Interstitial instance, passing in your Ad Unit ID from the Google Mobile Ads configuration console, and any additional\n * request options. The example below will present a test advert, and only request a non-personalized ad.\n *\n * ```js\n * import { InterstitialAd, TestIds } from 'react-native-google-mobile-ads';\n *\n * const interstitial = InterstitialAd.createForAdRequest(TestIds.INTERSTITIAL, {\n * requestNonPersonalizedAdsOnly: true,\n * });\n * ```\n *\n * Each advert needs to be loaded from Google Mobile Ads before being shown. It is recommended this is performed before the user\n * reaches the checkpoint to show the advert, so it's ready to go. Before loading the advert, we need to setup\n * event listeners to listen for updates from Google Mobile Ads, such as advert loaded or failed to load.\n *\n * Event types match the `AdEventType` interface. Once the advert has loaded, we can trigger it to show:\n *\n * ```js\n * import { AdEventType } from 'react-native-google-mobile-ads';\n *\n * interstitialAd.addAdEventListener(AdEventType.Loaded, () => {\n * interstitialAd.show();\n * });\n *\n * interstitial.load();\n * ```\n *\n * The advert will be presented to the user, and several more events can be triggered such as the user clicking the\n * advert or closing it.\n */\nexport class InterstitialAd extends MobileAd {\n protected static _interstitialRequest = 0;\n /**\n * Creates a new InterstitialAd instance.\n *\n * #### Example\n *\n * ```js\n * import { InterstitialAd, AdEventType, TestIds } from 'react-native-google-mobile-ads';\n *\n * const interstitialAd = await InterstitialAd.createForAdRequest(TestIds.INTERSTITIAL, {\n * requestAgent: 'CoolAds',\n * });\n *\n * interstitialAd.addAdEventListener(AdEventType.Loaded, () => {\n * interstitialAd.show();\n * });\n *\n * interstitialAd.load();\n * ```\n *\n * @param adUnitId The Ad Unit ID for the Interstitial. You can find this on your Google Mobile Ads dashboard.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\n static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions) {\n if (!isString(adUnitId)) {\n throw new Error(\"InterstitialAd.createForAdRequest(*) 'adUnitId' expected an string value.\");\n }\n\n let options = {};\n try {\n options = validateAdRequestOptions(requestOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`InterstitialAd.createForAdRequest(_, *) ${e.message}.`);\n }\n }\n\n const requestId = InterstitialAd._interstitialRequest++;\n return new InterstitialAd('interstitial', MobileAds(), requestId, adUnitId, options);\n }\n\n addAdEventsListener<T extends AdEventType>(listener: AdEventsListener<T>) {\n return this._addAdEventsListener(listener);\n }\n\n addAdEventListener<T extends AdEventType>(type: T, listener: AdEventListener<T>) {\n return this._addAdEventListener(type, listener);\n }\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isString } from '../common';\nimport { MobileAds } from '../MobileAds';\nimport { validateAdRequestOptions } from '../validateAdRequestOptions';\nimport { MobileAd } from './MobileAd';\nimport { AdEventType } from '../AdEventType';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdEventListener } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { RequestOptions } from '../types/RequestOptions';\n\n/**\n * A class for interacting and showing Rewarded Ads.\n *\n * An Rewarded advert can be pre-loaded and shown at a suitable point in your apps flow, such as at the end of a level\n * in a game. The content of a rewarded advert can be controlled via your Google Mobile Ads dashboard. Typically users are rewarded\n * after completing a specific advert action (e.g. watching a video or submitting an option via an interactive form).\n * Events (such as the user earning a reward or closing a rewarded advert early) are sent back for you to handle accordingly\n * within your application.\n *\n * #### Example\n *\n * First create a new Rewarded instance, passing in your Ad Unit ID from the Google Mobile Ads configuration console, and any additional\n * request options. The example below will present a test advert, and only request a non-personalized ad.\n *\n * ```js\n * import { RewardedAd, TestIds } from 'react-native-google-mobile-ads';\n *\n * const rewarded = RewardedAd.createForAdRequest(TestIds.REWARDED, {\n * requestNonPersonalizedAdsOnly: true,\n * });\n * ```\n *\n * Each advert needs to be loaded from Google Mobile Ads before being shown. It is recommended this is performed before the user\n * reaches the checkpoint to show the advert, so it's ready to go. Before loading the advert, we need to setup\n * event listeners to listen for updates from Google Mobile Ads, such as advert loaded or failed to load.\n *\n * Event types match the `AdEventType` or `RewardedAdEventType` interface. The potential user reward for rewarded\n * adverts are passed back to the event handler on advert load and when the user earns the reward.\n *\n * ```js\n * import { RewardedAdEventType } from 'react-native-google-mobile-ads';\n *\n * rewarded.addAdEventListener(RewardedAdEventType.LOADED. () => {\n * rewarded.show();\n * });\n * rewarded.addAdEventListener(RewardedAdEventType.EARNED_REWARD. (reward) => {\n * console.log('User earned reward of ', reward);\n * });\n *\n * rewarded.load();\n * ```\n *\n * The rewarded advert will be presented to the user, and several more events can be triggered such as the user clicking the\n * advert, closing it or completing the action.\n */\nexport class RewardedAd extends MobileAd {\n protected static _rewardedRequest = 0;\n /**\n * Creates a new RewardedAd instance.\n *\n * #### Example\n *\n * ```js\n * import { RewardedAd, RewardedAdEventType, TestIds } from 'react-native-google-mobile-ads';\n *\n * const rewardedAd = await RewardedAd.createForAdRequest(TestIds.REWARDED, {\n * requestAgent: 'CoolAds',\n * });\n *\n * rewarded.addAdEventListener(RewardedAdEventType.LOADED. () => {\n * rewarded.show();\n * });\n * rewarded.addAdEventListener(RewardedAdEventType.EARNED_REWARD. (reward) => {\n * console.log('User earned reward of ', reward);\n * });\n *\n * rewardedAd.load();\n * ```\n *\n * @param adUnitId The Ad Unit ID for the Rewarded Ad. You can find this on your Google Mobile Ads dashboard.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\n static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions) {\n if (!isString(adUnitId)) {\n throw new Error(\"RewardedAd.createForAdRequest(*) 'adUnitId' expected an string value.\");\n }\n\n let options = {};\n try {\n options = validateAdRequestOptions(requestOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`RewardedAd.createForAdRequest(_, *) ${e.message}.`);\n }\n }\n\n const requestId = RewardedAd._rewardedRequest++;\n return new RewardedAd('rewarded', MobileAds(), requestId, adUnitId, options);\n }\n\n addAdEventsListener<T extends AdEventType | RewardedAdEventType>(\n listener: AdEventsListener<T>,\n ): () => void {\n return this._addAdEventsListener(listener);\n }\n\n addAdEventListener<T extends AdEventType | RewardedAdEventType>(\n type: T,\n listener: AdEventListener<T>,\n ) {\n if (type === AdEventType.LOADED) {\n throw new Error(\n 'RewardedAd.addAdEventListener(*) use RewardedAdEventType.LOADED instead of AdEventType.LOADED.',\n );\n }\n return this._addAdEventListener(type, listener);\n }\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isString } from '../common';\nimport { MobileAds } from '../MobileAds';\nimport { validateAdRequestOptions } from '../validateAdRequestOptions';\nimport { MobileAd } from './MobileAd';\nimport { AdEventType } from '../AdEventType';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdEventListener } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { RequestOptions } from '../types/RequestOptions';\n\n/**\n * A class for interacting and showing Rewarded Interstitial Ads.\n *\n * An Rewarded Interstitial advert can be pre-loaded and shown at a suitable point in your apps flow, such as at the end of a level\n * in a game. The content of a rewarded interstital advert can be controlled via your Google Mobile Ads dashboard. Typically users are rewarded\n * after completing a specific advert action (e.g. watching a video or submitting an option via an interactive form).\n * Events (such as the user earning a reward or closing a rewarded interstital advert early) are sent back for you to handle accordingly\n * within your application.\n *\n * #### Example\n *\n * First create a new Rewarded Interstitial instance, passing in your Ad Unit ID from the Google Mobile Ads configuration console, and any additional\n * request options. The example below will present a test advert, and only request a non-personalized ad.\n *\n * ```js\n * import { RewardedInterstitialAd, TestIds } from 'react-native-google-mobile-ads';\n *\n * const rewardedInterstitial = RewardedInterstitialAd.createForAdRequest(TestIds.REWARDED_INTERSTITIAL, {\n * requestNonPersonalizedAdsOnly: true,\n * });\n * ```\n *\n * Each advert needs to be loaded from Google Mobile Ads before being shown. It is recommended this is performed before the user\n * reaches the checkpoint to show the advert, so it's ready to go. Before loading the advert, we need to setup\n * event listeners to listen for updates from Google Mobile Ads, such as advert loaded or failed to load.\n *\n * Event types match the `AdEventType` or `RewardedAdEventType` interface. The potential user reward for rewarded interstitial\n * adverts are passed back to the event handler on advert load and when the user earns the reward.\n *\n * ```js\n * import { RewardedAdEventType } from 'react-native-google-mobile-ads';\n *\n * rewardedInterstitial.addAdEventListener(RewardedAdEventType.LOADED. () => {\n * rewarded.show();\n * });\n * rewardedInterstitial.addAdEventListener(RewardedAdEventType.EARNED_REWARD. (reward) => {\n * console.log('User earned reward of ', reward);\n * });\n *\n * rewardedInterstitial.load();\n * ```\n *\n * The rewarded interstitial advert will be presented to the user, and several more events can be triggered such as the user clicking the\n * advert, closing it or completing the action.\n */\nexport class RewardedInterstitialAd extends MobileAd {\n protected static _rewardedInterstitialRequest = 0;\n /**\n * Creates a new RewardedInterstitialAd instance.\n *\n * #### Example\n *\n * ```js\n * import { RewardedInterstitialAd, RewardedAdEventType, TestIds } from 'react-native-google-mobile-ads';\n *\n * const rewardedInterstitialAd = await RewardedInterstitialAd.createForAdRequest(TestIds.REWARDED_INTERSTITIAL, {\n * requestAgent: 'CoolAds',\n * });\n *\n * rewardedInterstitialAd.addAdEventListener(RewardedAdEventType.LOADED. () => {\n * rewardedInterstitialAd.show();\n * });\n * rewardedInterstitialAd.addAdEventListener(RewardedAdEventType.EARNED_REWARD. (reward) => {\n * console.log('User earned reward of ', reward);\n * });\n *\n * rewardedInterstitialAd.load();\n * ```\n *\n * @param adUnitId The Ad Unit ID for the Rewarded Interstitial Ad. You can find this on your Google Mobile Ads dashboard.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\n static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions) {\n if (!isString(adUnitId)) {\n throw new Error(\n \"RewardedInterstitialAd.createForAdRequest(*) 'adUnitId' expected an string value.\",\n );\n }\n\n let options = {};\n try {\n options = validateAdRequestOptions(requestOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`RewardedInterstitialAd.createForAdRequest(_, *) ${e.message}.`);\n }\n }\n\n const requestId = RewardedInterstitialAd._rewardedInterstitialRequest++;\n return new RewardedInterstitialAd(\n 'rewarded_interstitial',\n MobileAds(),\n requestId,\n adUnitId,\n options,\n );\n }\n\n addAdEventsListener<T extends AdEventType | RewardedAdEventType>(\n listener: AdEventsListener<T>,\n ): () => void {\n return this._addAdEventsListener(listener);\n }\n\n addAdEventListener<T extends AdEventType | RewardedAdEventType>(\n type: T,\n listener: AdEventListener<T>,\n ) {\n if (type === AdEventType.LOADED) {\n throw new Error(\n 'RewardedInterstitialAd.addAdEventListener(*) use RewardedAdEventType.LOADED instead of AdEventType.LOADED.',\n );\n }\n return this._addAdEventListener(type, listener);\n }\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport React from 'react';\nimport { BannerAdProps } from '../types/BannerAdProps';\nimport { BaseAd } from './BaseAd';\n\nexport function BannerAd({ size, ...props }: BannerAdProps) {\n return <BaseAd sizes={[size]} {...props} />;\n}\n","/* eslint-disable react/prop-types */\n/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport React, { useState, useEffect } from 'react';\nimport { NativeMethods, requireNativeComponent } from 'react-native';\nimport { isFunction } from '../common';\nimport { NativeError } from '../internal/NativeError';\nimport { BannerAdSize, GAMBannerAdSize } from '../BannerAdSize';\nimport { validateAdRequestOptions } from '../validateAdRequestOptions';\nimport { GAMBannerAdProps } from '../types/BannerAdProps';\nimport { RequestOptions } from '../types/RequestOptions';\n\ntype NativeEvent =\n | {\n type: 'onAdLoaded' | 'onSizeChange';\n width: number;\n height: number;\n }\n | { type: 'onAdOpened' | 'onAdClosed' }\n | {\n type: 'onAdFailedToLoad';\n code: string;\n message: string;\n }\n | {\n type: 'onAppEvent';\n name: string;\n data?: string;\n };\n\nconst sizeRegex = /([0-9]+)x([0-9]+)/;\n\nexport const BaseAd = React.forwardRef<GoogleMobileAdsBannerView, GAMBannerAdProps>(\n ({ unitId, sizes, requestOptions, manualImpressionsEnabled, ...props }, ref) => {\n const [dimensions, setDimensions] = useState<(number | string)[]>([0, 0]);\n\n useEffect(() => {\n if (!unitId) {\n throw new Error(\"BannerAd: 'unitId' expected a valid string unit ID.\");\n }\n }, [unitId]);\n\n useEffect(() => {\n if (\n sizes.length === 0 ||\n !sizes.every(\n size => size in BannerAdSize || size in GAMBannerAdSize || sizeRegex.test(size),\n )\n ) {\n throw new Error(\"BannerAd: 'size(s)' expected a valid BannerAdSize or custom size string.\");\n }\n }, [sizes]);\n\n const parsedRequestOptions = JSON.stringify(requestOptions);\n\n useEffect(() => {\n if (requestOptions) {\n try {\n validateAdRequestOptions(requestOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`BannerAd: ${e.message}`);\n }\n }\n }\n }, [parsedRequestOptions]);\n\n function onNativeEvent({ nativeEvent }: { nativeEvent: NativeEvent }) {\n const { type } = nativeEvent;\n\n if (type !== 'onSizeChange' && isFunction(props[type])) {\n let eventHandler, eventPayload;\n switch (type) {\n case 'onAdLoaded':\n eventPayload = {\n width: nativeEvent.width,\n height: nativeEvent.height,\n };\n if ((eventHandler = props[type])) eventHandler(eventPayload);\n break;\n case 'onAdFailedToLoad':\n eventPayload = NativeError.fromEvent(nativeEvent, 'googleMobileAds');\n if ((eventHandler = props[type])) eventHandler(eventPayload);\n break;\n case 'onAppEvent':\n eventPayload = {\n name: nativeEvent.name,\n data: nativeEvent.data,\n };\n if ((eventHandler = props[type])) eventHandler(eventPayload);\n break;\n default:\n if ((eventHandler = props[type])) eventHandler();\n }\n }\n\n if (type === 'onAdLoaded' || type === 'onSizeChange') {\n const { width, height } = nativeEvent;\n if (width && height) setDimensions([width, height]);\n }\n }\n\n const style = sizes.includes(GAMBannerAdSize.FLUID)\n ? {\n width: '100%',\n height: dimensions[1],\n }\n : {\n width: dimensions[0],\n height: dimensions[1],\n };\n\n return (\n <GoogleMobileAdsBannerView\n ref={ref}\n sizes={sizes}\n style={style}\n unitId={unitId}\n request={validateAdRequestOptions(requestOptions)}\n manualImpressionsEnabled={!!manualImpressionsEnabled}\n onNativeEvent={onNativeEvent}\n />\n );\n },\n);\nBaseAd.displayName = 'BaseAd';\n\ninterface NativeBannerProps {\n sizes: GAMBannerAdProps['sizes'];\n style: {\n width?: number | string;\n height?: number | string;\n };\n unitId: string;\n request: RequestOptions;\n manualImpressionsEnabled: boolean;\n onNativeEvent: (event: { nativeEvent: NativeEvent }) => void;\n}\n\nconst GoogleMobileAdsBannerView = requireNativeComponent<NativeBannerProps>(\n 'RNGoogleMobileAdsBannerView',\n);\nexport type GoogleMobileAdsBannerView = React.Component<NativeBannerProps> & NativeMethods;\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport React, { createRef } from 'react';\nimport { findNodeHandle, UIManager } from 'react-native';\nimport { GAMBannerAdProps } from '../types/BannerAdProps';\nimport { BaseAd, GoogleMobileAdsBannerView } from './BaseAd';\n\nexport class GAMBannerAd extends React.Component<GAMBannerAdProps> {\n private ref = createRef<GoogleMobileAdsBannerView>();\n\n recordManualImpression() {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(this.ref.current),\n 'recordManualImpression',\n undefined,\n );\n }\n\n render() {\n return <BaseAd ref={this.ref} {...this.props} />;\n }\n}\n","import { AdEventType } from '../AdEventType';\nimport { GAMAdEventType } from '../GAMAdEventType';\nimport { AdEventListener } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { InterstitialAd } from './InterstitialAd';\n\nexport class GAMInterstitialAd extends InterstitialAd {\n /**\n * Creates a new GAMInterstitialAd instance.\n *\n * #### Example\n *\n * ```js\n * import { GAMInterstitialAd, AdEventType, TestIds } from 'react-native-google-mobile-ads';\n *\n * const interstitialAd = await GAMInterstitialAd.createForAdRequest(TestIds.GAM_INTERSTITIAL, {\n * requestAgent: 'CoolAds',\n * });\n *\n * interstitialAd.addAdEventListener(AdEventType.Loaded, () => {\n * interstitialAd.show();\n * });\n *\n * interstitialAd.load();\n * ```\n *\n * @param adUnitId The Ad Unit ID for the Interstitial. You can find this on your Google Mobile Ads dashboard.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\n static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions) {\n return super.createForAdRequest(adUnitId, requestOptions) as GAMInterstitialAd;\n }\n\n addAdEventsListener<T extends AdEventType | GAMAdEventType>(listener: AdEventsListener<T>) {\n return this._addAdEventsListener(listener);\n }\n\n addAdEventListener<T extends AdEventType | GAMAdEventType>(\n type: T,\n listener: AdEventListener<T>,\n ) {\n return this._addAdEventListener(type, listener);\n }\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { useState } from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport { AppOpenAd } from '../ads/AppOpenAd';\nimport { AdHookReturns } from '../types/AdStates';\nimport { RequestOptions } from '../types/RequestOptions';\n\nimport { useFullScreenAd } from './useFullScreenAd';\n\n/**\n * React Hook for App Open Ad.\n *\n * @param adUnitId The Ad Unit ID for the App Open Ad. You can find this on your Google Mobile Ads dashboard. You can destroy ad instance by setting this value to null.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\nexport function useAppOpenAd(\n adUnitId: string | null,\n requestOptions: RequestOptions = {},\n): Omit<AdHookReturns, 'reward' | 'isEarnedReward'> {\n const [appOpenAd, setAppOpenAd] = useState<AppOpenAd | null>(null);\n\n useDeepCompareEffect(() => {\n setAppOpenAd(() => {\n return adUnitId ? AppOpenAd.createForAdRequest(adUnitId, requestOptions) : null;\n });\n }, [adUnitId, requestOptions]);\n\n return useFullScreenAd(appOpenAd);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\nvar dequal = require('dequal');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\n\nfunction checkDeps(deps) {\n if (!deps || !deps.length) {\n throw new Error('useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.');\n }\n\n if (deps.every(isPrimitive)) {\n throw new Error('useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.');\n }\n}\n\nfunction isPrimitive(val) {\n return val == null || /^[sbn]/.test(typeof val);\n}\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a momoized version of the value as long as it remains deeply equal\n */\n\n\nfunction useDeepCompareMemoize(value) {\n var ref = React__namespace.useRef(value);\n var signalRef = React__namespace.useRef(0);\n\n if (!dequal.dequal(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n\n return React__namespace.useMemo(function () {\n return ref.current;\n }, [signalRef.current]);\n}\n\nfunction useDeepCompareEffect(callback, dependencies) {\n if (process.env.NODE_ENV !== 'production') {\n checkDeps(dependencies);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n\n return React__namespace.useEffect(callback, useDeepCompareMemoize(dependencies));\n}\n\nfunction useDeepCompareEffectNoCheck(callback, dependencies) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React__namespace.useEffect(callback, useDeepCompareMemoize(dependencies));\n}\n\nexports[\"default\"] = useDeepCompareEffect;\nexports.useDeepCompareEffectNoCheck = useDeepCompareEffectNoCheck;\nexports.useDeepCompareMemoize = useDeepCompareMemoize;\n","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nfunction dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { Reducer, useCallback, useEffect, useReducer } from 'react';\n\nimport { AdEventType } from '../AdEventType';\nimport { AppOpenAd } from '../ads/AppOpenAd';\nimport { InterstitialAd } from '../ads/InterstitialAd';\nimport { RewardedAd } from '../ads/RewardedAd';\nimport { RewardedInterstitialAd } from '../ads/RewardedInterstitialAd';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdStates, AdHookReturns } from '../types/AdStates';\nimport { AdShowOptions } from '../types/AdShowOptions';\nimport { RewardedAdReward } from '../types/RewardedAdReward';\n\nconst initialState: AdStates = {\n isLoaded: false,\n isOpened: false,\n isClicked: false,\n isClosed: false,\n error: undefined,\n reward: undefined,\n isEarnedReward: false,\n};\n\nexport function useFullScreenAd<\n T extends AppOpenAd | InterstitialAd | RewardedAd | RewardedInterstitialAd | null,\n>(ad: T): AdHookReturns {\n const [state, setState] = useReducer<Reducer<AdStates, Partial<AdStates>>>(\n (prevState, newState) => ({ ...prevState, ...newState }),\n initialState,\n );\n const isShowing = state.isOpened && !state.isClosed;\n\n const load = useCallback(() => {\n if (ad) {\n setState(initialState);\n ad.load();\n }\n }, [ad]);\n\n const show = useCallback(\n (showOptions?: AdShowOptions) => {\n if (ad) {\n ad.show(showOptions);\n }\n },\n [ad],\n );\n\n useEffect(() => {\n setState(initialState);\n if (!ad) {\n return;\n }\n const unsubscribe = (ad as RewardedAd).addAdEventsListener(({ type, payload }) => {\n switch (type) {\n case AdEventType.LOADED:\n setState({ isLoaded: true });\n break;\n case AdEventType.OPENED:\n setState({ isOpened: true });\n break;\n case AdEventType.CLOSED:\n setState({ isClosed: true, isLoaded: false });\n break;\n case AdEventType.CLICKED:\n setState({ isClicked: true });\n break;\n case AdEventType.ERROR:\n setState({ error: payload as Error });\n break;\n case RewardedAdEventType.LOADED:\n setState({ isLoaded: true, reward: payload as RewardedAdReward });\n break;\n case RewardedAdEventType.EARNED_REWARD:\n setState({ isEarnedReward: true, reward: payload as RewardedAdReward });\n break;\n }\n });\n return () => {\n unsubscribe();\n };\n }, [ad]);\n\n return {\n ...state,\n isShowing,\n load,\n show,\n };\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { useState } from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport { InterstitialAd } from '../ads/InterstitialAd';\nimport { AdHookReturns } from '../types/AdStates';\nimport { RequestOptions } from '../types/RequestOptions';\n\nimport { useFullScreenAd } from './useFullScreenAd';\n\n/**\n * React Hook for Interstitial Ad.\n *\n * @param adUnitId The Ad Unit ID for the Interstitial Ad. You can find this on your Google Mobile Ads dashboard. You can destroy ad instance by setting this value to null.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\nexport function useInterstitialAd(\n adUnitId: string | null,\n requestOptions: RequestOptions = {},\n): Omit<AdHookReturns, 'reward' | 'isEarnedReward'> {\n const [interstitialAd, setInterstitialAd] = useState<InterstitialAd | null>(null);\n\n useDeepCompareEffect(() => {\n setInterstitialAd(() => {\n return adUnitId ? InterstitialAd.createForAdRequest(adUnitId, requestOptions) : null;\n });\n }, [adUnitId, requestOptions]);\n\n return useFullScreenAd(interstitialAd);\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { useState } from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport { RewardedAd } from '../ads/RewardedAd';\nimport { AdHookReturns } from '../types/AdStates';\nimport { RequestOptions } from '../types/RequestOptions';\n\nimport { useFullScreenAd } from './useFullScreenAd';\n\n/**\n * React Hook for Rewarded Ad.\n *\n * @param adUnitId The Ad Unit ID for the Rewarded Ad. You can find this on your Google Mobile Ads dashboard. You can destroy ad instance by setting this value to null.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\nexport function useRewardedAd(\n adUnitId: string | null,\n requestOptions: RequestOptions = {},\n): AdHookReturns {\n const [rewardedAd, setRewardedAd] = useState<RewardedAd | null>(null);\n\n useDeepCompareEffect(() => {\n setRewardedAd(() => {\n return adUnitId ? RewardedAd.createForAdRequest(adUnitId, requestOptions) : null;\n });\n }, [adUnitId, requestOptions]);\n\n return useFullScreenAd(rewardedAd);\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { useState } from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport { RewardedInterstitialAd } from '../ads/RewardedInterstitialAd';\nimport { AdHookReturns } from '../types/AdStates';\nimport { RequestOptions } from '../types/RequestOptions';\n\nimport { useFullScreenAd } from './useFullScreenAd';\n\n/**\n * React Hook for Rewarded Interstitial Ad.\n *\n * @param adUnitId The Ad Unit ID for the Rewarded Interstitial Ad. You can find this on your Google Mobile Ads dashboard. You can destroy ad instance by setting this value to null.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\nexport function useRewardedInterstitialAd(\n adUnitId: string | null,\n requestOptions: RequestOptions = {},\n): AdHookReturns {\n const [rewardedInterstitialAd, setRewardedInterstitialAd] =\n useState<RewardedInterstitialAd | null>(null);\n\n useDeepCompareEffect(() => {\n setRewardedInterstitialAd(() => {\n return adUnitId ? RewardedInterstitialAd.createForAdRequest(adUnitId, requestOptions) : null;\n });\n }, [adUnitId, requestOptions]);\n\n return useFullScreenAd(rewardedInterstitialAd);\n}\n","/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport * from './AdapterStatus';\nexport * from './AdEventListener';\nexport * from './AdEventsListener';\nexport * from './AdsConsent.interface';\nexport * from './AdShowOptions';\nexport * from './AdStates';\nexport * from './BannerAdProps';\nexport * from './RequestConfiguration';\nexport * from './RequestOptions';\nexport * from './RewardedAdReward';\nexport * from './AppEvent';\n","export enum InitializationState {\n /**\n * The mediation adapter is less likely to fill ad requests.\n */\n AdapterInitializationStateNotReady = 0,\n\n /**\n * The mediation adapter is ready to service ad requests.\n */\n AdapterInitializationStateReady = 1,\n}\n\n/**\n * An immutable snapshot of a mediation adapter's initialization status.\n */\nexport type AdapterStatus = {\n name: string;\n description: string;\n state: InitializationState;\n};\n","import React from \"react\"\nimport AsyncStorage from '@react-native-community/async-storage'\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nimport { examScheme } from \"../components/Variables\"\n\nlet tmpQuestions = []\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst generateQuestions = () => {\n\n AsyncStorage.getItem('setupData').then((value) => {\n let setupData = {}\n\n if(!value) {\n setupData = {\n randomQuestions: true,\n excludeDelta: true\n }\n AsyncStorage.setItem('setupData', JSON.stringify(setupData))\n } else {\n setupData = JSON.parse(value)\n }\n\n examScheme.forEach( (elem) => {\n let currentSection = setupData.excludeDelta ? allQuestions[elem.section].filter(item => !item.delta) : allQuestions[elem.section]\n for(let i=0; i<elem.questions; i++) {\n const currentIndex = Math.floor(Math.random() * currentSection.length)\n tmpQuestions.push(currentSection[currentIndex])\n currentSection = currentSection.filter( (item, index) => index != currentIndex)\n }\n })\n\n })/*.then( (res) => {})*/\n\n}\n\ngenerateQuestions()\n\nexport const examQuestions = tmpQuestions\n","const questions = [\n {\n \"id\": \"2001\",\n \"question\": \"Che cosa studia l’aerodinamica?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Le leggi della dinamica dei fluidi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Le leggi che regolano il moto di corpi solidi immersi in un fluido gassoso.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Lo spostamento delle masse d’aria nell’atmosfera terrestre.\"\n }\n ]\n },\n {\n \"id\": \"2002\",\n \"question\": \"Che cosa è un’ala?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È un corpo di forma prestabilita che genera portanza aerodinamica in ogni condizione.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È un corpo di forma appropriata che posto in movimento rispetto all’aria genera forze aerodinamiche.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"È un corpo di forma qualsiasi che genera solo portanza quando posto in movimento rispetto all’aria.\"\n }\n ]\n },\n {\n \"id\": \"2003\",\n \"question\": \"Che cosa s’intende per \\\"profilo alare\\\"?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La proiezione dell’ala sul piano orizzontale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"La proiezione dell’ala sul piano verticale passante per le estremità alari.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"La sezione di un’ala, determinata su un piano perpendicolare all’asse trasversale.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2004\",\n \"question\": \"Quali sono i più comuni tipi di profilo alare utilizzati nel VDS/VL?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Piano convesso ed ellittico simmetrico.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Cavo convesso e biconvesso simmetrico.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Concavo convesso, piano convesso e biconvesso.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2005\",\n \"question\": \"Che cosa s’intende rispettivamente per bordo d’attacco e per bordo d’uscita di un’ala?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La parte dell’ala che si attacca alla fusoliera e l’estremità alare.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Il bordo esterno ed interno dell’ala.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Il bordo anteriore ed il bordo posteriore di un’ala.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2006\",\n \"question\": \"Che cosa è la corda alare o aerodinamica?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È il segmento di retta che unisce il bordo d’attacco al bordo d’uscita del profilo alare.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È il segmento di retta che identifica il piano di simmetria dell’ala.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È la distanza tra le due estremità alari.\"\n }\n ]\n },\n {\n \"id\": \"2007\",\n \"question\": \"Che cosa s’intende rispettivamente per estradosso e intradosso di un’ala?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La superficie inferiore e la superficie superiore dell’ala stessa.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"La superficie superiore ed inferiore dell’ala stessa.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"La superficie interna ed esterna dell’ala stessa.\"\n }\n ]\n },\n {\n \"id\": \"2008\",\n \"question\": \"Che cosa s’intende per apertura alare?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La distanza tra le due estremità alari.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"La distanza tra bordo d’attacco e bordo d’uscita del profilo alare.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"La massima distanza tra estradosso ed intradosso dell’ala.\"\n }\n ]\n },\n {\n \"id\": \"2009\",\n \"question\": \"Che cosa s’intende per allungamento di un’ala?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la distanza tra le estremità alari.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È il rapporto tra superficie alare e apertura alare.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È il rapporto tra il quadrato dell’apertura alare e la superficie dell’ala.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2010\",\n \"question\": \"Quant’è l’allungamento di un’ala di 25 m2 di superficie dotata di un’apertura alare di 10 m?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"4 (quattro).\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"2.5 (due virgola cinque).\"\n },\n {\n \"id\": \"3\",\n \"text\": \"6.25 (sei virgola venticinque).\"\n }\n ]\n },\n {\n \"id\": \"2011\",\n \"question\": \"Quali sono gli assi attorno ai quali si muove un’ala?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Quello longitudinale e quello verticale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Quello longitudinale, quello trasversale e quello verticale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Quello longitudinale e quello trasversale.\"\n }\n ]\n },\n {\n \"id\": \"2012\",\n \"question\": \"Come si chiama il movimento di un’ala rispetto al suo asse longitudinale?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Rollio.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Imbardata.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Beccheggio.\"\n }\n ]\n },\n {\n \"id\": \"2013\",\n \"question\": \"Come si chiama il movimento di un’ala rispetto al suo asse trasversale?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Rollio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Imbardata.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Beccheggio.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2014\",\n \"question\": \"Come si chiama il movimento di un’ala rispetto al suo asse verticale?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Rollio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Imbardata.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Beccheggio.\"\n }\n ]\n },\n {\n \"id\": \"2015\",\n \"question\": \"L’ala può essere considerata una \\\"macchina\\\"?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, perché priva di particolari meccanismi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Solo se dotata di superfici mobili.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, perché trasforma un tipo di energia in energia di tipo diverso.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2016\",\n \"question\": \"Il movimento di un’ala:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"perturba l’aria circostante all’interno del così detto \\\"tubo di flusso\\\".\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"non disturba l’aria circostante.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"perturba l’aria circostante, ma solo al di fuori di un \\\"tubo di flusso\\\".\"\n }\n ]\n },\n {\n \"id\": \"2017\",\n \"question\": \"Per quale motivo parlando di aerodinamica è necessario fare riferimento al \\\"tubo di flusso\\\"?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché si usa fare così in fisica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Perché gli esperimenti in galleria del vento sono effettuati in un locale a forma di tubo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché le leggi dell’aerodinamica che regolano il volo valgono all’interno appunto di un tubo ideale detto \\\"tubo di flusso\\\".\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2018\",\n \"question\": \"Che cosa è un \\\"tubo di flusso\\\"?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La porzione di aria perturbata dal passaggio di un’ala.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Un congegno per la misura della velocità di un’ala.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"La zona interessata dalla sola scia di un’ala in movimento.\"\n }\n ]\n },\n {\n \"id\": \"2019\",\n \"question\": \"All’interno di un \\\"tubo di flusso\\\":\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la presenza di un solido perturba comunque il flusso del fluido.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"la presenza di un solido opportunamente profilato non disturba il flusso di un fluido.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la presenza di un solido determina necessariamente una variazione di portata.\"\n }\n ]\n },\n {\n \"id\": \"2020\",\n \"question\": \"Un profilo investito da aria in movimento determina gli stessi effetti aerodinamici di un profilo che si muove nell’aria?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, indipendentemente dalla velocità e direzione del movimento relativo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma solo se coincidono velocità e direzione del movimento relativo.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Dipende solamente dalla forma del corpo solido.\"\n }\n ]\n },\n {\n \"id\": \"2021\",\n \"question\": \"Che cosa è il vento relativo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La differenza di velocità dell’aria che si riscontra sulle due semiali in virata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Il vento incontrato dall’ala in quanto in movimento o il movimento relativo dell’aria rispetto all’ala.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"La differenza di velocità dell’aria su estradosso ed intradosso dell’ala in volo.\"\n }\n ]\n },\n {\n \"id\": \"2022\",\n \"question\": \"La velocità di cui è dotata un’ala e le forze a essa applicate quando vola sono:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"grandezze fisiche rappresentabili con vettori (con direzione, verso, intensità e punto d’applicazione definiti) che si possono comporre o scomporre tra loro.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"grandezze fisiche che non si possono rappresentare graficamente ma che possono sommarsi e sottrarsi geometricamente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"grandezze numeriche semplici con le quali è quindi possibile effettuare qualsiasi operazione.\"\n }\n ]\n },\n {\n \"id\": \"2023\",\n \"question\": \"Quando si parla di pressione di un fluido su una superficie che cosa s’intende?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È il prodotto della superficie per la forza che il fluido esercita sulla stessa.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È il rapporto tra la forza che il fluido esercita sulla superficie e il quadrato della superficie stessa.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È la forza che il fluido stesso esercita sull’ unità di superficie.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2024\",\n \"question\": \"La pressione di un fluido in movimento all’interno di un tubo di flusso è la somma di:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"pressione dinamica e peso del fluido.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"pressione dinamica e pressione statica.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"pressione statica e portata del tubo di flusso.\"\n }\n ]\n },\n {\n \"id\": \"2025\",\n \"question\": \"Che cosa è la pressione statica di un fluido?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È il rapporto tra peso e velocità del fluido.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È il rapporto tra peso e densità del fluido.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È il peso della colonna di fluido che insiste sull’unità di superficie.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2026\",\n \"question\": \"Che cosa è la pressione dinamica di un fluido?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È il rapporto tra la velocità di un fluido in movimento e la sua densità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È il rapporto tra la velocità di un fluido in movimento e la superficie del solido immerso in esso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È la pressione che un fluido esercita sulla superficie di un solido immerso in esso per effetto della velocità di scorrimento.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2027\",\n \"question\": \"Che cosa rappresenta l’espressione \\\"1/2 ρ V2\\\"?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La densità dell’aria ad una certa velocità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"La pressione statica di un fluido la cui densità è pari a \\\"ρ\\\".\"\n },\n {\n \"id\": \"3\",\n \"text\": \"La pressione dinamica di un fluido la cui densità è pari a \\\"ρ\\\" e la cui velocità è pari a \\\"V\\\".\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2028\",\n \"question\": \"La portanza e la resistenza sono direttamente proporzionali:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"alla pressione statica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"alla pressione dinamica.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"alla pressione totale.\"\n }\n ]\n },\n {\n \"id\": \"2029\",\n \"question\": \"I filetti fluidi che incontrano un profilo alare generando portanza, con quale principale differenza scorrono sulle superfici?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Differenza di velocità.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Differenza di densità.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Differenza molecolare.\"\n }\n ]\n },\n {\n \"id\": \"2030\",\n \"question\": \"La velocità dell’aria su un’ala in volo è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"maggiore sull’estradosso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"maggiore sull’intradosso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"identica sulle due superfici dell’ala.\"\n }\n ]\n },\n {\n \"id\": \"2031\",\n \"question\": \"Un profilo in volo genera una pressione dinamica:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"maggiore sull’estradosso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"minore sull’estradosso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"identica sulle due superfici dell’ala.\"\n }\n ]\n },\n {\n \"id\": \"2032\",\n \"question\": \"Un profilo in volo genera una pressione statica:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"identica sulle due superfici dell’ala.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"maggiore sull’estradosso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"minore sull’estradosso.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2033\",\n \"question\": \"La legge di Bernoully dice:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"che la somma della pressione statica e dinamica del fluido non è costante.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"che la somma della pressione statica e dinamica del fluido è costante.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"che l’andamento della pressione statica del fluido non dipende da quello della pressione dinamica dello stesso.\"\n }\n ]\n },\n {\n \"id\": \"2034\",\n \"question\": \"Che cosa mette in evidenza la legge di Bernoully in un tubo di Venturi a portata costante?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Che variando la sezione del tubo, pressione e velocità del fluido rimangono invariate.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Che variando la sezione del tubo, varia solo la pressione dinamica del fluido.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Che variando la sezione del tubo variano velocità, pressione statica e pressione dinamica. La pressione totale non varia.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2035\",\n \"question\": \"In un tubo di Venturi avente portata costante, al variare della sezione:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la velocità del fluido varia.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"la velocità del fluido non varia.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la pressione totale del fluido varia.\"\n }\n ]\n },\n {\n \"id\": \"2036\",\n \"question\": \"In un tubo di Venturi avente portata costante la somma della pressione statica e della pressione dinamica del fluido (pressione totale):\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"è variabile al variare della sezione.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"è costante al variare della sezione.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"dipende dalla densità del fluido.\"\n }\n ]\n },\n {\n \"id\": \"2037\",\n \"question\": \"All’interno di un tubo di flusso a portata costante, se la sezione diminuisce:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la velocità del fluido aumenta e la sua pressione dinamica diminuisce.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"la velocità del fluido aumenta e la sua pressione dinamica aumenta.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"la velocità del fluido aumenta e quindi la pressione totale varia.\"\n }\n ]\n },\n {\n \"id\": \"2038\",\n \"question\": \"All’interno di un tubo di flusso a portata costante dove la sezione aumenta:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la velocità del fluido diminuisce e la sua pressione statica aumenta.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"la velocità del fluido diminuisce e la sua pressione statica diminuisce.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la velocità del fluido diminuisce e quindi la pressione totale varia.\"\n }\n ]\n },\n {\n \"id\": \"2039\",\n \"question\": \"L’ala di un deltaplano o di un parapendio utilizza il principio di Bernoully applicato a un tubo Venturi?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, ma non nel volo in termica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"No.\"\n }\n ]\n },\n {\n \"id\": \"2040\",\n \"question\": \"I profili del deltaplano e del parapendio sono principalmente di tipo:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"biconvesso simmetrico.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"piano-convesso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"concavo-convesso o biconvesso.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2041\",\n \"question\": \"Che cosa è la risultante aerodinamica?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la risultante di tutte le forze prodotte dall’ala in movimento rispetto all’aria.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È la risultante o somma vettoriale del peso e della portanza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È una forza sempre diretta perpendicolarmente alla traiettoria di volo.\"\n }\n ]\n },\n {\n \"id\": \"2042\",\n \"question\": \"La risultante aerodinamica è una forza:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"perpendicolare alla traiettoria di volo o al vento relativo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"sempre parallela alla traiettoria di volo o al vento relativo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"diretta verso l’alto e per questo in grado di contrastare la forza peso.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2043\",\n \"question\": \"La risultante aerodinamica si scompone in portanza e resistenza. Esse sono rispettivamente:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la portanza perpendicolare alla corda alare e la resistenza parallela alla corda alare.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"la portanza perpendicolare alla traiettoria di volo od alla direzione del vento relativo, la resistenza parallela ad esse.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"la portanza parallela al vento relativo od alla traiettoria di volo, la resistenza perpendicolare ad essi.\"\n }\n ]\n },\n {\n \"id\": \"2044\",\n \"question\": \"Se un profilo alare è investito da un vento relativo, si può sempre affermare che:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"si genera portanza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"non si genera portanza senza che si generi resistenza.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"la resistenza generata dipende unicamente dalla forma del profilo.\"\n }\n ]\n },\n {\n \"id\": \"2045\",\n \"question\": \"Nel volo del deltaplano e del parapendio:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la resistenza è uguale e opposta alla velocità sulla traiettoria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"la resistenza a velocità costante, è uguale e opposta alla componente del peso lungo la traiettoria.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"la portanza e la resistenza si equilibrano.\"\n }\n ]\n },\n {\n \"id\": \"2046\",\n \"question\": \"La resistenza è una forza aerodinamica che può essere considerata:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"sempre perpendicolare alla traiettoria di volo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"sempre parallela alla corda aerodinamica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"sempre parallela alla traiettoria di volo o alla direzione del vento relativo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2047\",\n \"question\": \"Qual è la formula della resistenza?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"R = 1/2 ρ S Cr V2\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"R = 1/2 ρ S2 Cr V\"\n },\n {\n \"id\": \"3\",\n \"text\": \"R = 1/2 ρ S Cr V\"\n }\n ]\n },\n {\n \"id\": \"2048\",\n \"question\": \"In quale modo varia la resistenza aerodinamica di un’ala variando la densità dell’aria e la superficie dell’ala stessa?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Non varia in alcun modo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Varia proporzionalmente.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Varia in modo inversamente proporzionale.\"\n }\n ]\n },\n {\n \"id\": \"2049\",\n \"question\": \"Di quanto varia la resistenza aerodinamica di un profilo alare triplicandone la velocità:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"del triplo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"non varia.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"diviene nove volte più grande.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2050\",\n \"question\": \"Che cosa è il Cr?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Un coefficiente numerico che dipende dal carico alare.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Un coefficiente numerico che dipende dalla forma del profilo e dalla sua incidenza di volo.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Una forza che dipende dalla forma del profilo e dalla sua incidenza di volo.\"\n }\n ]\n },\n {\n \"id\": \"2051\",\n \"question\": \"Da quali tipi di resistenza è composta la resistenza aerodinamica di un’ala di deltaplano o parapendio?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Dalla resistenza di attrito, da quella di forma e da quella indotta.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Dalla resistenza di forma e da quella indotta.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Dalla resistenza di attrito e da quella di forma.\"\n }\n ]\n },\n {\n \"id\": \"2052\",\n \"question\": \"Che cosa è la resistenza di forma?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la parte di resistenza dovuta alla forma più o meno aerodinamica di un corpo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È la parte di resistenza dovuta alle dimensioni del corpo indipendentemente dalla forma aerodinamica dello stesso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È una forza il cui valore può essere nullo se la forma del corpo è molto aerodinamica.\"\n }\n ]\n },\n {\n \"id\": \"2053\",\n \"question\": \"Su quale tipo di resistenza influisce principalmente lo spessore del profilo alare?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Sulla resistenza di attrito.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Sulla resistenza indotta.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Sulla resistenza di forma.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2054\",\n \"question\": \"La resistenza di forma:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"aumenta all’aumentare della velocità.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"diminuisce all’aumentare della velocità.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"non varia al variare della velocità.\"\n }\n ]\n },\n {\n \"id\": \"2055\",\n \"question\": \"Che cosa è la resistenza di attrito?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la parte di resistenza dovuta alle dimensioni dell’ala.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È la parte di resistenza dovuta all’attrito dell’aria sulla superficie dell’ala.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"È la parte di resistenza dovuta alla presenza inevitabile dei vortici marginali.\"\n }\n ]\n },\n {\n \"id\": \"2056\",\n \"question\": \"Che cosa s’intende per strato limite?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Lo strato d’aria compreso tra superficie alare e superficie interna del tubo di flusso in cui vola l’ala.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Lo strato d’aria immediatamente esterno al tubo di flusso in cui è immersa l’ala.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Lo strato d’aria più prossimo all’ala compreso tra la superficie alare e lo strato nel quale la velocità del vento relativo è quella di regime.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2057\",\n \"question\": \"La resistenza d’attrito:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"dipende anche dalla natura dello strato limite.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"non dipende dalla natura dello strato limite.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"dipende dalla forma e dalle dimensioni dell’ala.\"\n }\n ]\n },\n {\n \"id\": \"2058\",\n \"question\": \"Come varia la resistenza d’attrito al variare della velocità?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Aumenta al diminuire della velocità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Aumenta all’aumentare della velocità.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Rimane costante al variare della velocità.\"\n }\n ]\n },\n {\n \"id\": \"2059\",\n \"question\": \"Che cosa è la resistenza indotta?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la parte di resistenza dovuta al prodursi dei vortici marginali o d’estremità alare.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È la parte di resistenza dovuta all’attrito dell’aria sulla superficie alare.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È la parte di resistenza dovuta alla forma e alle dimensioni dell’ala.\"\n }\n ]\n },\n {\n \"id\": \"2060\",\n \"question\": \"La resistenza indotta è originata:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"dall’attrito dell’aria sulla superficie alare che produce i vortici marginali.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"dallo spessore più o meno rilevante dell’ala che oltre certi valori produce vortici marginali.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"dalla differenza di pressione statica sotto e sopra l’ala.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2061\",\n \"question\": \"E’ vero che la resistenza indotta dipende dall’allungamento alare?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si e da nessun altro parametro o fattore.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, anche da esso ed è minore quando è maggiore l’allungamento.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"No.\"\n }\n ]\n },\n {\n \"id\": \"2062\",\n \"question\": \"La resistenza indotta varia al variare della velocità?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, aumenta all’aumentare della velocità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, diminuisce all’aumentare della velocità.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2063\",\n \"question\": \"A parità di altre condizioni un’ala con allungamento maggiore:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"è più efficiente.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"è meno efficiente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"è più resistente.\"\n }\n ]\n },\n {\n \"id\": \"2064\",\n \"question\": \"Lo scopo principale per cui si tende ad aumentare l’allungamento è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"ottenere minore resistenza di forma.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"ottenere minore resistenza d’attrito.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"ottenere minore resistenza indotta.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2065\",\n \"question\": \"L’unica resistenza che diminuisce all’aumentare della velocità è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"quella d’attrito.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"quella indotta.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"quella di forma.\"\n }\n ]\n },\n {\n \"id\": \"2066\",\n \"question\": \"In che modo la resistenza aerodinamica è proporzionale alla velocità?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Direttamente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Inversamente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Direttamente e al quadrato della stessa.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2067\",\n \"question\": \"Diminuendo la resistenza aerodinamica di un profilo a parità di altre condizioni si ottiene:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"un miglioramento delle prestazioni con una maggiore efficienza.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"solo una maggiore velocità massima.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"solo un minor tasso minimo di caduta.\"\n }\n ]\n },\n {\n \"id\": \"2068\",\n \"question\": \"La resistenza aerodinamica varia al variare dell’angolo d’incidenza?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma solo in virata.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2069\",\n \"question\": \"Si può diminuire la resistenza aerodinamica sino a ridurla a zero in volo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, variando opportunamente l’angolo d’incidenza\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, in almeno due modi\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2070\",\n \"question\": \"Adottando un profilo sottilissimo:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la resistenza assume valore zero con incidenza zero.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"la resistenza non si annulla comunque.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"la resistenza si annulla se la superficie alare è perfettamente levigata.\"\n }\n ]\n },\n {\n \"id\": \"2071\",\n \"question\": \"Che cos’è la portanza?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È una forza ed è la componente della risultante aerodinamica, parallela alla direzione del vento relativo o alla traiettoria di volo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È una forza ed è la componente orizzontale della risultante aerodinamica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È una forza ed è la componente della risultante aerodinamica perpendicolare alla traiettoria di volo o alla direzione del vento relativo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2072\",\n \"question\": \"La portanza, in un profilo convenzionale, è generata prevalentemente:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"dalla diminuzione di pressione statica in corrispondenza dell’estradosso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"dalla diminuzione di pressione dinamica in corrispondenza dell’estradosso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"dall’aumento di pressione statica sull’estradosso.\"\n }\n ]\n },\n {\n \"id\": \"2073\",\n \"question\": \"La portanza di un’ala dipende:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"dal suo disegno, dalla densità dell’aria, dalla superficie alare, dalla velocità con cui si muove e dalla sua incidenza.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"dal suo disegno e dall’incidenza solamente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"dall’incidenza solamente.\"\n }\n ]\n },\n {\n \"id\": \"2074\",\n \"question\": \"Qual è la formula della portanza?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"P = 1/2 ρ S2 Cp V\"\n },\n {\n \"id\": \"2\",\n \"text\": \"P = 1/2 ρ S Cp V2\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"P = 1/2 ρ S Cp V\"\n }\n ]\n },\n {\n \"id\": \"2075\",\n \"question\": \"Nella formula della portanza il fattore Cp detto coefficiente di portanza è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"una forza perpendicolare alla traiettoria di volo o alla direzione del vento relativo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"una velocità che dipende dall’incidenza del profilo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"un fattore numerico che dipende dal disegno e dall’incidenza del profilo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2076\",\n \"question\": \"Lo spessore del profilo influisce normalmente sul valore della portanza e della resistenza che esso genera?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, la portanza mediamente aumenta mentre la resistenza diminuisce con l’aumentare dello spessore.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, portanza e resistenza aumentano a parità di altre condizioni con l’aumentare dello spessore.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, la portanza diminuisce mentre la resistenza mediamente aumenta con l’aumentare dello spessore.\"\n }\n ]\n },\n {\n \"id\": \"2077\",\n \"question\": \"La portanza e la resistenza dipendono anche dalla densità dell’aria?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Non sempre.\"\n }\n ]\n },\n {\n \"id\": \"2078\",\n \"question\": \"Che cosa è l’angolo d’incidenza?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È l’angolo compreso tra la corda alare e la direzione del vento relativo o traiettoria di volo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È l’angolo compreso tra la corda alare e il piano orizzontale passante per il centro di pressione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È l’angolo compreso tra la corda alare e la direzione del vento meteorologico quando l’ala è in movimento.\"\n }\n ]\n },\n {\n \"id\": \"2079\",\n \"question\": \"L’assetto di un profilo rappresenta un’entità angolare ben distinta dall’incidenza. Esso è per definizione:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"l’angolo compreso tra la corda alare ed il piano orizzontale.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"l’angolo compreso tra la corda alare e la direzione del vento relativo o traiettoria di volo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"l’angolo compreso tra la direzione del vento relativo o traiettoria di volo ed il piano orizzontale.\"\n }\n ]\n },\n {\n \"id\": \"2080\",\n \"question\": \"Se un profilo alare vola con un assetto di +6° e un’incidenza di +10° la sua traiettoria è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"ascendente e inclinata verso l’alto rispetto al piano orizzontale di 4°.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"discendente e inclinata verso il basso rispetto al piano orizzontale di 4°.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"orizzontale.\"\n }\n ]\n },\n {\n \"id\": \"2081\",\n \"question\": \"In volo incidenza e assetto di un profilo coinciderebbero:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"qualora la traiettoria di volo fosse orizzontale in aria calma.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"qualora la traiettoria di volo fosse orizzontale.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"qualora la traiettoria di volo fosse curvilinea.\"\n }\n ]\n },\n {\n \"id\": \"2082\",\n \"question\": \"Perché nella formula della resistenza R = 1/2 ρ Cr S V2 non compare l’angolo d’incidenza al cui variare varia la resistenza stessa?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché al variare dell’incidenza varia la sola superficie proiettata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Perché un’altra formula lega incidenza e resistenza aerodinamica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché al variare dell’incidenza varia il Cr.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2083\",\n \"question\": \"Per aumentare la portanza di un certo profilo alare è sufficiente aumentare l’angolo d’incidenza?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, senza alcuna limitazione.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, da zero a venti gradi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, ma entro ben precisi limiti.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2084\",\n \"question\": \"Variando l’incidenza di un profilo la portanza:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"varia.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"non varia.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"varia mentre la resistenza non varia.\"\n }\n ]\n },\n {\n \"id\": \"2085\",\n \"question\": \"Perché nella formula della portanza P = 1/2 ρ Cp S V2 non compare l’angolo d’incidenza al cui variare varia la portanza stessa?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché al variare dell’incidenza varia la sola superficie proiettata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Perché un’altra formula lega incidenza e portanza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché al variare dell’incidenza varia il Cp.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2086\",\n \"question\": \"Come può in volo il pilota variare la portanza?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Diminuendo la resistenza aerodinamica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Variando l’angolo d’incidenza entro certi limiti.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Mantenendo lo stesso angolo di assetto.\"\n }\n ]\n },\n {\n \"id\": \"2087\",\n \"question\": \"Il peso del sistema ala-pilota, cui durante il volo si oppone la risultante aerodinamica, è una forza verticale diretta verso il basso, che si scompone in:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"trazione nella direzione della traiettoria di volo e peso apparente perpendicolarmente alla stessa.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"trazione perpendicolarmente alla traiettoria di volo e peso apparente nella direzione della stessa.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"trazione nella direzione della traiettoria di volo e peso apparente in direzione opposta.\"\n }\n ]\n },\n {\n \"id\": \"2088\",\n \"question\": \"L’energia motrice nel volo in deltaplano e parapendio è fornita:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"da forze di natura aerodinamica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"dalla forza peso.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"dall’inerzia cinetica.\"\n }\n ]\n },\n {\n \"id\": \"2089\",\n \"question\": \"Come si chiama l’energia sfruttata dal sistema ala pilota in volo planato?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Energia termica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Energia endotermica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Energia potenziale.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2090\",\n \"question\": \"Che cosa è la trazione nel volo planato?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È una forza ed è la componente del peso orientata nella direzione della traiettoria di volo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È una forza ed è la componente del peso orientata perpendicolarmente alla traiettoria di volo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È una forza che varia al variare della pendenza della traiettoria, ma è indipendente dal peso.\"\n }\n ]\n },\n {\n \"id\": \"2091\",\n \"question\": \"Com’è possibile variare il valore della trazione in volo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Non può essere variato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Variando la pendenza della traiettoria di volo.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Variando la sola resistenza aerodinamica.\"\n }\n ]\n },\n {\n \"id\": \"2092\",\n \"question\": \"In volo librato rettilineo uniforme il peso apparente, che costituisce la componente del peso perpendicolare alla traiettoria di volo, è equilibrato dalla:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"resistenza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"trazione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"portanza.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2093\",\n \"question\": \"In virata come variano il peso apparente e la superficie proiettata dell’ala?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Aumentano entrambi, il peso apparente a causa dell’accelerazione centripeta, la superficie proiettata per motivi geometrici.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Aumenta il peso apparente a causa dell’accelerazione centrifuga e diminuisce la superficie proiettata per motivi geometrici.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Non variano né il peso apparente né la superficie proiettata.\"\n }\n ]\n },\n {\n \"id\": \"2094\",\n \"question\": \"In virata a causa della forza centrifuga e dell’’inclinazione laterale:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il peso apparente è maggiore e la superficie proiettata è minore.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"il peso è minore e la superficie é minore.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la resistenza aerodinamica è minore.\"\n }\n ]\n },\n {\n \"id\": \"2095\",\n \"question\": \"Che cosa s’intende per carico alare?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Il rapporto tra il peso sostentato dall’ala e la superficie della stessa.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Il rapporto tra la superficie dell’ala ed il peso sostentato dalla stessa.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Il carico di rottura dell’ala.\"\n }\n ]\n },\n {\n \"id\": \"2096\",\n \"question\": \"Se il pilota pesa 78 kg, l’attrezzatura di volo, ala compresa, 22 kg e la superficie proiettata è 25 m2, quanto sarà il carico alare?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"6 kg/m 2.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"9 kg/m 2.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"4 kg/m 2.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2097\",\n \"question\": \"Se a seguito di una parziale \\\"chiusura\\\" del parapendio la sua superficie alare si riduce:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il carico alare rimane lo stesso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il carico alare aumenta.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"il carico alare si riduce.\"\n }\n ]\n },\n {\n \"id\": \"2098\",\n \"question\": \"Che cosa s’intende per fattore di carico?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Un fattore numerico capace di indicare quante volte il peso del sistema ala-pilota varia per effetto dell’accelerazione centrifuga in virata o di altre accelerazioni positive o negative durante le manovre.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Un fattore numerico capace di indicare di quante volte aumenta la resistenza aerodinamica in virata per effetto della forza centrifuga.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Un fattore numerico caratteristico di un tipo di deltaplano o parapendio collegato alla robustezza delle sue strutture verificata in tutti i tipi di manovra in volo.\"\n }\n ]\n },\n {\n \"id\": \"2099\",\n \"question\": \"Durante una virata al sistema ala-pilota viene applicata, per effetto della forza centrifuga, un’accelerazione pari a due \\\"G\\\". Si può affermare che:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il fattore il carico rimane invariato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il fattore di carico è raddoppiato, ma è come se il peso del sistema fosse invariato.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il fattore di carico è raddoppiato ed è come se il peso del sistema fosse doppio.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2100\",\n \"question\": \"Se durante il volo per qualche motivo il fattore di carico raddoppia, il carico alare\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"può anche rimanere invariato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"raddoppia.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"viene dimezzato.\"\n }\n ]\n },\n {\n \"id\": \"2101\",\n \"question\": \"Che cosa s’intende per centro di pressione o di spinta?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È il punto di applicazione della forza peso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È il punto in cui sempre s’incrociano i tre assi dell’ala, quello di beccheggio di rollio e d’imbardata.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È il punto di applicazione della risultante di tutte le forze aerodinamiche generate dall’ala in movimento nell’aria.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2102\",\n \"question\": \"In volo può variare la posizione del centro di pressione?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, perché non dipende da fattori che variano in volo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma solo per certi tipi di profilo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, al variare dell’angolo d’incidenza.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2103\",\n \"question\": \"Come varia mediamente la posizione del centro di pressione al variare dell’incidenza su profili autostabili?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Diminuendo l’incidenza il centro di pressione avanza ed aumentando l’incidenza il centro di pressione arretra.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Diminuendo l’incidenza il centro di pressione arretra ed aumentando l’incidenza il centro di pressione avanza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Al variare dell’incidenza il centro di pressione non si sposta.\"\n }\n ]\n },\n {\n \"id\": \"2104\",\n \"question\": \"Che cosa s’intende per baricentro di un apparecchio?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Il punto di applicazione della forza peso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Il punto di applicazione della risultante aerodinamica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Il punto di intersezione degli assi dell’apparecchio.\"\n }\n ]\n },\n {\n \"id\": \"2105\",\n \"question\": \"Dove si trova normalmente il baricentro?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Coincide con il baricentro del solo pilota.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si trova tra il baricentro del pilota e quello della struttura.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si trova nel punto d’intersezione degli assi del sistema.\"\n }\n ]\n },\n {\n \"id\": \"2106\",\n \"question\": \"La posizione del baricentro si sposta\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"solo a seguito di manovre attorno all’asse trasversale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"solo a seguito di manovre attorno all’asse longitudinale.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"sia a seguito di manovre attorno all’asse trasversale che longitudinale.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2107\",\n \"question\": \"L’efficienza aerodinamica è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il rapporto tra portanza e resistenza.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"il rapporto tra carico alare e velocità.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il rapporto tra superficie alare e portanza.\"\n }\n ]\n },\n {\n \"id\": \"2108\",\n \"question\": \"L’efficienza aerodinamica è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il rapporto tra la sua superficie ed il peso trasportato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il rapporto tra il peso trasportato e la sua velocità massima.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il rapporto tra Cp e Cr.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2109\",\n \"question\": \"L’efficienza di un’ala si può esprimere come:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il rapporto tra la velocità orizzontale e quella verticale.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"il rapporto tra la velocità verticale e quella orizzontale.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il rapporto tra superficie e peso.\"\n }\n ]\n },\n {\n \"id\": \"2110\",\n \"question\": \"Il rapporto tra portanza e resistenza generate da un’ala a un certo regime di volo, ne rappresenta l’efficienza e varia:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"al variare dell’angolo d’incidenza.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"al variare della superficie alare.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"al variare del carico alare.\"\n }\n ]\n },\n {\n \"id\": \"2111\",\n \"question\": \"L’efficienza massima di un parapendio è uguale a 8. Che cosa significa?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"In aria calma può essere percorso 1 km perdendo 800 m di quota.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Il rapporto tra apertura alare e corda alare è pari a 8.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"In aria calma possono essere percorsi 8 km perdendo 1000 m di quota.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2112\",\n \"question\": \"Al variare dell’incidenza varia l’efficienza di un’ala perché:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"varia solo il coefficiente di portanza Cp dell’ala.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"varia solo il coefficiente di resistenza Cr dell’ala.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"variano i coefficienti di portanza e resistenza Cp e Cr.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2113\",\n \"question\": \"L’efficienza massima varia al variare del peso del pilota?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, anche se l’ala al variare del peso non si deforma.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"No, purché al variare del peso l’ala non si deformi e l’aria sia calma.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"No, anche se l’ala al variare del peso si deforma.\"\n }\n ]\n },\n {\n \"id\": \"2114\",\n \"question\": \"Volando in aria calma due piloti di peso diverso utilizzano lo stesso deltaplano o parapendio. Che risultati ottengono volando al medesimo regime di volo, se l’ala non si deforma al variare del carico?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Percorrono la stessa distanza, ma in tempi diversi.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Percorrono distanze diverse, ma impiegano uguali tempi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Percorrono distanze diverse ed in tempi diversi anche se l’ala non si deforma in funzione del peso.\"\n }\n ]\n },\n {\n \"id\": \"2115\",\n \"question\": \"Volando in aria calma il peso del pilota, se l’ala non si deforma al variare del carico, influenzerà:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la sola efficienza aerodinamica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"l’efficienza aerodinamica e la velocità all’aria, ma non il tasso di caduta.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la velocità all’aria ed il tasso di caduta, ma non l’efficienza aerodinamica.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2116\",\n \"question\": \"Un’ala in volo, iniziando una virata:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"aumenta il proprio tasso di caduta.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"mantiene inalterato il tasso di caduta.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"diminuisce il proprio tasso di caduta.\"\n }\n ]\n },\n {\n \"id\": \"2117\",\n \"question\": \"Aumentando il carico alare a condizione che l’ala non si deformi e volando con una certa incidenza, si realizzeranno:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"velocità e tasso di caduta maggiori.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"velocità e tasso di caduta minori.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"velocità maggiore e tasso di caduta minore.\"\n }\n ]\n },\n {\n \"id\": \"2118\",\n \"question\": \"E’ possibile che un deltaplano o un parapendio volino stabilmente su una traiettoria orizzontale in condizioni di aria calma?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, se il loro profilo è molto sofisticato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"No, perché ciò significherebbe in sostanza che è stato azzerato il valore della resistenza aerodinamica.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, avendo un basso carico alare.\"\n }\n ]\n },\n {\n \"id\": \"2119\",\n \"question\": \"Traiettorie orizzontali stabili sono realizzabili con deltaplano e parapendio:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"solo rispetto al terreno in condizioni di vento in coda sostenuto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"solo rispetto al terreno in condizioni di ascendenza.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"anche rispetto all’aria in condizioni di ascendenza.\"\n }\n ]\n },\n {\n \"id\": \"2120\",\n \"question\": \"La polare di un’ala è una rappresentazione grafica che:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"indica i valori di velocità al suolo al variare dell’incidenza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"indica i valori dei coefficienti di portanza e resistenza al variare dell’angolo di assetto.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"indica i valori dei coefficienti di portanza e resistenza al variare dell’angolo d’incidenza.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2121\",\n \"question\": \"Che cosa è la polare delle velocità o odografa di un’ala?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È un grafico sul quale sono riportati i valori delle velocità orizzontali e delle velocità verticali dell’ala al variare dell’angolo d’incidenza.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È un grafico sul quale sono riportati i valori della portanza e della resistenza al variare dell’angolo d’incidenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È un grafico sul quale sono riportati i valori della trazione e della resistenza al variare dell’angolo d’incidenza.\"\n }\n ]\n },\n {\n \"id\": \"2122\",\n \"question\": \"Se l’ala non si deforma, al variare del peso del pilota la polare delle velocità:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"si modifica e non si sposta rispetto agli assi cartesiani.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"non si modifica e non si sposta rispetto agli assi cartesiani.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"si sposta rispetto agli assi cartesiani.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2123\",\n \"question\": \"Quali valori si possono ricavare dalla polare delle velocità di un’ala?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Quelli della portanza al variare dell’incidenza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Quelli della resistenza al variare dell’incidenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Quelli delle velocità orizzontali e verticali ai vari angoli d’incidenza.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2124\",\n \"question\": \"Sulla polare delle velocità di un’ala normalmente il minimo tasso di caduta si realizza volando:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"all’incidenza alla quale corrisponde il minimo valore della resistenza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"all’incidenza alla quale corrisponde la massima efficienza in aria calma.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"ad un’incidenza maggiore di quella cui corrisponde la massima efficienza in aria calma.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2125\",\n \"question\": \"Sulla polare delle velocità di un’ala normalmente la massima velocità orizzontale si realizza volando:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"al valore d’incidenza cui corrisponde una resistenza maggiore a quella che si ottiene alla massima efficienza aria.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"al valore d’incidenza cui corrisponde il miglior rapporto superficie proiettata / allungamento.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"al valore d’incidenza massimo.\"\n }\n ]\n },\n {\n \"id\": \"2126\",\n \"question\": \"Sulla polare delle velocità di un’ala normalmente la massima efficienza in aria calma si realizza volando:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"con l’angolo d’incidenza cui corrisponde il valore massimo del rapporto tra resistenza e portanza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"con l’angolo d’incidenza cui corrisponde il valore massimo del rapporto tra portanza e resistenza.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"con l’angolo d’incidenza cui corrisponde il valore massimo del rapporto tra portanza e peso.\"\n }\n ]\n },\n {\n \"id\": \"2127\",\n \"question\": \"In condizioni di ascendenza l’efficienza massima al suolo aumenta rispetto a quella che si otterrebbe in aria calma. Adeguando la polare delle velocità di un’ala a queste condizioni si vede che i migliori risultati si realizzano comunque volando:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"a velocità all’aria maggiore di quelle utilizzate in condizioni di aria calma.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"a velocità all’aria minore di quelle utilizzate in condizioni di aria calma.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"alla medesima velocità all’aria che si utilizzerebbe in condizioni di aria calma.\"\n }\n ]\n },\n {\n \"id\": \"2128\",\n \"question\": \"In condizioni di discendenza l’efficienza massima al suolo diminuisce rispetto a quella che si otterrebbe in aria calma. Adeguando la polare delle velocità di un’ala a queste condizioni si vede che i migliori risultati comunque si realizzano volando:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"a velocità all’aria maggiori di quelle utilizzate in aria calma.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"a velocità all’aria minori di quelle utilizzate in aria calma.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"alla medesima velocità all’aria che si utilizzerebbe in condizioni di aria calma.\"\n }\n ]\n },\n {\n \"id\": \"2129\",\n \"question\": \"Con vento a favore la massima efficienza al suolo è maggiore di quella ottenibile in aria calma. Sulla polare delle velocità si vede che i migliori risultati si realizzano comunque volando:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"ad incidenza maggiore di quella che si utilizzerebbe per ottenere la massima efficienza in aria calma (velocità all’aria minore).\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"ad incidenza minore di quella che si utilizzerebbe per ottenere la massima efficienza in aria calma (velocità all’aria maggiore).\"\n },\n {\n \"id\": \"3\",\n \"text\": \"all’incidenza che si utilizzerebbe per ottenere la massima efficienza in aria calma.\"\n }\n ]\n },\n {\n \"id\": \"2130\",\n \"question\": \"Con vento contrario la massima efficienza al suolo è minore di quella ottenibile in aria calma. Sulla polare delle velocità si vede che i migliori risultati si realizzano comunque volando:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"all’incidenza che si utilizzerebbe per ottenere la massima efficienza in aria calma.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"ad incidenza maggiore di quella che si utilizzerebbe per ottenere la massima efficienza in aria calma (velocità all’aria minore).\"\n },\n {\n \"id\": \"3\",\n \"text\": \"ad incidenza minore di quella che si utilizzerebbe per ottenere la massima efficienza in aria calma (velocità all’aria maggiore).\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2131\",\n \"question\": \"A parità di condizioni, di capacità e di ala a disposizione veleggia più a lungo il pilota:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"più leggero.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"più pesante.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"che fa virate più strette.\"\n }\n ]\n },\n {\n \"id\": \"2132\",\n \"question\": \"In condizioni di vento contrario, usando la stessa ala, il pilota più pesante:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"volerà con un’efficienza massima al suolo minore di quella realizzata dal pilota più leggero.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"volerà con un’efficienza al suolo identica a quella realizzata dal pilota più leggero.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"volerà con un’efficienza massima al suolo maggiore di quella realizzata dal pilota più leggero.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2133\",\n \"question\": \"In condizioni di vento a favore, usando la stessa ala, il pilota più pesante:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"volerà con un’efficienza massima al suolo minore di quella realizzata dal pilota più leggero.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"volerà con un’efficienza massima al suolo maggiore di quella realizzata dal pilota più leggero.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"volerà con un’efficienza massima al suolo identica a quella realizzata dal pilota più leggero.\"\n }\n ]\n },\n {\n \"id\": \"2134\",\n \"question\": \"In condizioni aerologiche sfavorevoli, quali vento contrario e discendenza, volando con la medesima ala è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"sfavorito il pilota più pesante.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"sfavorito il pilota più leggero.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"non ci sono differenze.\"\n }\n ]\n },\n {\n \"id\": \"2135\",\n \"question\": \"Che cosa è lo stallo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È una condizione di volo in cui si verifica il distacco dei filetti fluidi dall’ala a causa dell’eccessivo angolo d’incidenza.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È una condizione di volo in cui si verifica un calo netto della portanza a causa di una brusca diminuzione dell’angolo d’incidenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È una condizione di volo in cui si verifica un brusco aumento della resistenza dovuto all’eccessiva velocità.\"\n }\n ]\n },\n {\n \"id\": \"2136\",\n \"question\": \"Lo stallo di un’ala si può verificare:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"solo a bassa velocità indipendentemente dall’angolo d’incidenza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"solo a bassa velocità con incidenza oltre il valore critico.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"a qualsiasi velocità con incidenza oltre il valore critico.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2137\",\n \"question\": \"In virata la velocità minima di volo e quella di stallo sono identiche a quelle del volo rettilineo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, sono maggiori.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, sono minori.\"\n }\n ]\n },\n {\n \"id\": \"2138\",\n \"question\": \"La velocità di stallo è influenzata dal carico alare?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, aumenta con l’aumentare del carico alare.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, diminuisce con l’aumentare del carico alare.\"\n }\n ]\n },\n {\n \"id\": \"2139\",\n \"question\": \"E’ possibile con il deltaplano e il parapendio andare in stallo ad alta velocità?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Solo in virata.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, se si raggiunge e si supera il valore critico dell’angolo di incidenza.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2140\",\n \"question\": \"Un’ala stalla normalmente a diversi angoli d’incidenza se varia la velocità?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, infatti lo stallo dipende solo dalla velocità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"No, lo stallo non dipende dalla velocità ma solo dall’angolo d’incidenza.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"No, lo stallo non dipende dalla velocità né dall’angolo d’incidenza.\"\n }\n ]\n },\n {\n \"id\": \"2141\",\n \"question\": \"Che cosa s’intende per autostabilità di un profilo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una tendenza a cabrare o picchiare a seguito di un qualsiasi intervento del pilota sui comandi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una tendenza a picchiare comunque dopo il verificarsi di uno stallo accentuato.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una tendenza a tornare, autonomamente, alle condizioni di equilibrio dinamico anche senza l’intervento del pilota.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2142\",\n \"question\": \"Perché deltaplano e parapendio sono macchine considerate autostabili?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché reagiscono alle sollecitazioni aerodinamiche rispetto agli assi di rotazione tendendo a ritornare automaticamente in condizioni di equilibrio.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Solo perché a un movimento rispetto all’asse longitudinale reagiscono con una tendenza a ritornare automaticamente in condizioni di equilibrio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Solo perché a un movimento rispetto all’asse verticale reagiscono con una tendenza a ritornare automaticamente in condizioni di equilibrio.\"\n }\n ]\n },\n {\n \"id\": \"2143\",\n \"question\": \"Che cosa succede al sistema ala pilota se il suo baricentro viene abbassato rispetto al centro di pressione?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Aumenta la sola stabilità laterale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Aumenta la stabilità in beccheggio e rollio.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Varia semplicemente lo sforzo di azionamento dei comandi.\"\n }\n ]\n },\n {\n \"id\": \"2144\",\n \"question\": \"La posizione bassa del baricentro del parapendio comporta entro certi limiti:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"una maggiore stabilità in volo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"una minore stabilità in volo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"un minore sforzo di azionamento dei comandi nel parapendio.\"\n }\n ]\n },\n {\n \"id\": \"2145\",\n \"question\": \"La posizione bassa del baricentro del parapendio comporta:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"una minore stabilità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"un minore sforzo di azionamento dei comandi nel parapendio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"una possibilità di avere delle oscillazioni più ampie.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2146\",\n \"question\": \"Lo svergolamento di un’ala, contribuisce alla stabilità in volo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, se lo svergolamento è adeguatamente calcolato.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2147\",\n \"delta\": true,\n \"question\": \"Volando in prossimità del terreno il deltaplano acquista prestazioni. Ciò è dovuto:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"al fatto che vicino a terra il pilota istintivamente aumenta l’incidenza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"a un fenomeno detto \\\"effetto suolo\\\".\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"solo al fatto che molto vicino al terreno sovente vi sono piccole termiche.\"\n }\n ]\n },\n {\n \"id\": \"2148\",\n \"question\": \"A che cosa è dovuto principalmente l’effetto suolo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Solo ad una compressione dell’aria al suolo dovuta all’avvicinarsi dell’ala ad esso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Ad una riduzione della resistenza indotta all’approssimarsi dell’ala al suolo.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"A nulla in generale, perché trattasi solo di una sensazione del pilota.\"\n }\n ]\n },\n {\n \"id\": \"2149\",\n \"question\": \"Che cosa s’intende per \\\"configurazione inusuale\\\"?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una situazione di volo in condizioni ambientali e meteorologiche estreme.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una situazione di volo con un numero di passeggeri eccedente quello previsto dal manuale d’impiego.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una variazione di geometria e/o un comportamento anomalo del mezzo normalmente non indotti dal pilota direttamente, come tumbling, chiusure, autorotazioni positive e negative, stalli paracadutali ecc.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"2150\",\n \"question\": \"Quale parametro di volo può provocare una \\\"configurazione inusuale\\\"?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"L’angolo d’incidenza se eccede certi valori.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"L’inclinazione in virata se eccede i 15 o 20 gradi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"La velocità al suolo se è eccessiva.\"\n }\n ]\n }\n]\n\nexport default questions\n","const questions = [\n {\n \"id\": \"3001\",\n \"question\": \"Quale comportamento è auspicabile appena effettuato un soccorso d’emergenza?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si trasporta il ferito all’ospedale con qualsiasi mezzo disponibile seguendolo da vicino.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Far trasportare all’ospedale con mezzo idoneo ed abilitato l’infortunato prendendosi cura dei suoi effetti personali ed avvisando al più presto i suoi parenti più prossimi.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Una volta chiamate si attende che giungano le autorità di polizia e si lascia a esse ogni incombenza.\"\n }\n ]\n },\n {\n \"id\": \"3002\",\n \"question\": \"Qual è, tra questi, il modo migliore per accompagnare un infortunato con una lesione leggera in grado di camminare?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Procurandogli un paio di stampelle.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Portandolo a spalle.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Mettendosi al suo fianco, dal lato della lesione e cingendogli la vita con il braccio, se possibile.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"3003\",\n \"question\": \"Come comportarsi alla presenza di un infortunato di cui si sospettano lesioni interne di entità sconosciuta?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Ispezionarlo attentamente, interrogandolo sulle parti dolenti e facendolo muovere se può, indi chiamare i mezzi di soccorso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Non muoverlo assolutamente e non consentire che egli stesso si muova, provvedere immediatamente a chiamare personale e mezzi di soccorso qualificati e attrezzati (eliambulanza, ambulanza, etc.).\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Cercare di metterlo in piedi, se la cosa risulta impossibile e se l’infortunato si lamenta chiamare idonei mezzi di soccorso.\"\n }\n ]\n },\n {\n \"id\": \"3004\",\n \"question\": \"Se, essendo l’unico presente, vi capita di dover soccorrere un traumatizzato, come dovete comportarvi?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Cercate subito un medico nel paese più vicino.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Intervenite soccorrendolo voi stessi secondo i traumi subiti, come meglio potete.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Non muoverlo assolutamente e non consentire che egli stesso si muova, provvedere immediatamente a chiamare personale e mezzi di soccorso qualificati e attrezzati (eliambulanza, ambulanza, etc.).\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"3005\",\n \"question\": \"Come intervenire su un infortunato che presenta una copiosa perdita di sangue da una ferita?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Lasciare uscire più sangue possibile onde lavare la ferita.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Interrompere il flusso sanguigno con laccio emostatico posto tra la lesione ed il cuore o con idoneo tampone posto sulla ferita.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Distendere l’infortunato con la ferita posta verso l’alto.\"\n }\n ]\n },\n {\n \"id\": \"3006\",\n \"question\": \"Come si deve intervenire soccorrendo un infortunato che presenta solo una ferita?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Cercare di aiutarlo a mettersi in piedi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Lasciare la ferita scoperta dopo averla opportunamente tamponata, sino all’arrivo di idoneo soccorso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Tamponare la ferita con ciò che è possibile, cercando di lasciare coperta la ferita sino all’arrivo d’idoneo soccorso.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"3007\",\n \"question\": \"Come si deve intervenire in caso di forma lieve di fuoriuscita di sangue dal naso (epistassi)?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Far reclinar la testa in avanti favorendo il drenaggio di sangue e muco.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Far soffiare forte il naso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Far tenere le narici serrate con le dita.\"\n }\n ]\n },\n {\n \"id\": \"3008\",\n \"question\": \"Come si deve intervenire alla presenza di una persona colpita da soffocamento?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Lasciare che l’infortunato riprenda a respirare dopo averlo adagiato supino.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Rimuovere le più evidenti cause di soffocamento, accertare che il soffocamento non sia dovuto all’ingestione di vomito e che la lingua non sia motivo d’impedimento alla ventilazione.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Tentare la respirazione artificiale prima di tutto, premendo sull’addome dell’infortunato in maniera decisa e ritmica.\"\n }\n ]\n },\n {\n \"id\": \"3009\",\n \"question\": \"Come intervenire alla presenza di una persona in stato di shock?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Lasciarla tranquilla e alleggerirgli l’abbigliamento per evitare che sudi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Somministrargli liquori o caffè per farla riprendere.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Coprirla in posizione supina muovendola meno possibile.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"3010\",\n \"question\": \"Se in un infortunato si sospetta una frattura, come dobbiamo comportarci?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Tentare comunque di ridurre subito la frattura stessa ponendo prima in trazione l’arto o la parte interessata in attesa di idonei mezzi di soccorso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Immobilizzare il traumatizzato e solo se trattasi di frattura a uno degli arti cercare di steccarlo con una “doccia” più idonea possibile, provvedendo comunque ad allertare al più presto idonei mezzi di soccorso.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Fasciare strettamente la parte del corpo in cui si trova la sospetta frattura in attesa di eventuali idonei mezzi di soccorso.\"\n }\n ]\n },\n {\n \"id\": \"3011\",\n \"question\": \"Come si deve intervenire in presenza di un infortunato che presenta sospetto trauma cranico con fuoriuscita di sangue dall’orecchio, in attesa di idonei mezzi di soccorso?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Tamponare la perdita di sangue.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Tenere il soggetto adagiato sul fianco dalla parte da cui perde sangue.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Porre il soggetto in posizione seduta.\"\n }\n ]\n },\n {\n \"id\": \"3012\",\n \"question\": \"Come s’interviene nel caso che una persona presenti un trauma all’addome?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si provvede a chiamare idonei mezzi di soccorso, mettendola in piedi per alleviarle il dolore.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si provvede a chiamare idonei mezzi di soccorso, evitando di muoverla e di comprimerle l’addome.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si provvede a chiamare idonei mezzi di soccorso, nel frattempo le si praticano massaggi all’addome.\"\n }\n ]\n },\n {\n \"id\": \"3013\",\n \"question\": \"Nel caso una persona sia colpita da scarica elettrica e che rimanga a contatto con il cavo di alta tensione, il soccorritore dovrà:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"avvicinarsi al più presto e prestarle soccorso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"rimanere a distanza di sicurezza dando immediatamente l’allarme.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"distaccarla immediatamente dalla sorgente elettrica servendosi ad esempio di un bastone di legno, che è uno strumento isolante.\"\n }\n ]\n },\n {\n \"id\": \"3014\",\n \"question\": \"Nel caso che una persona sia colpita da scarica elettrica e che rimanga a contatto con il cavo a bassa tensione, il soccorritore dovrà:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"rimanere a distanza di sicurezza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"prenderla per un braccio e tentare di staccarla dalla sorgente elettrica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"staccarla dalla sorgente elettrica facendo uso di un attrezzo di materiale isolante come ad esempio il legno.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"3015\",\n \"question\": \"Come intervenire in soccorso di un soggetto che presenti una distorsione al piede?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Farlo camminare subito per ripristinargli la circolazione.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Immobilizzare la parte lesa con ovatta ed eventuale fascia elastica.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Trazionare l’arto infortunato cercando di ricomporre la distorsione.\"\n }\n ]\n },\n {\n \"id\": \"3016\",\n \"question\": \"Come si riconosce una spalla lussata?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Da un abbassamento dell’arto con infossamento all’altezza dell’articolazione.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Da un improvviso gonfiore in corrispondenza dell’articolazione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Dal fatto che braccio e avambraccio risultano privi di articolazione.\"\n }\n ]\n },\n {\n \"id\": \"3017\",\n \"question\": \"Come s’interviene provvisoriamente in caso di grave scottatura?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si mantiene pulita e detersa la parte ustionata sino al momento in cui sono possibili interventi specialistici qualificati.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Non si tocca assolutamente la parte ustionata anche se è sporca trasportando l’infortunato dal medico più vicino.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si pone sulla parte ustionata un qualsiasi unguento disponibile.\"\n }\n ]\n },\n {\n \"id\": \"3018\",\n \"question\": \"Come s’interviene per soccorrere persone che abbiano perso conoscenza?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si lasciano o si adagiano semplicemente in posizione prona.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si dispongono su un fianco sollevando un braccio e una gamba per evitare che il vomito ostruisca le vie respiratorie.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si bagna loro la fronte con acqua fredda.\"\n }\n ]\n },\n {\n \"id\": \"3019\",\n \"question\": \"Come s’interviene su una persona svenuta a seguito di trauma?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si prova a rianimarla energicamente scuotendola dopo aver chiamato idonei mezzi di soccorso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si tiene sotto monitoraggio il battito cardiaco e la frequenza respiratoria, chiamando con urgenza idonei mezzi di soccorso.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si adagia in posizione supina, le si pratica la respirazione, si chiamano se necessario idonei mezzi di soccorso.\"\n }\n ]\n },\n {\n \"id\": \"3020\",\n \"question\": \"Qual è il rimedio migliore in caso di principio di assideramento di una parte del corpo?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Fare ingerire al paziente bevande alcoliche.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Fare muovere la parte colpita in modo da provocare circolazione sanguigna.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Tenere la parte colpita al caldo coprendola e facendo ingerire al paziente bevande calde.\",\n \"correct\": true\n }\n ]\n }\n]\n\nexport default questions\n","const questions = [\n {\n \"id\": \"9001\",\n \"question\": \"La sicurezza del volo in deltaplano e parapendio dipende moltissimo dal rapporto esistente tra esperienza del pilota e caratteristiche del mezzo utilizzato?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Assolutamente no.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, ma solo se si tratta di volo in condizioni forti.\"\n }\n ]\n },\n {\n \"id\": \"9002\",\n \"question\": \"La sicurezza del volo in deltaplano e parapendio dipende tra l’altro anche dal rapporto tra l’esperienza del pilota e le condizioni meteo affrontate?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Assolutamente no.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, ma solo se si tratta di un volo di cross.\"\n }\n ]\n },\n {\n \"id\": \"9003\",\n \"question\": \"Ci viene proposto l’acquisto di un’ala omologata alla quale sono state però apportate delle modifiche che ne migliorano le prestazioni. Qual è l’atteggiamento più conservativo da tenere sotto il profilo della sicurezza?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Prendere in considerazione il mezzo ma solo dopo averlo personalmente provato al limite delle prestazioni.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Acquistarlo solo se chi ce lo propone è persona esperta e fidata.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Respingere la proposta orientando esclusivamente le proprie scelte su mezzi provvisti di omologazione ed assolutamente conformi al modello originale.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9004\",\n \"question\": \"Quando va effettuata la revisione periodica dei mezzi?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Quando si notano reazioni anomale o si sospettano variazioni nelle prestazioni del mezzo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Ad intervalli definiti dal costruttore perché le caratteristiche dei materiali subiscono variazioni anche solo per invecchiamento.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Ad intervalli definiti dal costruttore se si vola assiduamente, riducendo la frequenza se si vola meno a patto di conservare l’attrezzatura con cura.\"\n }\n ]\n },\n {\n \"id\": \"9005\",\n \"question\": \"Omettere o trascurare i controlli di sicurezza pre-volo:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"è senz’altro pericoloso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"è tecnicamente scorretto.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"può non essere pericoloso se l’esperienza è molta.\"\n }\n ]\n },\n {\n \"id\": \"9006\",\n \"question\": \"Se avete dei dubbi sulle condizioni meteo in rapporto alla vostra attrezzatura e/o esperienza, pur avendo sentito il parere di un pilota più esperto:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"è utile superare ogni indugio ed intraprendere il volo per migliorare le proprie capacità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"è necessario sentire ancora il parere di almeno un altro pilota esperto prima di intraprendere il volo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"è opportuno considerare i propri dubbi come valido e sufficiente motivo per non intraprendere assolutamente il volo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9007\",\n \"question\": \"Per quale motivo un pilota di modesta esperienza non dovrebbe volare con un’ala ad alte prestazioni anche se giudicata facile e sicura da piloti più esperti?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché le ali ad alte prestazioni sono comunque insicure anche se qualcuno non lo ammette.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Perché la sicurezza del volo dipende molto dal rapporto esistente tra esperienza del pilota e prestazioni dell’ala, che deve necessariamente essere equilibrato.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché comunque non riuscirebbe a sfruttarne le prestazioni, pur volando in sicurezza.\"\n }\n ]\n },\n {\n \"id\": \"9008\",\n \"question\": \"Vi trovate al decollo di un volo che non conoscete. Le condizioni sono forti, ma tutti decollano con successo. Tra i seguenti atteggiamenti che potete tenere quale ritenete sia più conservativo sotto il profilo della sicurezza?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Attendere che le condizioni inizino a ridursi e solo allora intraprendere il volo tenendo presenti i consigli di chi vi è parso più equilibrato ed esperto.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Predisporsi ad intraprendere il volo non prima di aver preso nota dei consigli forniti dagli esperti del luogo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Predisporsi ad intraprendere il volo imitando il piano di volo e le manovre degli esperti del luogo onde migliorare la propria personale esperienza.\"\n }\n ]\n },\n {\n \"id\": \"9009\",\n \"question\": \"Per quale motivo si ritiene pericoloso il decollo in discendenza o con vento in coda?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Solo perché la pendenza della traiettoria di volo risulterà troppo elevata appena staccati da terra.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Per l’eccessiva velocità che il pilota deve sviluppare correndo e per problemi di traiettoria una volta decollati.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Per i problemi di auto stabilità del mezzo che possono insorgere in tali condizioni.\"\n }\n ]\n },\n {\n \"id\": \"9010\",\n \"question\": \"Come deve essere valutato il decollo da un dirupo a scalino di circa 90° con deltaplano o parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Molto pericoloso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Molto tecnico.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Normale se si ha buona esperienza.\"\n }\n ]\n },\n {\n \"id\": \"9011\",\n \"question\": \"La giornata è umida e le termiche generano velocemente nubi cumuliformi. Entrati in termica, è necessario prestare attenzione al fatto che:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"si può scatenare un temporale e potremmo essere colpiti da un fulmine.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"l’ascendenza può essere associata a turbolenza che rende poco piacevole il volo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"l’ascendenza può divenire tanto forte da impedirci di scendere, correndo così il grave rischio di essere trascinati in una nube a carattere temporalesco.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9012\",\n \"question\": \"Quale maggior pericolo si corre volando in nube?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Avere una collisione con altri apparecchi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Subire un degrado delle prestazioni a causa di eventuali formazioni di ghiaccio sulla struttura dell’apparecchio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Perdere il senso dell’orientamento e il controllo dell’apparecchio, poiché gli organi dell’equilibrio funzionano male in mancanza di riferimenti visivi.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9013\",\n \"question\": \"È dimostrato che il wind shear è un fenomeno pericoloso per il volo in generale, ma in particolare per il Volo Libero. Che cosa s’intende per wind shear?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Solo un improvviso aumento dell’intensità del vento nel tempo e/o nello spazio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Un’improvvisa variazione di direzione e/o d’intensità del vento nel tempo e/o nello spazio.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Un improvviso aumento dell’intensità del vento relativo sull’ala.\"\n }\n ]\n },\n {\n \"id\": \"9014\",\n \"question\": \"Rispetto al suolo non avanziamo. Siamo alla presenza di un vento meteorologico contrario la cui velocità è pari alla nostra velocità all’aria. Se di colpo il vento cessasse l’ala:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"risulterebbe, anche se per un tempo brevissimo, senz’altro investita da un vento relativo nullo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"continuerebbe a volare alla velocità all’aria che aveva prima.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"non avrebbe comunque problemi di natura aerodinamica.\"\n }\n ]\n },\n {\n \"id\": \"9015\",\n \"question\": \"Che cosa s’intende per configurazione inusuale di un deltaplano e di un parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una configurazione o una situazione di volo normale per l’ala ma alla quale il pilota non è abituato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una configurazione dell’ala o una situazione di volo anomala e al di fuori del normale inviluppo di volo e di manovrabilità previsti.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Una situazione di volo in cui i valori dell’incidenza sono ai limiti dello stallo.\"\n }\n ]\n },\n {\n \"id\": \"9016\",\n \"question\": \"Un’ala certificata offre le seguenti garanzie rispetto a un’ala non certificata:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"le reazioni dell’ala certificata sono sempre controllabili e non pericolose, quelle dell’ala non certificata sono pericolose.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"le reazioni dell’ala non certificata non sono note, quelle dell’ala certificata sono note (relativamente alle manovre di omologazione).\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"un’ala certificata è adatta al pilota medio, le ali non certificate sono riservate ai competitori.\"\n }\n ]\n },\n {\n \"id\": \"9017\",\n \"question\": \"Ai fini del volo con deltaplano e parapendio è necessario tenere presenti le difficoltà e i rischi connessi ad attività svolta in una valle lunga e stretta perché:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"è sempre interessata da forti correnti discensionali.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"in essa eventuali brezze o venti sono comunque violente e turbolente particolarmente in corrispondenza del fondo valle.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"il fondo di una valle stretta non presenta generalmente aree idonee all’atterraggio a prescindere dal vento esistente.\"\n }\n ]\n },\n {\n \"id\": \"9018\",\n \"question\": \"Se deltaplano e parapendio sono particolarmente soggetti agli effetti negativi del wind shear, come può essere giudicato un atterraggio effettuato sottovento a ostacoli rilevanti in condizione di vento sostenuto?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Fattibile, ma con qualche difficoltà da piloti con poca esperienza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Molto tecnico e quindi fattibile in sicurezza totale solo da piloti esperti.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Pericoloso in assoluto per qualsiasi pilota per l’imprevedibilità dei fenomeni aerologici associati a questa situazione.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9019\",\n \"question\": \"Se in atterraggio il vento è tanto forte da limitare notevolmente la penetrazione, quali soluzioni adottare in avvicinamento?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Effettuare degli “otto” con la tecnica a “granchio” che ci dota comunque di una certa velocità al suolo permettendoci di affrontare in sicurezza situazioni di forte gradiente in prossimità del terreno.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Eseguire comunque un circuito a “C” che elimina la necessità di fare molte virate, senza quindi doverci porre il problema dell’avanzamento rispetto al terreno.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Tentare un avvicinamento a “otto” normale atterrando all’indietro o su una traiettoria verticale se questo è ciò che si ottiene.\"\n }\n ]\n },\n {\n \"id\": \"9020\",\n \"question\": \"Il vento è aumentato tanto da impedirci di atterrare normalmente. Ci vediamo costretti a farlo in un bosco. Quale tecnica è bene adottare?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Atterrare controvento sulla chioma degli alberi, proteggersi il busto e il capo con braccia e mani nella successiva caduta, appena arrestata quest’ultima afferrare saldamente il ramo più vicino.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Atterrare controvento scegliendo di farlo in prossimità del suolo quanto possibile e nello spazio compreso tra due tronchi d’albero, iniziare a raccordare solo all’ultimo momento.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Spiralare sopra un’eventuale radura sino in prossimità del suolo, cercando di atterrare nel suo interno indipendentemente dalla direzione del vento anche a costo di assumere alti angoli di rollio in prossimità del suolo.\"\n }\n ]\n },\n {\n \"id\": \"9021\",\n \"question\": \"Vedendoci costretti a un atterraggio in acqua, quale precauzione è indispensabile adottare?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Solo dopo il contatto con l’acqua sganciarsi e/o fuoriuscire dall’imbrago.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Poco prima dell’impatto predisporre quanto possibile l’imbrago onde ci si possa liberare da esso al più presto a impatto avvenuto.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Atterrare in direzione parallela al moto ondoso.\"\n }\n ]\n },\n {\n \"id\": \"9022\",\n \"question\": \"Per quale motivo il pilotaggio in prossimità del suolo deve necessariamente essere più dolce e attento?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché il recupero da configurazioni inusuali in cui ci si venga a trovare intenzionalmente o meno, comporta una perdita di quota che può essere fatale.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Perché vicino al suolo le reazioni dell’ala ai comandi sono più brusche a causa della maggior densità dell’aria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché l’effetto suolo si fa sentire alterando l’auto stabilità del mezzo.\"\n }\n ]\n },\n {\n \"id\": \"9023\",\n \"question\": \"Quali conseguenze in volo si possono avere per non aver agganciato i cosciali della selletta del parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una posizione molto scomoda, ma il rischio è minimo se il pettorale è ben agganciato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una situazione di gravissimo pericolo quale la fuoriuscita dalla selletta e la caduta.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Una situazione di grave pericolo sempre che non ci si riesca ad aggrappare saldamente al fascio funicolare.\"\n }\n ]\n },\n {\n \"id\": \"9024\",\n \"question\": \"Se durante il decollo in parapendio si constata che l’ala non si è gonfiata correttamente è preferibile per motivi di sicurezza:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"accelerare la corsa agendo sui comandi per ottenere il corretto gonfiaggio prima dello stacco.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"agire sui freni e interrompere il decollo, tenendo presente che il parapendio offre il vantaggio di una possibile interruzione di decollo senza conseguenze.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"proseguire nella manovra di decollo e dopo che esso è avvenuto ripristinare per prima cosa con l’uso dei comandi la configurazione normale dell’ala.\"\n }\n ]\n },\n {\n \"id\": \"9025\",\n \"question\": \"Analizzare in anticipo previsioni meteorologiche specifiche per il volo aumenta la sicurezza?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No perché la situazione meteorologica locale può essere valutata solo al momento.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, perché una previsione positiva garantisce un volo sicuro.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, perché fornisce informazioni utili a valutare meglio la situazione meteorologica e la sua possibile evoluzione.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9026\",\n \"question\": \"Se si va in volo con una “cravatta”, per non esserci accorti durante i controlli che uno o più cordini erano disposti sotto l’estradosso con l’ala stesa al suolo e per non aver controllato l’ala accuratamente dopo il gonfiaggio, che cosa dobbiamo attenderci?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Nulla di significativo a parte un modesto degrado delle prestazioni.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una tendenza alla rotazione dell’ala che però è sempre possibile compensare con peso e freno.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una situazione di grave pericolo che va dal ritorno violento al pendio all’impossibilità di recupero della cravatta con buone probabilità che l’ala sia difficilmente controllabile.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9027\",\n \"question\": \"Se durante un volo in parapendio si rompe il cordino di un freno, si è in una situazione di emergenza. Come ci si deve comportare?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Pilotare con entrambi gli elevatori posteriori trazionandoli con dolcezza e limitatamente allo stretto indispensabile per arrivare in atterraggio.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Pilotare solo con il freno restante e manovrando meno possibile atterrare immediatamente sul pendio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Pilotare con l’elevatore posteriore dalla parte del freno inefficiente e con il freno efficiente dall’altra.\"\n }\n ]\n },\n {\n \"id\": \"9028\",\n \"question\": \"E’ vero che la certificazione europea del parapendio garantisce, entro certi limiti, un ottimo livello di sicurezza a patto che siano rispettati il rapporto tra esperienza del pilota e classe di appartenenza dell’ala volata, nonché tutte le norme relative al tipo ed alla regolazione della selletta riportate nella certificazione?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, è un’affermazione poco attendibile.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma è vero solo per ali standard.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, è vero.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9029\",\n \"question\": \"E’ corretto affermare dal punto di vista della sicurezza del volo che un’ala certificata in una classe basica garantisce il pilota anche se inesperto in caso di configurazione inusuale?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, indipendentemente da altri fattori.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Assolutamente no.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, ma solo se sono state rispettate le norme relative al tipo e alla regolazione della selletta riportate nella certificazione.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9030\",\n \"question\": \"Ai fini della sicurezza del volo, un pilota che si appresta a volare un’ala certificata in una classe non basica deve essere conscio che in caso di configurazione inusuale:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"necessita il suo intervento tempestivo e qualificato per tornare a condizioni di normalità senza finire in una grave sequenza di configurazioni inusuali.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"può attendersi il ritorno a condizioni di normalità anche se non in 4 secondi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"necessita il suo intervento sui comandi, che deve essere quello istintivo per ogni situazione.\"\n }\n ]\n },\n {\n \"id\": \"9031\",\n \"question\": \"Configurazioni inusuali del parapendio. Chiusura asimmetrica spontanea, tendenza dell’ala all’autorotazione. Il pilota dovrà in ogni caso prima ristabilire il controllo direzionale dell’ala e solo dopo averlo ristabilito intervenire con il freno dalla parte della chiusura per riaprire l’ala:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"errato. E’ fondamentale la riapertura dell’ala che quindi va fatta prima.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"corretto. Usando per ristabilire il controllo direzionale prima il peso e poi il freno per evitare lo stallo dovuto all’aumento del carico alare prodotto dalla chiusura.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"errato. E’ opportuno cercare prima di riaprire l’ala e se ciò non fosse possibile usare subito il paracadute di soccorso.\"\n }\n ]\n },\n {\n \"id\": \"9032\",\n \"question\": \"Configurazioni inusuali del parapendio. Chiusura frontale del bordo d’attacco, tendenza dell’ala a passare bruscamente dietro al pilota. Il pilota dovrà prima di tutto rilasciare entrambi i freni per poi tenersi pronto a controllare l’abbattimento in avanti dell’ala:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"corretto, la riapertura dell’ala se si agisce rilasciando simmetricamente i freni generalmente non è problematica, ma lo possono essere i pendolamenti che ne conseguono.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"corretto, anche se i pendolamenti che conseguono alla riapertura dell’ala non costituiscono mai un problema.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"errato, è necessario comunque attendere che l’ala si riapra da sola per evitare inutili pendolamenti e se ciò non avviene usare al più presto il paracadute di soccorso.\"\n }\n ]\n },\n {\n \"id\": \"9033\",\n \"question\": \"Configurazioni inusuali del parapendio. La conseguenza di un’eccessiva trazione asimmetrica dei comandi dei freni è lo stallo asimmetrico che induce una brusca e violenta rotazione dell’ala attorno all’asse verticale, detta “vite piatta negativa”. Per prevenire tale configurazione prima che si verifichi il pilota dovrà:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"affondare anche l’altro comando per poi rilasciarli entrambi verso l’alto dolcemente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"rilasciare anche di poco il comando troppo affondato abbassando della stessa entità anche l’altro.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"rilasciare prontamente e simmetricamente verso l’alto entrambi i comandi, pronti a intervenire per controllare l’abbattimento dell’ala in avanti se e quando si verifica.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9034\",\n \"question\": \"Configurazioni inusuali del parapendio. In che cosa consiste il post-stallo di un parapendio e che cosa può accadere se si verifica?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la situazione prodotta dal permanere in condizioni di stallo, ma non può avere alcuna conseguenza se si verifica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È la condizione in cui si trova l’ala dopo una corretta rimessa dallo stallo; le conseguenze dipendono da come la rimessa si verifica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È la situazione prodotta dal permanere in condizioni di stallo e il conseguente collasso totale dell’ala.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9035\",\n \"question\": \"Configurazioni inusuali del parapendio. All’uscita da uno stallo di “B” si constata di avere un tasso di caduta elevatissimo, una velocità di avanzamento quasi nulla con l’ala perfettamente gonfia sulla verticale. Che cosa può essere accaduto?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si è finiti in stallo paracadutale per aver probabilmente rilasciato le bretelle “B” troppo lentamente verso l’alto e/o perché si sta volando un’ala dal tessuto divenuto poroso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si è finiti in stallo paracadutale per aver rilasciato troppo bruscamente le bretelle “B” all’uscita dalla manovra; la porosità dell’ala non ha nulla a che vedere con questa situazione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Nulla di significativo, il tasso di caduta elevato è normale all’uscita dallo stallo di “B” e per fortuna l’ala è gonfia sulla verticale.\"\n }\n ]\n },\n {\n \"id\": \"9036\",\n \"question\": \"Configurazioni inusuali del parapendio. Per ottenere al meglio l’uscita da uno stallo paracadutale il pilota dovrà, dopo aver rilasciato prontamente verso l’alto entrambi i freni, agire nell’ordine come segue:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"trazionare con decisione una sola delle bretelle anteriori oppure, se ciò non ha effetto, trazionare decisamente uno solo dei freni.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"spingere in avanti le bretelle A, utilizzare a fondo l’acceleratore , successivamente se l’assetto persiste affondare i freni simmetricamente e poi rilasciarli, utilizzare in ultima analisi un freno solo affondandolo e rilasciandolo e aspettandosi di uscire in quest’ultimo caso con una violenta virata o in “vite piatta negativa”.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"affondare con decisione un freno solo, pompare simmetricamente con i freni, spingere in ultima analisi con decisione in avanti le bretelle anteriori.\"\n }\n ]\n },\n {\n \"id\": \"9037\",\n \"delta\": true,\n \"question\": \"Decollo in deltaplano con vento sostenuto. L’utilizzo di un assistente che tocchi il delta all’inizio della rincorsa è rischioso perché:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"l’assistente può essere trascinato giù dalla rampa o addirittura essere portato in volo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"non tutti gli assistenti danno adeguate garanzie di comportamento anche se ben istruiti dal pilota.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"l’assistente, anche se esperto non può avere la sensibilità rispetto al mezzo che invece ha il pilota e quindi può imprimergli un assetto e una posizione non ottimali.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9038\",\n \"delta\": true,\n \"question\": \"Il mancato o non corretto aggancio del pilota al deltaplano comporta:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"gravissime conseguenze sempre.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"la necessità di atterrare al più presto.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la necessità di ridurre le manovre allo stretto indispensabile per non precipitare.\"\n }\n ]\n },\n {\n \"id\": \"9039\",\n \"delta\": true,\n \"question\": \"Se per avaria strutturale il dispositivo antidrappo non dovesse entrare in funzione quando necessario, una volta innescata la caduta a drappo:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"è bene cercare prima di uscirne con l’uso dei comandi e del peso, non c’è fretta per l’uso del paracadute di soccorso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"è bene fare uso immediato del paracadute di soccorso, prima che la velocità verticale sia troppo elevata.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"è bene attendere che la velocità di caduta sia molto elevata prima di aprire il paracadute di soccorso, al fine di ottenerne l’immediata apertura.\"\n }\n ]\n },\n {\n \"id\": \"9040\",\n \"delta\": true,\n \"question\": \"Le sollecitazioni che rendono pericoloso il looping eseguito con il deltaplano sono indotte:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"solo dalla velocità che è necessaria assumere prima di iniziare la manovra di cabrata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"solo dalle accelerazioni cui è sottoposto il mezzo durante tutta la manovra.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"dalla velocità elevata che è necessario assumere prima di iniziare la manovra di cabrata e dalle accelerazioni cui è sottoposto il deltaplano durante tutta la manovra.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9041\",\n \"delta\": true,\n \"question\": \"Che cosa s’intende per tumbling del deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una brusca rotazione incontrollata attorno all’asse d’imbardata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una brusca rotazione incontrollata attorno all’asse trasversale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Una brusca rotazione incontrollata attorno all’asse longitudinale.\"\n }\n ]\n },\n {\n \"id\": \"9042\",\n \"delta\": true,\n \"question\": \"Quali elementi, tra i seguenti, contribuiscono a provocare il tumbling del deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Un angolo d’incidenza troppo elevato associato a condizioni di turbolenza.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Una velocità troppo elevata in condizioni di forte turbolenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Virate in condizioni di ascendenza.\"\n }\n ]\n },\n {\n \"id\": \"9043\",\n \"question\": \"E’ vero che praticando il Volo Libero il pilota deve usare il paracadute di soccorso solo in ultima analisi e cioè quando non è possibile ripristinare altrimenti condizioni di volo nelle quali il mezzo risulti pilotabile sino a un atterraggio sicuro?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, questa è una credenza sbagliata perché il paracadute di soccorso va usato sempre e al più presto possibile quando l’ala assume una configurazione inusuale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, tenendo presente che non c’è alcuna fretta nell’utilizzarlo perché non ha limiti per l’apertura.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, tenendo presente comunque che dal momento in cui si decide di usarlo è bene farlo al più presto per consentirgli di aprirsi in tempo utile ed entro i suoi limiti strutturali.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9044\",\n \"question\": \"Oltre al caso di malore del pilota, in quale di queste situazioni è utile l’apertura del paracadute di emergenza e come deve essere fatta?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"In forte turbolenza qualora risulti difficile il controllo del deltaplano o del parapendio, tirando con decisione la maniglia verso l’alto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"In caso ci si trovi all’interno di una corrente ascensionale tanto forte da trascinarci in nube, tirando la maniglia con decisione verso il basso in modo che il paracadute si allontani più possibile dall’ala.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"In caso di rottura strutturale non potendo più controllare l’apparecchio o a seguito di configurazione inusuale che si riveli totalmente irrecuperabile con l’uso dei comandi e del peso, tirando con decisione la maniglia in modo che il paracadute si allontani più possibile dall’ala.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"9045\",\n \"question\": \"Se è vero che il paracadute di soccorso, come emerge inconfutabilmente da dati statistici, funziona nella quasi totalità dei casi, per quale motivo è comunque raccomandato il suo uso solo in casi in cui esso costituisce l’ultima risorsa disponibile?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché le statistiche non sono attendibili, e il suo funzionamento è aleatorio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Perché pur garantendo un’altissima probabilità di funzionamento non è, nella quasi totalità dei casi, direzionabile e quindi non ci garantisce la scelta del punto di atterraggio.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché è quasi sempre inutile usarlo anche se funziona, qualsiasi sia la configurazione inusuale assunta è infatti sempre possibile uscirne in tempo utile mantenendo la calma e insistendo sui comandi.\"\n }\n ]\n }\n]\n\nexport default questions\n","const questions = [\n {\n \"id\": \"6001\",\n \"question\": \"Che cos’è l’altimetro?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È lo strumento che misura sempre la distanza di un apparecchio dal suolo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È lo strumento che misura la velocità verticale di un apparecchio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È lo strumento che misura l’altitudine di un apparecchio rispetto ad un punto noto come, ad esempio, il livello del mare.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"6002\",\n \"question\": \"Come funziona normalmente un altimetro?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Misura la pressione atmosferica e quindi l’altitudine, utilizzando una capsula aneroide o un sensore elettronico.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Misura l’elevazione sul livello del mare utilizzando un sensore elettronico.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Misura la velocità verticale rispetto all’aria utilizzando un sensore elettronico.\"\n }\n ]\n },\n {\n \"id\": \"6003\",\n \"question\": \"Per quale motivo un altimetro necessita di regolazioni?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché la temperatura dell’aria varia in relazione alle condizioni atmosferiche ed al variare dell’altitudine.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Perché la pressione atmosferica varia in relazione alle condizioni atmosferiche e non solo in relazione all’ altitudine.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché la pressione atmosferica varia al variare dell’altitudine.\"\n }\n ]\n },\n {\n \"id\": \"6004\",\n \"question\": \"Dopo aver regolato l’altimetro all’altitudine di decollo, effettuiamo il volo. Se all’atterraggio esso ci indica un’altitudine diversa da quella conosciuta, cosa può essere accaduto?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La pressione atmosferica è cambiata.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"L’altimetro si è sicuramente guastato.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"La temperatura dell’aria è cambiata.\"\n }\n ]\n },\n {\n \"id\": \"6005\",\n \"question\": \"Se regoliamo il nostro altimetro in base alla pressione presente al livello del mare (QNH), andando in volo potremo conoscere:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"l’altezza geometrica sul terreno sottostante.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"l’altitudine sul livello medio del mare.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"l’elevazione sul livello medio della terra.\"\n }\n ]\n },\n {\n \"id\": \"6006\",\n \"question\": \"Cosa è il variometro?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È lo strumento che in volo misura la velocità verticale.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È lo strumento che in volo misura le altitudini rispetto al livello del mare.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È lo strumento che in volo misura la velocità all’aria.\"\n }\n ]\n },\n {\n \"id\": \"6007\",\n \"question\": \"Come funziona un variometro?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Misura la variazione istantanea della temperatura dell’aria a mezzo di un dispositivo elettronico.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Misura le variazioni anche minime di pressione atmosferica a mezzo di un barometro differenziale o di un sensore elettronico.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Misura le variazioni di pressione atmosferica a mezzo di un barometro a colonna.\"\n }\n ]\n },\n {\n \"id\": \"6008\",\n \"question\": \"In quali situazioni l’uso di un variometro può essere di grande aiuto per la sicurezza in volo?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Ad esempio, volando con copertura nuvolosa o sotto un cumulo, le indicazioni del variometro ci possono aiutare a capire se c’è aspirazione e se è il caso o meno di affrettare la discesa verso l’atterraggio o dirigersi verso zone non soggette al fenomeno.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Nel volo di dinamica, in quanto ci aiuta a capire dove si sale meglio, permettendoci di prolungare il volo senza rischi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Non è uno strumento da considerare utile ai fini della sicurezza del volo, ma solo come ausilio per il veleggiamento.\"\n }\n ]\n },\n {\n \"id\": \"6009\",\n \"question\": \"Che cosa può misurare l’anemometro durante un volo?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È lo strumento che in volo misura la velocità all’aria.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È lo strumento che in volo misura la velocità al suolo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È lo strumento che in volo misura la velocità verticale.\"\n }\n ]\n },\n {\n \"id\": \"6010\",\n \"question\": \"Come funziona un anemometro?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Misura la pressione statica di cui è dotato il vento relativo traducendola in indicazione di velocità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Misura direttamente l’energia cinetica di cui è dotato il vento relativo traducendola in calore.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Misura la pressione dinamica di cui è dotato il vento relativo oppure la sua velocità mediante dispositivi meccanici (elichette intubate, etc.).\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"6011\",\n \"question\": \"In quale caso l’anemometro può indicare la velocità al suolo con buona approssimazione?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Quando il volo è effettuato in aria calma, in assenza di vento e su traiettoria poco inclinata.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"In tutti i casi, indipendentemente dalla traiettoria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"In nessun caso.\"\n }\n ]\n },\n {\n \"id\": \"6012\",\n \"question\": \"Che cosa è la bussola?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È lo strumento che indica la direzione del Nord magnetico.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È lo strumento che indica la direzione del Nord geografico.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È lo strumento che indica la direzione del Sud geografico.\"\n }\n ]\n },\n {\n \"id\": \"6013\",\n \"question\": \"Come funziona la bussola?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Rileva mediante una calamita la posizione in cui si trova il Nord geografico.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Rileva mediante una calamita la direzione del campo magnetico terrestre e il Nord magnetico.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Rileva mediante un sistema meccanico la direzione dei meridiani terrestri.\"\n }\n ]\n },\n {\n \"id\": \"6014\",\n \"question\": \"A cosa si deve prestare attenzione se vogliamo che la bussola funzioni nel modo più corretto possibile posizionandola tra gli strumenti?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"A nulla in particolare, la bussola indica sempre il nord magnetico.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"A installarla in modo che il Nord magnetico coincida con il nord geografico.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"All’interferenza elettromagnetica con altri apparati elettronici, tipo radiotrasmittenti e, soprattutto, apparecchi telefonici cellulari, che, entrando in funzione, possono disturbare il campo elettromagnetico influenzando l’ago della bussola.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"6015\",\n \"question\": \"E’ possibile affermare che il Nord geografico coincide con il Nord magnetico?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Dipende dalle stagioni dell’anno.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"6016\",\n \"question\": \"Con bussola, altimetro, anemometro e variometro è possibile effettuare attività vololiberistica in condizioni di volo strumentale, ad esempio in nube?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, se adeguatamente addestrati.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma solo per breve tempo, perché la dotazione di strumenti non risulta completa.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, la dotazione di strumenti non è affatto completa, manca l’informazione di posizione nello spazio.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"6017\",\n \"question\": \"Durante il volo, che cosa ci permette di misurare il GPS?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La velocità al suolo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"La velocità all’aria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"L’umidità relativa.\"\n }\n ]\n },\n {\n \"id\": \"6018\",\n \"question\": \"Con il GPS è possibile volare con tranquillità nelle nubi?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, in quanto il GPS indica la direzione in cui mi sto muovendo con esattezza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"No, anche perchè nella nube la ricezione del segnale inviato dai satelliti GPS può essere disturbata, rendendo inaffidabile lo strumento.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, ma solo se affianchiamo al GPS una bussola di tipo nautico.\"\n }\n ]\n },\n {\n \"id\": \"6019\",\n \"question\": \"Stiamo volando in presenza di vento molto forte. La nostra prua è diretta verso SUD. Sul display del GPS leggiamo una velocità di 3 km/h, direzione NORD. Cosa succede?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Lo strumento è evidentemente rotto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Se sono sicuro di avere la prua diretta verso SUD evidentemente sto volando all’indietro. Il vento è superiore alla mia velocità all’aria e occorre aumentare la velocità prima possibile.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Non è possibile che si verifichi una situazione del genere.\"\n }\n ]\n },\n {\n \"id\": \"6020\",\n \"question\": \"Come funziona un GPS?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Calcola la posizione nello spazio mediante un sensore di movimento.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Calcola la posizione nello spazio mediante il confronto dei segnali orari inviati da alcuni satelliti in orbita intorno alla terra.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Calcola la posizione nello spazio per mezzo di un barometro differenziale.\"\n }\n ]\n }\n]\n\nexport default questions\n","const questions = [\n {\n \"id\": \"1001\",\n \"question\": \"Chi può praticare autonomamente il volo libero?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Chiunque può praticare quest’attività sportiva purché abbia frequentato un apposito corso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Chiunque, munito dei requisiti richiesti dalle norme in vigore (Attestato in corso di validità e copertura assicurativa RCT).\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Chiunque può praticare quest’attività purché abbia superato un esame Ae.C.I..\"\n }\n ]\n },\n {\n \"id\": \"1002\",\n \"question\": \"Chi è l’unico responsabile della condotta del deltaplano e del parapendio?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Il pilota.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Il pilota, ma solo se dotato di sufficiente esperienza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"L’Ente di Controllo del Traffico Aereo.\"\n }\n ]\n },\n {\n \"id\": \"1003\",\n \"question\": \"Qual è l’età minima, previo consenso dei genitori, per la pratica del Volo Libero?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"14 anni.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"18 anni.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"16 anni.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1004\",\n \"question\": \"Il Certificato Medico ha normalmente validità di\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"18 mesi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"24 mesi.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"36 mesi.\"\n }\n ]\n },\n {\n \"id\": \"1005\",\n \"question\": \"La copertura assicurativa RCT è obbligatoria per la pratica del VDS/VL?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, il pilota è obbligato ad assicurarsi.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"No, il pilota non è obbligato ad assicurarsi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, ma solo per effettuare voli di cross-country.\"\n }\n ]\n },\n {\n \"id\": \"1006\",\n \"question\": \"Nel Volo Libero qual è il criterio generale di precedenza nell’area di decollo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Ha la precedenza il pilota in fase d’atterraggio (top landing).\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Ha la precedenza il pilota in fase di decollo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Non esiste un criterio specifico.\"\n }\n ]\n },\n {\n \"id\": \"1007\",\n \"question\": \"È obbligatorio l’uso del casco per il Volo Libero?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Solo per il volo in deltaplano.\"\n }\n ]\n },\n {\n \"id\": \"1008\",\n \"question\": \"Qual è lo spazio aereo all’interno del quale si può praticare il Volo Libero?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Qualsiasi spazio aereo purché ad una quota inferiore ai 1000 piedi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Lo spazio aereo controllato dalle Autorità Aeronautiche.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Lo spazio aereo non controllato, salvo particolari eccezioni o autorizzazioni sancite da un notam.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1009\",\n \"question\": \"Il criterio nello stabilire la suddivisione degli spazi aerei per la pratica del volo è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"solo quello di limitare lo spazio aereo a disposizione degli sportivi che praticano il Volo Libero, in quanto ritenuta attività secondaria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"quello di separare il traffico costituito dagli apparecchi per il Volo Libero da altri traffici civili e militari per garantire la sicurezza del volo ed evitare collisioni.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"quello di impedire che l’attività di Volo Libero si svolga al di sopra di certe quote in quanto molto in alto gli apparecchi in uso non danno garanzie di sicurezza.\"\n }\n ]\n },\n {\n \"id\": \"1010\",\n \"question\": \"Quale altezza minima si deve mantenere nella pratica del VDS/VL?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"500 piedi dal punto più elevato nel raggio di 3 km nei giorni feriali e 1000 piedi nei giorni festivi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Non vi è un’altezza minima, perché è comunque vietato il sorvolo dei centri abitati con deltaplano e parapendio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Quella che consente, in caso d’emergenza, un atterraggio che non comporti pericolo per beni e persone al suolo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1011\",\n \"question\": \"Quale distanza minima occorre mantenere dalle nubi?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"1000 m.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Non esiste regola precisa.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È necessario comunque mantenersi fuori dalle nubi e in contatto con il suolo o con la superficie acquea sottostante.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1012\",\n \"question\": \"È consentito volare in nube con deltaplano e parapendio?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, perché non è garantita la separazione da eventuali ostacoli, dal terreno e da altri mezzi e poiché il disorientamento comporta la possibile perdita del controllo di assetto e velocità.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"No, perché non è garantita la separazione da eventuali ostacoli e dal terreno, sebbene sia possibile condurre tali mezzi in condizioni di volo strumentale anche senza l’ausilio di strumenti, data la semplicità di pilotaggio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Sì, sempre che la nube in questione non si estenda sino ad aderire al pendio o comunque al terreno, nel qual caso non sarebbe garantita la sicurezza del volo.\"\n }\n ]\n },\n {\n \"id\": \"1013\",\n \"question\": \"Le tabelle chiamate effemeridi, sulle quali si possono trovare tutti i dati concernenti le posizioni in cielo delle stelle e dei pianeti durante l’anno, possono essere utili a chi pratica il Volo Libero perché:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"può essere utile condurre una navigazione stellare in certe condizioni.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"può essere utile conoscere con esattezza l’altezza del sole sull’orizzonte a una certa ora e in un certo giorno dell’anno per stabilire la propria posizione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"è indispensabile sapere l’orario del sorgere e del tramontare del sole in ogni giorno dell’anno poiché il Volo Libero si può praticare solo da 30 minuti prima dell’alba a 30 minuti dopo il tramonto.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1014\",\n \"question\": \"E’ possibile svolgere attività di volo libero a meno di 4 km dai confini di Stato?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Dipende dalle leggi vigenti nei Paesi confinanti.\"\n }\n ]\n },\n {\n \"id\": \"1015\",\n \"question\": \"Deltaplano e parapendio come sono classificati?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Sono alianti.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Sono apparecchi per il volo da diporto e sportivo.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Sono aerostati.\"\n }\n ]\n },\n {\n \"id\": \"1016\",\n \"question\": \"Che cosa s’intende per spazio aereo controllato?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una porzione di spazio aereo nazionale all’interno della quale tutto il traffico è controllato da apparecchiature radar.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una porzione di spazio aereo nazionale all’interno della quale tutto il traffico di aeromobili è controllato da apparecchiature radar militari.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una porzione di spazio aereo nazionale all’interno della quale si svolge attività di volo di aeromobili sotto la giurisdizione degli Enti di Controllo del traffico aereo civili e militari.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1017\",\n \"question\": \"La Legge italiana stabilisce che:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"all’interno degli spazi aerei controllati si svolga normalmente solo attività di volo di aeromobili esclusi gli apparecchi VDS/VL se non preventivamente autorizzati.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"all’interno degli spazi aerei controllati si svolga normalmente attività di volo di aeromobili civili e/o militari e di apparecchi VDS/VL.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"all’interno degli spazi aerei controllati si svolga sempre attività di volo di aeromobili civili e/o militari e nei giorni festivi anche attività di volo di apparecchi VDS/VL.\"\n }\n ]\n },\n {\n \"id\": \"1018\",\n \"question\": \"È consentito l’impegno degli spazi aerei controllati da parte degli apparecchi VDS/VL?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Solo se preventivamente autorizzati.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, se esistono condizioni di volo a vista (Visual Flight Rules).\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, indipendentemente dalle condizioni esistenti.\"\n }\n ]\n },\n {\n \"id\": \"1019\",\n \"question\": \"Praticando il Volo Libero a quale distanza è opportuno tenersi dagli aeroporti non situati all’interno di un ATZ?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Ad almeno 5 km.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Ad almeno 1 km.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Ad almeno 5 km e a una quota non inferiore a 500 m.\"\n }\n ]\n },\n {\n \"id\": \"1020\",\n \"question\": \"Che cosa è una ATZ?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Uno spazio aereo controllato situato intorno e sopra ad un aeroporto.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Un’area destinata all’attesa degli aeromobili civili e/o militari prima dell’atterraggio sull’aeroporto di destinazione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una zona aeroportuale di smistamento a terra del traffico di aeromobili civili e/o militari.\"\n }\n ]\n },\n {\n \"id\": \"1021\",\n \"question\": \"E’ consentito effettuare attività di volo libero in un’ATZ?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Sì, in assenza di traffico di aeromobili.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, salvo particolari autorizzazioni rilasciate dal Direttore di Circoscrizione Aeroportuale.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1022\",\n \"question\": \"Che cosa è un CTR?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una porzione di spazio aereo controllato all’interno del quale si svolge attività di volo di aeromobili e i mezzi del VDS devono avere preventiva autorizzazione.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Una porzione di spazio aereo, non necessariamente controllato, all’interno del quale si svolge attività di aeromobili civili e/o militari in arrivo o partenza su uno o più aeroporti.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una porzione di spazio aereo controllato riservata all’arrivo o partenza di aeromobili militari.\"\n }\n ]\n },\n {\n \"id\": \"1023\",\n \"question\": \"E’ possibile volare con deltaplano o parapendio all’interno di un CTR?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Normalmente si.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, nei giorni festivi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, salvo autorizzazione.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1024\",\n \"question\": \"Che cosa è una TMA?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una porzione di spazio aereo riservata all’ attività di velivoli militari.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una porzione di spazio aereo controllato.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Una porzione di spazio aereo non controllato.\"\n }\n ]\n },\n {\n \"id\": \"1025\",\n \"question\": \"E’ ammesso il VDS/VL all’interno di una TMA?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Solo se autorizzato.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Sì, ma in assenza di traffico di aeromobili.\"\n }\n ]\n },\n {\n \"id\": \"1026\",\n \"question\": \"Che cosa è una Aerovia o AWY?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una via di rullaggio a terra su un aeroporto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una porzione di spazio aereo controllato che si estende verso l’alto da un livello posto al disopra della superficie terrestre fino ad un determinato livello superiore, a forma di corridoio.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Una porzione di spazio aereo, non necessariamente controllato, in cui si svolge attività di aeromobili.\"\n }\n ]\n },\n {\n \"id\": \"1027\",\n \"question\": \"È ammesso volare in deltaplano o parapendio in un’aerovia o AWY?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, se non c’è traffico.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si.\"\n }\n ]\n },\n {\n \"id\": \"1028\",\n \"question\": \"Che cosa è una zona P “PAPA“?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale è normalmente proibito il volo a tutti gli aeromobili.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale è permesso il volo ai soli parapendio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale non possono volare i soli velivoli militari.\"\n }\n ]\n },\n {\n \"id\": \"1029\",\n \"question\": \"Che cosa è una zona D “DELTA“?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale è permesso volare in deltaplano.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale è pericoloso volare per tutti i tipi di aeromobile.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale è pericoloso volare per alcuni tipi di aeromobili civili.\"\n }\n ]\n },\n {\n \"id\": \"1030\",\n \"question\": \"Che cosa è una zona R “ROMEO“?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale il volo è raccomandato per tutti i tipi di aeromobile.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale il volo è vietato.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una porzione di spazio aereo all’interno della quale il VDS deve essere espressamente autorizzato poiché sono svolte specifiche attività di volo civile o militare.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1031\",\n \"question\": \"È possibile normalmente volare con deltaplano e parapendio all’interno delle zone denominate nelle carte aeronautiche con le lettere P, D (“PAPA“, “DELTA“)?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma solo nei giorni festivi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si.\"\n }\n ]\n },\n {\n \"id\": \"1032\",\n \"question\": \"In termica decide il senso di rotazione:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il pilota che per primo entra nella corrente ascensionale stabilisce il senso di rotazione.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"il pilota con meno esperienza deve avere la precedenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"si vira verso destra alla presenza di cumulo e verso sinistra in caso contrario.\"\n }\n ]\n },\n {\n \"id\": \"1033\",\n \"question\": \"Tra un apparecchio per il volo libero ed un apparecchio a motore, chi ha la precedenza in caso di rotte convergenti?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"L’apparecchio a motore, in quanto più veloce.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"L’apparecchio a motore, in quanto meno manovrabile.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"L’apparecchio per il volo libero.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1034\",\n \"question\": \"Due apparecchi VDS si trovano su rotte convergenti alla stessa quota. Come si devono comportare i rispettivi piloti?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Uno mantiene la quota e l’altro la cambia per evitare la collisione.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Quello che viene da destra continua diritto, l’altro vira per evitare la collisione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Entrambi effettuano una virata a destra mantenendo l’altro in vista per evitare la collisione.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1035\",\n \"question\": \"Due apparecchi per il VDS privi di motore compiono un volo di pendio e rischiano la collisione frontale. Come si comportano i rispettivi piloti?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Quello con il pendio alla propria sinistra prosegue diritto, l’altro vira a sinistra per evitare la collisione.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Quello con il pendio alla propria destra prosegue diritto, l’altro vira a destra allontanandosi dal pendio per evitare la collisione.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Entrambi possono proseguire diritto, purché tengano conto di un cambio di quota per evitare la collisione.\"\n }\n ]\n },\n {\n \"id\": \"1036\",\n \"question\": \"In caso di precedenza tra un parapendio monoposto, un parapendio biposto e un deltaplano biposto:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"ha precedenza il parapendio monoposto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"ha precedenza il deltaplano biposto.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"ha precedenza il parapendio biposto.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"1037\",\n \"question\": \"Qual è il criterio generale di precedenza per deltaplani e parapendio in atterraggio?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Dare la precedenza a tutti i deltaplani o parapendio più lenti indipendentemente dalla quota cui si trovano.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"L’apparecchio più basso ha la precedenza.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Dare la precedenza a tutti i piloti più esperti.\"\n }\n ]\n },\n {\n \"id\": \"1038\",\n \"question\": \"Nel Volo Libero è obbligatoria l’assicurazione RCT del mezzo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, ma solo se si vola in luoghi molto frequentati.\"\n }\n ]\n },\n {\n \"id\": \"1039\",\n \"question\": \"Il riporto di un’infrazione alla vigente legge che regola l’attività di Volo Libero dovrebbe essere fatto in prima istanza alla Competente Autorità che è:\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la Polizia di Stato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"la Direzione Circoscrizionale di Aeroporto.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"i Carabinieri.\"\n }\n ]\n },\n {\n \"id\": \"1040\",\n \"question\": \"Qual è uno dei requisiti richiesti per l’uso degli apparecchi biposto VDS/VL con passeggero a bordo?\",\n \"points\": \"3\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Attestato di pilota in corso di validità e abilitazione al trasporto del passeggero.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Attestato di pilota in corso di validità con esperienza di almeno 30 ore.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Attestato di pilota in corso di validità, buona esperienza di volo, condizioni meteo favorevoli.\"\n }\n ]\n }\n]\n\nexport default questions\n","const questions = [\n {\n \"id\": \"8001\",\n \"question\": \"È più preoccupante un taglio sulla superficie del parapendio in corrispondenza:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"della parte anteriore centrale dell’estradosso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"della parte posteriore laterale dell’estradosso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"della parte posteriore laterale dell’intradosso.\"\n }\n ]\n },\n {\n \"id\": \"8002\",\n \"question\": \"I cordini del parapendio devono essere di materiale:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"più elastico possibile.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"più anelastico e resistente possibile.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"più resistente possibile indipendentemente dall’elasticità.\"\n }\n ]\n },\n {\n \"id\": \"8003\",\n \"question\": \"Durante il volo in parapendio sono sottoposti al maggior carico i cordini:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"anteriori.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"posteriori.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"laterali.\"\n }\n ]\n },\n {\n \"id\": \"8004\",\n \"question\": \"Il parapendio è generalmente fabbricato con materiale “rip-stop”. Che cosa significa?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Che il tessuto stesso non può strapparsi, ma solo tagliarsi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Che un eventuale taglio o strappo nel tessuto ha molte probabilità di estendersi pericolosamente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Che un eventuale taglio o strappo nel tessuto ha poche probabilità di estendersi pericolosamente.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"8005\",\n \"question\": \"Il tessuto con cui è generalmente costruito un parapendio deve essere:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"resistente all’usura, molto elastico e gas permeabile.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"resistente all’usura, anelastico e gas permeabile.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"resistente all’usura, anelastico e non gas permeabile.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"8006\",\n \"question\": \"Quali agenti esterni danneggiano maggiormente il tessuto di un parapendio rendendolo fragile e gas-permeabile?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"I raggi ultravioletti e l’umidità.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"I raggi infrarossi e l’umidità.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"I raggi infrarossi ed il caldo secco.\"\n }\n ]\n },\n {\n \"id\": \"8007\",\n \"question\": \"Se il tessuto di un parapendio è divenuto poroso:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"risulta compromesso solo il suo aspetto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"risultano un poco degradate solo le sue prestazioni.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"risultano degradate le sue prestazioni e compromessa la sua affidabilità.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"8008\",\n \"question\": \"Dovendo riporre un parapendio si avrà cura di farlo:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"solo se la vela è asciutta ed in luogo secco, lontano da fonti di calore ed al riparo dalla luce solare.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"solo se la vela è asciutta, in ambiente moderatamente umido e caldo, al riparo dalla luce solare.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"anche se è un poco umido, purché in luogo caldo, lasciando il sacco contenitore aperto onde consentire all’umidità di evaporare.\"\n }\n ]\n },\n {\n \"id\": \"8009\",\n \"question\": \"Il cordino di un parapendio è rimasto impigliato ed il kevlar che ne costituisce l’anima è ora privo di rivestimento, ma integro:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"provvisoriamente lo accorciamo annodandolo per evitare che la parte scoperta sia soggetta a trazione.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"provvisoriamente lo rivestiamo con nastro isolante onde evitare di esporre alla luce il tratto di kevlar scoperto.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"provvisoriamente aggiungiamo con opportuni nodi un altro pezzo di cordino al tratto scoperto per creare un rinforzo.\"\n }\n ]\n },\n {\n \"id\": \"8010\",\n \"question\": \"Decidiamo di sostituire i maillons dell’imbrago con moschettoni. Avremo cura di:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"verificare che questi ultimi siano omologati e provvisti di ghiera a vite o a scatto.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"verificare che questi ultimi siano montati correttamente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"usare moschettoni di tipo leggero per non appesantire l’imbrago stesso.\"\n }\n ]\n },\n {\n \"id\": \"8011\",\n \"delta\": true,\n \"question\": \"Che cosa è necessario verificare in corrispondenza di piombature di cavi e tiranti del deltaplano?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Che i cavi ed i tiranti non siano rotti sotto la piombatura.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Che le piombature siano semplicemente in buono stato.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Che le piombature siano in buono stato ed i cavi o tiranti non presentino segni di logoramento in vicinanza delle piombature stesse.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"8012\",\n \"delta\": true,\n \"question\": \"Se ci accorgiamo che qualche tirante del deltaplano è sfilacciato o logoro:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"lo sostituiamo immediatamente prima di riandare in volo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"lo ripariamo alla meglio non potendolo sostituire immediatamente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"andiamo in volo facendo attenzione a non sollecitare la struttura con particolari manovre.\"\n }\n ]\n },\n {\n \"id\": \"8013\",\n \"delta\": true,\n \"question\": \"Durante l’ultimo volo in deltaplano abbiamo effettuato un atterraggio pesante. Il cross bar ed un montante si sono piegati:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"riandiamo in volo avendo sostituito il montante e raddrizzato perfettamente il cross bar.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"riandiamo in volo solo dopo aver sostituito il montante ed il cross bar con ricambi originali.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"riandiamo in volo avendo raddrizzato perfettamente montante e cross bar.\"\n }\n ]\n },\n {\n \"id\": \"8014\",\n \"delta\": true,\n \"question\": \"Il materiale di cui sono rivestite le superfici di un deltaplano si deteriora particolarmente se esposto a lungo a:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"raggi infrarossi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"raggi ultravioletti.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"clima particolarmente secco.\"\n }\n ]\n },\n {\n \"id\": \"8015\",\n \"delta\": true,\n \"question\": \"Se si deve riporre il deltaplano per un lungo periodo dovremo aver cura di:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"farlo in apposita sacca quando siamo certi che è perfettamente asciutto, sistemandolo in luogo meno umido possibile, lontano dalla luce del sole e da fonti di calore.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"sistemarlo in apposita sacca dopo aver effettuato l’ultimo volo, riporlo su appositi supporti fissati alle pareti di uno scantinato dove non può essere raggiunto dalla luce del sole.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"lasciarlo ripiegato senza sacca, sistemandolo possibilmente in uno scantinato o in garage dove non può essere raggiunto dalla luce del sole, possibilmente su appositi supporti fissati alle pareti.\"\n }\n ]\n },\n {\n \"id\": \"8016\",\n \"delta\": true,\n \"question\": \"Se in corrispondenza di qualche elemento costituente il corredo di tiranteria o bulloneria del deltaplano si riscontra presenza di ruggine:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"è necessario prima di volare rimuoverla prontamente usando appositi prodotti antiruggine sul particolare interessato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"è possibile comunque intraprendere il volo purché si sia accertata l’integrità del particolare interessato.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"è indispensabile sostituire il particolare in questione con altro idoneo di identiche caratteristiche, prima di intraprendere qualsiasi tipo di volo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"8017\",\n \"question\": \"Quale norma deve essere rispettata nella manutenzione del paracadute di soccorso?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Mai aprirlo perché si potrebbe commettere un errore nel ripiegarlo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Aprirlo alle scadenze previste o se bagnato e ripiegarlo sotto la supervisione di persone competenti.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Aprirlo, farlo asciugare in luogo asciutto e ripiegarlo solo se siamo certi che sia bagnato o inumidito.\"\n }\n ]\n },\n {\n \"id\": \"8018\",\n \"question\": \"Riguardo al paracadute di soccorso è necessario accertare prima di ogni volo che:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la maniglia di azionamento sia all’interno della sacca di lancio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"non sia stato aperto anche solo per ispezione, in quanto la ripiegatura non eseguita dal costruttore non garantisce l’apertura.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la fune di vincolo sia saldamente ancorata, la sacca correttamente posizionata, la maniglia di azionamento sia facilmente raggiungibile ed azionabile.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"8019\",\n \"question\": \"Per quale motivo un paracadute di soccorso che non sia stato sottoposto a periodica ispezione non garantisce sufficiente affidabilità?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché il materiale con cui è fabbricato si deteriora rapidamente se non gli si fa prendere aria ogni tanto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Perché il materiale con cui è fabbricato può “incollarsi” per effetto del ripiegamento nella sacca, non garantendo una corretta e pronta apertura in caso di bisogno.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché la fune di vincolo deve essere verificata ogni tanto in quanto può deteriorarsi con il rischio che si strappi in caso di utilizzo.\"\n }\n ]\n },\n {\n \"id\": \"8020\",\n \"question\": \"Il materiale e la tecnologia con cui sono fabbricati i paracadute di soccorso per il volo libero garantiscono totale sicurezza per aperture effettuate:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"a qualsiasi velocità di caduta.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"a velocità di caduta contenute entro certi limiti indicati dal costruttore.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"solo a velocità pari a quelle massime del deltaplano e del parapendio.\"\n }\n ]\n }\n]\n\nexport default questions\n","const questions = [\n {\n \"id\": \"5001\",\n \"question\": \"Che cosa è l’atmosfera?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la massa gassosa che sovrasta la superficie terrestre e la cui altezza è praticamente illimitata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È la massa gassosa che sovrasta la superficie terrestre e la cui altezza è 12 km.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È la massa gassosa di altezza ben definita che sovrasta la superficie terrestre la cui parte inferiore si definisce troposfera.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5002\",\n \"question\": \"Come può essere definita la troposfera?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la porzione inferiore dell’atmosfera compresa tra la superficie terrestre e la quota alla quale la pressione atmosferica è praticamente nulla.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È la porzione inferiore dell’atmosfera compresa tra la superficie terrestre e la quota alla quale l’umidità dell’aria è uguale a zero.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È la porzione inferiore dell’atmosfera compresa tra la superficie terrestre e lo strato, detto tropopausa, all’interno del quale il gradiente termico verticale dell’aria è praticamente nullo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5003\",\n \"question\": \"I fenomeni meteorologici (meteore) si verificano normalmente:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"all’interno della porzione di atmosfera terrestre detta troposfera.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"all’interno dell’intera atmosfera e sino al suo limite superiore.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"solo negli strati bassi della troposfera.\"\n }\n ]\n },\n {\n \"id\": \"5004\",\n \"question\": \"La quota della tropopausa, intesa come limite superiore della troposfera:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"è ben determinata, non è variabile e il suo valore è di 12 km.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"è variabile in funzione delle stagioni e della latitudine, il suo valore oscilla mediamente tra 8 km in corrispondenza dei poli e 16 km in corrispondenza dell’equatore.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"è variabile solo in funzione della latitudine, il suo valore è 8 km ai poli e 16 km all’equatore.\"\n }\n ]\n },\n {\n \"id\": \"5005\",\n \"question\": \"L’aria è una miscela di gas formata prevalentemente da:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"ossigeno e gas rari.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"azoto, ossigeno, vapore acqueo e gas rari.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"azoto, ossigeno e vapore acqueo condensato.\"\n }\n ]\n },\n {\n \"id\": \"5006\",\n \"question\": \"Quali sono le caratteristiche fisiche dell’aria la cui combinazione o variazione dà luogo normalmente ai fenomeni meteorologici?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Pressione, temperatura e densità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Pressione, velocità del vento e densità.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Pressione, temperatura e umidità.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5007\",\n \"question\": \"Il vapore acqueo è un gas invisibile contenuto nell’aria in percentuali variabili?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"No, è un gas visibile.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, non è un gas ma acqua liquida in minuscole gocce quindi pur sempre visibile.\"\n }\n ]\n },\n {\n \"id\": \"5008\",\n \"question\": \"In natura esiste normalmente aria totalmente priva di vapore acqueo, cioè assolutamente secca?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, in corrispondenza di regioni desertiche.\"\n }\n ]\n },\n {\n \"id\": \"5009\",\n \"question\": \"Per umidità assoluta s’intende:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la quantità in grammi di vapore acqueo contenuta in un metro cubo d’aria.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"la quantità in volume di vapore acqueo contenuta in un metro cubo d’aria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la quantità in grammi di vapore acqueo necessaria a saturare un metro cubo d’aria.\"\n }\n ]\n },\n {\n \"id\": \"5010\",\n \"question\": \"Per umidità specifica s’intende:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la quantità in grammi di vapore acqueo contenuta in un metro cubo d’aria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"la quantità in volume di vapore acqueo contenuta in un metro cubo d’aria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la quantità in grammi di vapore acqueo contenuta in un chilogrammo d’aria.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5011\",\n \"question\": \"Per umidità relativa, che è sempre espressa in percentuale, s’intende:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la quantità in volume di vapore acqueo contenuta in un metro cubo d’aria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"la quantità in volume di vapore acqueo contenuta in un chilogrammo d’aria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il rapporto esistente tra il contenuto attuale di vapore acqueo dell’aria ed il contenuto di vapore acqueo necessario alla saturazione (massimo contenuto di vapore acqueo possibile ai valori attuali di pressione e temperatura dell’aria).\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5012\",\n \"question\": \"Come varia l’umidità relativa dell’aria abbassandone la sola temperatura?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"L’umidità relativa aumenta sino a raggiungere anche il valore del 100%.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"L’umidità relativa diminuisce.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"L’umidità relativa non varia al variare della temperatura se la pressione rimane costante.\"\n }\n ]\n },\n {\n \"id\": \"5013\",\n \"question\": \"Come varia l’umidità relativa dell’aria all’aumentare della sola pressione atmosferica?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"L’umidità relativa diminuisce.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"L’umidità relativa aumenta anche sino a raggiungere il valore del 100%.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"L’umidità relativa non varia al variare della pressione se la temperatura rimane costante.\"\n }\n ]\n },\n {\n \"id\": \"5014\",\n \"question\": \"Che cosa è la temperatura di rugiada?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La temperatura alla quale l’aria diverrebbe satura se raffreddata senza subire variazioni di pressione.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"La temperatura alla quale l’aria diverrebbe satura se riscaldata senza subire variazioni di pressione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"La temperatura alla quale si otterrebbe la saturazione aumentando la pressione di un millibar o hectopascal.\"\n }\n ]\n },\n {\n \"id\": \"5015\",\n \"question\": \"Che cosa avviene quando per qualche motivo l’umidità relativa dell’aria raggiunge il valore del 100%?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"L’aria in questione diviene satura e in essa può aver luogo il processo di condensazione del vapore acqueo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"L’aria in questione diviene satura e non può quindi aver luogo il processo di condensazione del vapore acqueo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"L’aria in questione diviene satura e in essa può aver luogo il processo di condensazione del vapore acqueo solo qualora aumenti contemporaneamente la temperatura.\"\n }\n ]\n },\n {\n \"id\": \"5016\",\n \"question\": \"Perché all’interno di una massa d’aria avvenga il processo di condensazione del vapore acqueo è necessario:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"abbassarne temperatura e pressione contemporaneamente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"abbassarne la temperatura qualora la pressione rimanga costante.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"abbassarne la pressione qualora la temperatura rimanga costante.\"\n }\n ]\n },\n {\n \"id\": \"5017\",\n \"question\": \"Il processo di condensazione del vapore acqueo nell’aria atmosferica determina il passaggio di stato dell’acqua da gas a liquido. È’ possibile affermare che tale processo sprigiona energia termica (calore latente di condensazione) che è trasmessa all’aria stessa, la cui temperatura varia conseguentemente?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"No, perché i passaggi di stato dell’acqua dallo stato gassoso allo stato liquido e viceversa non sprigionano energia termica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, perché comunque l’energia termica sprigionata non altera la temperatura dell’aria.\"\n }\n ]\n },\n {\n \"id\": \"5018\",\n \"question\": \"L’evaporazione dell’acqua è un processo endotermico?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, non è un processo endotermico.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, infatti la temperatura dell’acqua liquida si abbassa durante l’evaporazione, a meno che non sia fornito calore dall’ambiente circostante.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, infatti la temperatura dell’acqua liquida s’innalza perché l’evaporazione è un processo che libera calore.\"\n }\n ]\n },\n {\n \"id\": \"5019\",\n \"question\": \"Quando all’interno di una massa d’aria si verifica il processo di condensazione del vapore acqueo la temperatura dell’aria stessa tende:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"a diminuire.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"a rimanere costante se non intervengono altri fattori.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"ad aumentare se non intervengono altri fattori.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5020\",\n \"question\": \"Generalmente si può affermare che i processi di condensazione e di evaporazione dell’acqua:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"rispettivamente forniscono e sottraggono calore alla massa d’aria interessata.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"non forniscono né sottraggono calore alla massa d’aria interessata.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"sono solo in grado di fornire calore alla massa d’aria interessata.\"\n }\n ]\n },\n {\n \"id\": \"5021\",\n \"question\": \"È vero che i fenomeni meteorologici sono anche causati dai processi di trasformazione dell’acqua da liquido a vapore o a solido e viceversa per via delle conseguenti cessioni o sottrazioni di energia termica alle masse d’aria?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, essi non hanno nulla a che vedere con quanto sopra.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"No, essi sono esclusivamente determinati dai processi di condensazione del vapore acqueo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5022\",\n \"question\": \"Le nubi, così come il fumo di una pentola in cui vi è acqua in ebollizione, sono costituite da vapore acqueo?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, ma da aerosol o piccolissime gocce di acqua allo stato liquido.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, perché costituite da aerosol che sono molecole gassose molto grandi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, perché in determinate condizioni anche il vapore acqueo è un gas visibile.\"\n }\n ]\n },\n {\n \"id\": \"5023\",\n \"question\": \"La pressione atmosferica si definisce come:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il peso di una colonna d’aria pari a quello di una colonna di mercurio alta 1013.2 millimetri.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il peso di una colonna d’aria di altezza unitaria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il peso della colonna d’aria che insiste sull’unità di superficie.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5024\",\n \"question\": \"Lo strumento per misurare la pressione atmosferica è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"l’anemometro.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il pressostato.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il barometro.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5025\",\n \"question\": \"Salendo in quota il valore della pressione atmosferica diminuisce, infatti diminuisce il peso della colonna d’aria che insiste sull’unità di superficie. Tale diminuzione prende il nome di:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"gradiente barico orizzontale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"gradiente barico verticale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"gradiente termico verticale.\"\n }\n ]\n },\n {\n \"id\": \"5026\",\n \"question\": \"Il valore approssimativo della pressione atmosferica a circa 5500 m di altitudine sul livello del mare è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"circa zero.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"un quarto di quello a livello del mare.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la metà di quello a livello del mare (circa 500 millibar o hectopascal).\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5027\",\n \"question\": \"In atmosfera standard, quasi mai esistente in natura perché ideata dall’uomo come elemento di riferimento, la pressione al livello del mare è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"1013.2 millibar o hectopascal.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"760 millibar.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"variabile secondo la latitudine.\"\n }\n ]\n },\n {\n \"id\": \"5028\",\n \"question\": \"Se la pressione atmosferica in due punti della superficie terrestre dotati della medesima elevazione sul livello del mare è diversa si dice:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"che esiste un gradiente barico verticale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"che l’atmosfera quel giorno non è standard.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"che esiste un gradiente barico orizzontale.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5029\",\n \"question\": \"Che cosa sono le isobare?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Le linee che uniscono i punti di uguale altitudine.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Le linee che uniscono i punti nei quali la pressione atmosferica è standard.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Le linee che uniscono i punti nei quali esiste uguale pressione atmosferica.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5030\",\n \"question\": \"Il vento cosiddetto di gradiente è normalmente:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"uno spostamento di aria nell’atmosfera da una zona a pressione maggiore ad una zona a pressione minore.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"uno spostamento di aria nell’atmosfera da una zona a pressione minore ad una zona a pressione maggiore.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"uno spostamento di aria nell’atmosfera dovuto esclusivamente alla presenza di zone della terra con temperature differenti.\"\n }\n ]\n },\n {\n \"id\": \"5031\",\n \"question\": \"Perché la direzione del vento non è mai rettilinea da una zona di alta pressione a una zona di bassa pressione?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Solo perché la superficie terrestre è piena di ostacoli che il vento è costretto ad aggirare.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Solo perché attorno ad una zona di alta pressione esistono più zone di bassa pressione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Soprattutto perché esistono forze devianti, quali quella di Coriolis e quella di attrito col terreno, che non consentono al vento di procedere in direzione rettilinea.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5032\",\n \"question\": \"Tutti i corpi, i liquidi e i gas in movimento rispetto alla superficie terrestre, dotati di una componente di moto parallela ai meridiani, vengono deviati dalla loro traiettoria inizialmente rettilinea. Come si chiama la forza deviante che determina ciò e a che cosa è dovuta?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Forza di Coriolis, dovuta alla rotazione della Terra attorno al proprio asse.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Forza di Coriolis, dovuta alla rivoluzione della Terra attorno al Sole.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Forza deviante, dovuta esclusivamente alla presenza degli attriti generati da ogni tipo di moto.\"\n }\n ]\n },\n {\n \"id\": \"5033\",\n \"question\": \"Nell’emisfero Nord la forza di Coriolis determina una deviazione del vento, nel suo dirigersi da una zona di alta pressione a una zona di bassa pressione, verso:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"sinistra.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"destra.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"altre zone adiacenti di alta pressione.\"\n }\n ]\n },\n {\n \"id\": \"5034\",\n \"question\": \"A seguito dell’intervento delle forze devianti, il vento nell’emisfero Nord circola attorno ad una zona od area di alta pressione in senso:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"antiorario se osservato dall’alto (es. da un satellite).\"\n },\n {\n \"id\": \"2\",\n \"text\": \"orario se osservato dall’alto (es. da un satellite).\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"orario se osservato dal basso.\"\n }\n ]\n },\n {\n \"id\": \"5035\",\n \"question\": \"A seguito dell’intervento delle forze devianti, il vento nell’emisfero Nord circola attorno ad una zona od area di bassa pressione in senso:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"antiorario se osservato dal basso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"orario se osservato dall’alto (es. da un satellite).\"\n },\n {\n \"id\": \"3\",\n \"text\": \"antiorario se osservato dall’alto (es. da un satellite).\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5036\",\n \"question\": \"Come sono chiamate le zone o aree di bassa e di alta pressione?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Aree cicloniche e anticicloniche e indicate rispettivamente con una H/A (high pressure/alta pressione) e una L/B (low pressure/bassa pressione) sulle carte meteorologiche.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Aree cicloniche e anticicloniche e indicate rispettivamente con una L/B (low pressure/bassa pressione) e una H/A (high pressure/alta pressione) sulle carte meteorologiche.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Aree anticicloniche e cicloniche e indicate rispettivamente con L/B (low pressure/bassa pressione) e una H/A (high pressure/alta pressione) sulle carte meteorologiche.\"\n }\n ]\n },\n {\n \"id\": \"5037\",\n \"question\": \"Se su una carta meteorologica si osservano isobare molto ravvicinate, si può affermare che:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"esiste un gradiente barico orizzontale minimo e il vento sarà sostenuto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"esiste un gradiente barico orizzontale elevato e il vento sarà sostenuto.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"esiste un gradiente barico verticale elevato e il vento sarà sostenuto.\"\n }\n ]\n },\n {\n \"id\": \"5038\",\n \"question\": \"L’osservazione delle isobare sulla carta del tempo ci consente di:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"individuare la direzione e l’intensità del vento in una certa zona oltre ad altri dati meteorologici utili alla previsione del tempo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"individuare elementi e dati utili solamente alla previsione del tempo inteso come copertura nuvolosa del cielo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"individuare solamente il gradiente barico verticale per un confronto con i parametri dell’atmosfera standard.\"\n }\n ]\n },\n {\n \"id\": \"5039\",\n \"question\": \"Nella pratica del Volo Libero che cosa s’intende comunemente per “vento meteorologico”?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Il vento generato da fenomeni meteorologici rilevanti quali temporali, forti precipitazioni ecc.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Il vento generato da fenomeni microclimatici locali come le brezze di valle o di monte.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Il vento di gradiente, prodotto dalla situazione barica attuale rilevabile dalle carte del tempo mediante l’osservazione delle isobare.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5040\",\n \"question\": \"A quale valore in gradi corrisponde la direzione di provenienza di un vento da Sud?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"135°\"\n },\n {\n \"id\": \"2\",\n \"text\": \"270°\"\n },\n {\n \"id\": \"3\",\n \"text\": \"180°\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5041\",\n \"question\": \"Un vento proveniente da Nord-Est ha la seguente provenienza in gradi:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"45°\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"225°\"\n },\n {\n \"id\": \"3\",\n \"text\": \"135°\"\n }\n ]\n },\n {\n \"id\": \"5042\",\n \"question\": \"Emisfero Nord. Una Bassa Pressione si trova centrata a Nord di un preciso punto della superficie terrestre. Il vento predominante (meteorologico) che ci si attende di avere in quel punto proverrà ragionevolmente da:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Nord.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Ovest.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Est.\"\n }\n ]\n },\n {\n \"id\": \"5043\",\n \"question\": \"Emisfero Nord. Una Bassa Pressione si trova centrata a Est di un preciso punto della superficie terrestre. Il vento predominante (meteorologico) che ci si attende di avere in quel punto proverrà ragionevolmente da:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Nord.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Sud.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Ovest.\"\n }\n ]\n },\n {\n \"id\": \"5044\",\n \"question\": \"Emisfero Nord. Un’area di Alta Pressione si trova centrata a Nord di un preciso punto della superficie terrestre. Il vento predominante (meteorologico) che ci si attende di avere in quel punto proverrà ragionevolmente da:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Ovest.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Est.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Nord.\"\n }\n ]\n },\n {\n \"id\": \"5045\",\n \"question\": \"Emisfero Nord. Un’area di Alta Pressione si trova centrata a Ovest di un preciso punto della superficie terrestre. Il vento predominante (meteorologico) che ci si attende di avere in quel punto proverrà ragionevolmente da:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Sud.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Est.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Nord.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5046\",\n \"question\": \"Il Sole è la fonte principale di calore capace di elevare la temperatura dell’aria. Nella troposfera l’energia termica è trasmessa dal Sole direttamente all’aria stessa?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, in gran parte per irraggiamento.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, totalmente per conduzione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, in gran parte è trasmessa indirettamente.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5047\",\n \"question\": \"Il processo di trasmissione di energia termica secondo il quale il Sole riscalda la troposfera è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"irraggiamento del suolo, conduzione di calore dal suolo all’aria sovrastante, circolazione convettiva di aria calda verso l’alto.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"irraggiamento degli strati bassi dell’atmosfera per riflessione del suolo, circolazione convettiva di aria calda verso l’alto.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"conduzione diretta di calore dal sole agli strati bassi dell’atmosfera con successiva circolazione convettiva di aria calda verso l’alto.\"\n }\n ]\n },\n {\n \"id\": \"5048\",\n \"question\": \"Durante una salita effettuata nella troposfera la temperatura dell’aria varia nel modo seguente:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"mediamente aumenta.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"rimane mediamente costante.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"mediamente diminuisce.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5049\",\n \"question\": \"La variazione della temperatura dell’aria al variare della quota si chiama:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"gradiente termico orizzontale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"gradiente termico verticale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"gradiente barico verticale.\"\n }\n ]\n },\n {\n \"id\": \"5050\",\n \"question\": \"Qual è il gradiente termico verticale dell’atmosfera standard, ideata dall’uomo come elemento di riferimento, ma i cui parametri sono difficilmente reperibili in natura?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"1°C ogni 100 m di quota.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"0.65°C ogni 100 m di quota.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"6.5°C ogni 100 m di quota.\"\n }\n ]\n },\n {\n \"id\": \"5051\",\n \"question\": \"Se, salendo in quota, si rileva la temperatura dell’aria ogni 100 m e si riportano i suoi valori su un grafico, si costruisce:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la curva o diagramma di stato dell’atmosfera di quella località a quell’ora.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"l’adiabatica secca dell’atmosfera di quella località a quell’ora.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"l’isoterma di quella località a quell’ora.\"\n }\n ]\n },\n {\n \"id\": \"5052\",\n \"question\": \"Il gradiente termico verticale dell’atmosfera in una determinata località a una certa ora si ricava:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"dalla curva di stato dell’atmosfera relativa a quella località ed a quell’ora della giornata.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"dalla carta del tempo relativa a quella località ed a quell’ora della giornata.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"dal confronto tra adiabatica secca e adiabatica satura relative a quella località ed a quell’ora della giornata.\"\n }\n ]\n },\n {\n \"id\": \"5053\",\n \"question\": \"Una massa d’ aria si solleva espandendosi con conseguente diminuzione della temperatura. Come si definisce il fenomeno e perchè?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Sollevamento convettivo, perché avviene con scambio di calore con l’aria sovrastante.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Sollevamento dinamico, perché avviene con una variazione molecolare dell’aria che si solleva.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Sollevamento adiabatico, perché avviene in pratica senza scambio di calore con l’aria circostante.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5054\",\n \"question\": \"In pratica l’aria che si solleva adiabaticamente, senza condensazione del vapore acqueo, perde:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"6.5°C di temperatura ogni 1000 m.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"1°C di temperatura ogni 100 m.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"valori di temperatura in funzione del gradiente termico verticale di quel giorno.\"\n }\n ]\n },\n {\n \"id\": \"5055\",\n \"question\": \"Il calo di temperatura dell’aria, che si solleva adiabaticamente di un certo valore di quota senza condensazione del vapore acqueo, si chiama:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"gradiente termico verticale e dipende dall’ora e dalla località in cui il fenomeno si verifica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"gradiente adiabatico secco (o gradiente termico dell’adiabatica secca) e dipende principalmente dall’ora e dalla località in cui il fenomeno si verifica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"gradiente adiabatico secco (o gradiente termico dell’adiabatica secca) e si può affermare con buona approssimazione che non dipende dall’ora e dalla località in cui il fenomeno si verifica.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5056\",\n \"question\": \"L’aria che si solleva adiabaticamente contiene una certa quantità di vapore acqueo. Al diminuire della temperatura dell’aria si raggiungono le condizioni per cui il vapore acqueo inizia a condensare (temperatura dell’aria = temperatura di rugiada, umidità relativa = 100 %). L’ulteriore salita dell’aria determina un calo di temperatura di:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"1°C ogni 100 m (Il gradiente è sostanzialmente costante con la quota).\"\n },\n {\n \"id\": \"2\",\n \"text\": \"0.5°C circa ogni 100 m (Il gradiente non è costante con la quota, ma al diminuire della temperatura esso tende ad aumentare).\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"2°C circa ogni 100 m.\"\n }\n ]\n },\n {\n \"id\": \"5057\",\n \"question\": \"Come chiamiamo il sollevamento di aria alla presenza di fenomeni di condensazione del vapore acqueo?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Sollevamento adiabatico saturo o in regime di saturazione.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Sollevamento adiabatico anomalo perché in condizioni di saturazione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Sollevamento adiabatico secco perché in condizioni di non saturazione.\"\n }\n ]\n },\n {\n \"id\": \"5058\",\n \"question\": \"Se il gradiente termico verticale della giornata è superiore ad 1° C ogni 100 m l’aria si definisce:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"stabile.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"instabile.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"dotata di equilibrio indifferente.\"\n }\n ]\n },\n {\n \"id\": \"5059\",\n \"question\": \"Il fattore che ci indica se l’aria è stabile o instabile è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il gradiente adiabatico secco dell’aria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il gradiente termico verticale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"il gradiente adiabatico saturo dell’aria.\"\n }\n ]\n },\n {\n \"id\": \"5060\",\n \"question\": \"Se l’aria risulta instabile dall’osservazione del suo gradiente termico verticale ci dovremo attendere che:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"una bolla d’aria che si stacca dal suolo dotata di moto convettivo arresti la sua salita molto presto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"una bolla d’aria che si stacca dal suolo dotata di moto convettivo continui nella sua salita con velocità sempre maggiore.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"una bolla d’aria che raggiunge una temperatura di poco superiore a quella dell’aria circostante riesca comunque a staccarsi dal suolo.\"\n }\n ]\n },\n {\n \"id\": \"5061\",\n \"question\": \"Una massa d’aria molto umida, caratterizzata da diffuse formazioni nuvolose, si dice “stabile” quando:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il suo gradiente termico verticale è inferiore al gradiente adiabatico saturo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"il suo gradiente termico verticale è superiore ad 1°C ogni 100 m.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il suo gradiente termico verticale è inferiore al gradiente adiabatico secco.\"\n }\n ]\n },\n {\n \"id\": \"5062\",\n \"question\": \"Se il gradiente termico verticale di una massa d’aria asciutta (cioè non satura) è inferiore ad 1°C ogni 100 m si dice che essa è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"stabile.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"instabile.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"dotata di equilibrio indifferente.\"\n }\n ]\n },\n {\n \"id\": \"5063\",\n \"question\": \"A una certa quota la temperatura ambiente dell’aria è pari a 12°C. Se una bolla d’aria salendo si trova ad avere una temperatura di 14°C alla stessa quota essa:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"si arresterà immediatamente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"inizierà sicuramente a scendere.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"continuerà sicuramente la sua salita.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5064\",\n \"question\": \"Se una bolla d’aria contenente un’alta percentuale di umidità relativa inizia a salire dotata di moto convettivo, in che modo la condensazione del vapore acqueo influenza la sua salita?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Probabilmente ne interrompe il moto ascensionale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Sicuramente ne accelera il moto ascensionale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Probabilmente la condensazione del vapore acqueo non influenza il moto ascensionale.\"\n }\n ]\n },\n {\n \"id\": \"5065\",\n \"question\": \"Se l’aria è moderatamente instabile, una bolla d’aria umida che inizia a salire perché riscaldata dal terreno più dell’aria circostante, raggiunta la quota di condensazione:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"salirà sicuramente più veloce.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"si arresterà sicuramente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"inizierà una rapida discesa.\"\n }\n ]\n },\n {\n \"id\": \"5066\",\n \"question\": \"Se l’aria è molto stabile, una bolla d’aria che per motivi convettivi inizi a salire staccandosi dal terreno:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"continuerà a salire sempre più velocemente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"salirà almeno sino alla quota di condensazione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"si arresterà quanto prima venendo a mancare la spinta di galleggiamento o di Archimede.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5067\",\n \"question\": \"Supponendo di essere in presenza di aria umida ed instabile associata a condizioni di forte riscaldamento del terreno, vi è la possibilità che si creino:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"forti correnti ascensionali e nubi cumuliformi.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"forti correnti ascensionali ma non certo nubi cumuliformi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"nebbia e nubi stratificate.\"\n }\n ]\n },\n {\n \"id\": \"5068\",\n \"question\": \"I moti termo-convettivi dell’aria sono:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"moti orizzontali di masse d’aria da zone di alta pressione a zone di bassa.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"moti ascensionali di aria che è forzata verso l’alto dalla presenza di rilievi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"moti ascensionali di aria che, più calda di quella circostante, tende a sollevarsi grazie alla spinta di galleggiamento o di Archimede.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5069\",\n \"question\": \"Quando il vento al suolo è assente o per lo più debole, l’attività termo-convettiva in pianura e nelle valli dà luogo a:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"vento di gradiente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"bolle o colonne termiche dotate di moto ascensionale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"formazioni nuvolose a carattere stratificato.\"\n }\n ]\n },\n {\n \"id\": \"5070\",\n \"question\": \"Le bolle termiche saranno facilitate a staccarsi da terra, a parità di altre condizioni, da:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"calma di vento su superfici prive di ostacoli.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"leggero venticello su superfici irte di ostacoli.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"leggero venticello su superfici prive di ostacoli.\"\n }\n ]\n },\n {\n \"id\": \"5071\",\n \"question\": \"I moti termo-convettivi sono determinati principalmente:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"da condizioni di stabilità dell’aria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"da condizioni di forte umidità dell’aria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"da forte riscaldamento del terreno e dal conseguente riscaldamento per conduzione dell’aria sovrastante.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5072\",\n \"question\": \"La differente natura e colorazione del terreno favorisce:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il crearsi delle condizioni di instabilità dell’aria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il crearsi del vento di gradiente.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il distacco di bolle o colonne termiche.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5073\",\n \"question\": \"Se non vi è umidità sufficiente a consentire il raggiungimento delle condizioni di saturazione del vapore acqueo, le termiche che si formeranno saranno chiamate:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"termiche secche o blu.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"termiche adiabatiche.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"termiche convettive.\"\n }\n ]\n },\n {\n \"id\": \"5074\",\n \"question\": \"Se l’aria è sufficientemente umida potranno essere evidenziate le termiche esistenti e da che cosa?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, dalla formazione di nubi stratificate ad una certa quota.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, dalla formazione di nubi cumuliformi ad una certa quota.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, ma comunque non dalla presenza di alcun tipo di nube.\"\n }\n ]\n },\n {\n \"id\": \"5075\",\n \"question\": \"Durante le ore più calde su quale tipo di terreno ci si può attendere con più probabilità di trovare movimento convettivo di aria?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Su prati verdi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Su una superficie acquea.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Su un terreno roccioso.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5076\",\n \"question\": \"Oltre al moto convettivo dell’aria riscaldata per conduzione dal terreno sottostante, si può verificare un movimento ascensionale dell’aria per altri motivi?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, per sollevamento forzato in presenza di vento in corrispondenza di rilievi.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, per sollevamento forzato in presenza di vento sulle pianure.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No.\"\n }\n ]\n },\n {\n \"id\": \"5077\",\n \"question\": \"Come si chiama il sollevamento dell’aria generato dalla presenza di vento in corrispondenza di rilievi montuosi?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Sollevamento dinamico o “dinamica di pendio” in gergo volo liberistico.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Sollevamento adiabatico.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Sollevamento termodinamico.\"\n }\n ]\n },\n {\n \"id\": \"5078\",\n \"question\": \"Può un iniziale sollevamento dinamico generato dalla presenza di vento e di rilievi montuosi trasformarsi in sollevamento termico puro?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, solo in presenza di condizioni di stabilità dell’aria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, in presenza di particolari condizioni di instabilità dell’aria, con molte più probabilità al di sopra della quota di condensazione.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"No, neppure in presenza di particolari condizioni di instabilità dell’aria.\"\n }\n ]\n },\n {\n \"id\": \"5079\",\n \"question\": \"Che cosa si potrà verificare qualora si stacchino delle bolle termiche alla presenza di vento moderato che sospinge l’aria su per un pendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Che si generino correnti ascensionali di notevole intensità.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Che si generino solamente condizioni di forte turbolenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Che prevalgano comunque le condizioni di “dinamica” rispetto a quelle di “termica”.\"\n }\n ]\n },\n {\n \"id\": \"5080\",\n \"question\": \"Che cosa s’intende per inversione termica?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una diminuzione anomala della temperatura dell’aria ad una certa quota.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Un andamento anomalo della temperatura dell’aria, quando essa aumenta con l’aumentare della quota.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"L’inversione di moto di una bolla la cui temperatura ha raggiunto il valore di quella dell’aria circostante.\"\n }\n ]\n },\n {\n \"id\": \"5081\",\n \"question\": \"Quando si verifica un’inversione termica in prossimità del suolo può accadere che:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"si formi qualche nube cumuliforme con base quasi sul terreno.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"la visibilità aumenti considerevolmente in corrispondenza del suolo stesso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"si formi nebbia al suolo durante le ore notturne.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5082\",\n \"question\": \"Come si riconosce dal pendio di decollo la presenza di un eventuale strato d’inversione sottostante?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Dalla presenza di foschia sotto lo strato di inversione, caratterizzata da un limite piuttosto netto.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Dalla presenza di nubi convettive a partire dalla base dello strato stesso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Dalla presenza di una situazione di grande visibilità al di sotto della base dello strato d’inversione.\"\n }\n ]\n },\n {\n \"id\": \"5083\",\n \"question\": \"Al decollo da un pendio, la presenza di uno strato d’inversione che tipo di messaggi può suggerirci?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Nessun messaggio meteorologico o aerologico particolare.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Messaggi di sospetta possibile turbolenza anche forte e comunque di cambio delle condizioni aerologiche all’attraversamento della base dello strato stesso.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Qualche messaggio riguardante la possibilità di formazioni cumuliformi sopra lo strato stesso.\"\n }\n ]\n },\n {\n \"id\": \"5084\",\n \"question\": \"Che cosa s’intende per “perturbazione meteorologica” causata dal passaggio di un fronte?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Il corpo nuvoloso ed i fenomeni associati alla presenza di una superficie di discontinuità esistente tra due masse d’aria aventi caratteristiche fisiche diverse.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Il corpo nuvoloso associato alle rapide variazioni di pressione atmosferica al suolo dovuta all’avanzare delle masse d’aria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Il corpo nuvoloso associato a forti venti su rilievi montuosi quando le masse d’aria si muovono sul terreno.\"\n }\n ]\n },\n {\n \"id\": \"5085\",\n \"question\": \"Che cos’è un fronte caldo?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la superficie di separazione tra una massa d’aria fredda che spostandosi raggiunge una massa d’aria più calda.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È la superficie di separazione tra una massa d’aria calda che spostandosi raggiunge una massa d’aria più fredda.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"È un fenomeno non legato ad alcun evento meteorologico.\"\n }\n ]\n },\n {\n \"id\": \"5086\",\n \"question\": \"Quali fenomeni meteorologici genera normalmente un fronte caldo al suo passaggio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Nubi a sviluppo prevalentemente verticale (tipicamente Cumuli congesti, Cumulonembi), precipitazioni violente ed a carattere discontinuo o in forma di rovescio, con aumento della temperatura media.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Nubi a sviluppo prevalentemente orizzontale a quote diverse (tipicamente Nembostrati, Altostrati e Strati), precipitazioni mediamente non violente ma a carattere continuo con aumento della temperatura media.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Nubi a sviluppo orizzontale molto basse (tipicamente Strati e Stratocumuli), precipitazioni solo a carattere discontinuo e violento con aumento della temperatura media.\"\n }\n ]\n },\n {\n \"id\": \"5087\",\n \"question\": \"Che cos’è un fronte freddo?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È la superficie di separazione tra una massa d’aria fredda che spostandosi raggiunge una massa d’aria più calda.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"È la superficie di separazione tra una massa d’aria calda che spostandosi raggiunge una massa d’aria più fredda.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È un fenomeno non legato ad alcun evento meteorologico.\"\n }\n ]\n },\n {\n \"id\": \"5088\",\n \"question\": \"Quali fenomeni meteorologici genera normalmente un fronte freddo al suo passaggio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Nubi a sviluppo orizzontale, precipitazioni a carattere debole e continuo con diminuzione della temperatura.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Nubi a sviluppo verticale, precipitazioni a carattere debole e continuo con diminuzione della temperatura e condizioni di stabilità dell’aria dopo il passaggio del fronte stesso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Nubi a sviluppo verticale, precipitazioni a carattere violento e discontinuo con diminuzione della temperatura e condizioni di instabilità dell’aria dopo il passaggio del fronte stesso.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5089\",\n \"question\": \"Presenza di nubi cumuliformi a ingente sviluppo verticale (tipicamente Cumuli congesti e Cumulonembi) e condizioni d’instabilità dell’aria sono generalmente associate al passaggio di:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"un fronte freddo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"un fronte caldo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"una forte inversione termica alle quote medie.\"\n }\n ]\n },\n {\n \"id\": \"5090\",\n \"question\": \"Le nubi stratiformi, anche di notevole spessore (tipicamente Nembostrati più o meno accompagnati da Altostrati e Strati) sono generalmente associate al passaggio di:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"un fronte freddo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"un fronte caldo.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"un fronte caldo o freddo su rilievi montuosi.\"\n }\n ]\n },\n {\n \"id\": \"5091\",\n \"question\": \"Che cosa s’intende per fronte occluso?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Una perturbazione complessa formata dall’insieme di un fronte freddo che ha raggiunto un fronte caldo e che da luogo a tutti i fenomeni meteorologici caratteristici di entrambi i fronti.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Una perturbazione a carattere freddo che in effetti dà luogo anche a tutti i fenomeni meteorologici tipici di quelle a carattere caldo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Una perturbazione a carattere caldo che in effetti dà luogo anche a tutti i fenomeni meteorologici tipici di quelle a carattere freddo.\"\n }\n ]\n },\n {\n \"id\": \"5092\",\n \"question\": \"In base alla classificazione convenzionale delle nubi, sono considerate nubi del livello basso:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Strati, Nembostrati, Cirrostrati.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Strati, Stratocumuli.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Cumuli, Cirrocumuli, Stratocumuli, Cumulonembi.\"\n }\n ]\n },\n {\n \"id\": \"5093\",\n \"question\": \"In base alla classificazione convenzionale delle nubi, sono considerate nubi del livello medio:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Altostrati e Altocumuli.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Cumulonembi e Altostrati.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Altostrati, Altocumuli e Cirrocumuli.\"\n }\n ]\n },\n {\n \"id\": \"5094\",\n \"question\": \"In base alla classificazione convenzionale delle nubi, sono considerate nubi del livello alto:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Altocumuli e Altostrati.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Altocumuli e Cumulonembi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Cirri, Cirrostrati e Cirrocumuli.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5095\",\n \"question\": \"A quale famiglia di nubi appartengono i Cumuli?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Nubi a sviluppo verticale o convettive.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Nubi medie a sviluppo verticale.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Nubi basse a sviluppo verticale.\"\n }\n ]\n },\n {\n \"id\": \"5096\",\n \"question\": \"Come può essere definito il Cumulo congesto?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Un Cumulo in fase evolutiva avanzata caratterizzato da un elevato sviluppo verticale.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Un Cumulo di tipo particolare in fase iniziale di formazione.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Un Cumulo che non riesce a svilupparsi completamente e a scaricare l’energia termodinamica accumulata.\"\n }\n ]\n },\n {\n \"id\": \"5097\",\n \"question\": \"Che cosa è un Cumulonembo?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Un particolare tipo di Cumulo la cui base è piatta e densa appunto come un Nembostrato.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Una nube cumuliforme al culmine della sua fase evolutiva, caratterizzata dalla violenza dei fenomeni meteorologici a essa associati quali: precipitazioni a carattere temporalesco, fenomeni elettrostatici, formazioni di ghiaccio e wind shear verticale ed orizzontale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Un particolare tipo di Cumulo, capace di generare fenomeni temporaleschi, che si forma esclusivamente in zone montuose d’estate al passaggio di una perturbazione a carattere freddo.\"\n }\n ]\n },\n {\n \"id\": \"5098\",\n \"question\": \"In relazione al Volo Libero il Cumulonembo può essere considerato come:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"una nube di grande utilità per il volo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"una nube decisamente pericolosa per il volo.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"una nube che non riveste alcuna importanza ai fini del volo.\"\n }\n ]\n },\n {\n \"id\": \"5099\",\n \"question\": \"Qual è la sequenza tipica di sviluppo delle nubi convettive?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Strato, Altocumulo, Cumulonembo, Cumulo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Nembostrato, Stratocumulo, Cumulonembo, Cumulo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Cumulo di ridotte dimensioni, Cumulo congesto, Cumulonembo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5100\",\n \"question\": \"La presenza di nubi stratificate è positiva ai fini del Volo Libero, per la possibilità di correnti ascensionali?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, in quanto sono possibili voli di distanza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Sì, ma purtroppo sono associate a condizioni di scarsa visibilità.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Praticamente no.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5101\",\n \"question\": \"La presenza di dense nubi stratificate a varie quote, esclude la possibilità che vi siano anche formazioni nuvolose cumuliformi consistenti?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, perché le nubi stratificate sono sintomo di fronte caldo nel quale non è possibile incontrare nubi convettive.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"No, perché l’aumento di temperatura dovuto al fronte caldo cui sono associate le nubi stratificate può dar luogo a sollevamento di aria con conseguente formazione di nubi a carattere convettivo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, perché le nubi stratificate potrebbero essere dovute al passaggio di un fronte occluso che può dar luogo altresì al formarsi di nubi convettive ed addirittura a carattere temporalesco.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5102\",\n \"question\": \"Quando un forte vento in quota interessa zone montuose, sovente s’innesca un fenomeno ondulatorio che è caratterizzato dalla presenza di:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"nubi stratificate alte del genere Cirrocumuli che tendono a stratificarsi in Cirrostrati per poi evolvere in Cumuli evidenziando il fenomeno ondulatorio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"nubi stratificate basse del genere Strato, indice di moti ondulatori.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"nubi lenticolari (in genere Altocumuli, ma talvolta anche Stratocumuli e/o Cirrocumuli) e nubi rotoriche (Cumulus fractus) che evidenziano il fenomeno dell’onda orografica.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5103\",\n \"question\": \"Una delle caratteristiche delle nubi lenticolari è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la tipica forma a sezione aerodinamica, simile a quella di una mandorla.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"il loro sviluppo verticale, nettamente superiore a quello orizzontale.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"la velocità di spostamento della nube.\"\n }\n ]\n },\n {\n \"id\": \"5104\",\n \"question\": \"Oltre al vento di gradiente è tipica del microclima di zone vallive e montuose la presenza di:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"brezze di monte la sera e brezze di valle il mattino.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"brezze di monte durante la notte e il mattino presto, brezze di valle durante le ore calde della giornata.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"brezze che variano d’intensità e direzione in funzione del luogo, ma sono costanti a tutte le ore del giorno e della notte.\"\n }\n ]\n },\n {\n \"id\": \"5105\",\n \"question\": \"In zone marittime durante la giornata, a causa del diverso riscaldamento delle superfici acquee rispetto alle superfici terrestri, si generano:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"brezze dal mare durante le ore calde della giornata, e viceversa durante la notte.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"brezze da terra durante le ore calde della giornata e viceversa durante la notte.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"solo brezze dal mare durante le ore calde della giornata e non viceversa durante la notte.\"\n }\n ]\n },\n {\n \"id\": \"5106\",\n \"question\": \"Generalmente le brezze di valle danno luogo a correnti di pendio anche sui versanti laterali delle valli stesse?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, dipendentemente dalla morfologia del terreno.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, indipendentemente dalla morfologia del terreno.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, in nessun caso.\"\n }\n ]\n },\n {\n \"id\": \"5107\",\n \"question\": \"E’ possibile che durante la giornata a causa della brezza di valle si formino nubi cumuliformi anche imponenti?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, perché la brezza solleva aria lungo i pendii montuosi causando possibili fenomeni nuvolosi da sollevamento che in condizioni d’instabilità possono essere anche imponenti.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, perché la brezza si riscalda per attrito col terreno, quindi inizia a salire se in regime d’instabilità causando quindi possibili fenomeni nuvolosi da sollevamento.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, i regimi di brezza non danno mai luogo a fenomeni di sollevamento e condensazione.\"\n }\n ]\n },\n {\n \"id\": \"5108\",\n \"question\": \"Può una brezza di valle essere tanto forte da costituire un rischio per i praticanti del Volo Libero?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, particolarmente in corrispondenza delle creste spartiacque.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, particolarmente in corrispondenza di strozzature o svolte a gomito della valle e del fondo valle stesso, per effetto Venturi.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"No, per nessun motivo.\"\n }\n ]\n },\n {\n \"id\": \"5109\",\n \"question\": \"Quando un forte vento impatta di traverso una cresta o un crinale:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"l’aria sottovento a essi è in sostanza calma.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"l’aria sopravvento a essi è certamente vorticosa e turbolenta.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"sottovento ad essi è certa la presenza di rotori e turbolenza.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5110\",\n \"question\": \"Quando una valle è investita da vento forte la cui direzione è in sostanza parallela a quella del suo asse ci possiamo attendere:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"vento forte a scorrimento laminare.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"vento forte anche a raffiche con presenza di rotori con asse pressoché parallelo alle linee di massima pendenza dei pendii laterali della valle stessa.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"vento forte in presenza di rotori di diametro minimo con asse generalmente parallelo all’asse della valle stessa.\"\n }\n ]\n },\n {\n \"id\": \"5111\",\n \"question\": \"Quando una valle è interessata da vento forte la cui direzione forma un angolo superiore a 45° rispetto al suo asse ci possiamo attendere:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"vento quasi calmo lungo i pendii vallivi, ma forte al fondo valle.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"vento a raffiche dovunque, con direzione improvvisamente variabile, sintomo della presenza di rotori stazionari e migratori.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"vento anche forte ma a scorrimento laminare con direzione costante.\"\n }\n ]\n },\n {\n \"id\": \"5112\",\n \"question\": \"Se un rilievo isolato e tondeggiante è investito dal vento, si genereranno facilmente correnti ascensionali?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, perché il vento è costretto comunque a scavalcare l’ostacolo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Dipende unicamente dalla natura del terreno.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No, perché il vento tende comunque ad aggirare l’ostacolo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5113\",\n \"question\": \"E’ possibile che un rotore che si forma per effetto del vento in corrispondenza di un crinale o una cresta spartiacque dia luogo ad ascendenza costante o quasi?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, in nessun caso.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma solo sul versante sopravento.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, anche nel versante sottovento se il rotore è pressoché stazionario e interessa il pendio con la sua parte ascendente.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5114\",\n \"question\": \"La presenza di rotori sul pendio assolato di un versante vallivo situato in sottovento:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"facilita il distacco di termiche anche consistenti e violente dette appunto “di sottovento”.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"non ha nulla a che vedere con l’attività termica del pendio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"impedisce il distacco di ogni tipo di termica.\"\n }\n ]\n },\n {\n \"id\": \"5115\",\n \"question\": \"A volte la presenza di rotori di sottovento specialmente in corrispondenza di crinali e creste elevate è segnalata:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"da formazioni nuvolose dotate di grande velocità di spostamento.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"da una particolare foschia nelle zone adiacenti il pendio sottovento.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"dalla presenza di nubi rotoriche stazionarie che si formano e si dissolvono continuamente e velocemente.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5116\",\n \"question\": \"Quando una catena montuosa è interessata dall’avvezione di una massa d’aria molto umida che tende a scavalcarla, si determinano particolari fenomeni detti:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Stau sopravento con pesanti formazioni nuvolose e conseguenti precipitazioni, Foehn sottovento con vento a raffiche più caldo e secco.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Foehn sopravento con vento a raffiche caldo e secco, Stau sottovento con pesanti formazioni nuvolose e conseguenti precipitazioni.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Stau e Foehn, con uguali conseguenze meteorologiche e climatiche sopravento e sottovento.\"\n }\n ]\n },\n {\n \"id\": \"5117\",\n \"question\": \"Nelle zone alpine del versante italiano, alla presenza del fenomeno di Foehn, sarà presente:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"aumento della temperatura, forte vento laminare caldo e secco, assenza di rotori e turbolenza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"aumento della temperatura, forte vento a raffiche caldo e secco, presenza di rotori e turbolenza.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"aumento della temperatura, forte vento laminare caldo e umido, assenza di rotori e turbolenza.\"\n }\n ]\n },\n {\n \"id\": \"5118\",\n \"question\": \"In presenza di una catena montuosa alta 3000 m aria umida ad una temperatura di pianura di 10°C si solleva dando luogo allo Stau sino in cresta e al Foehn in sottovento. Se la quota di condensazione sopravvento è di 1000 m quale sarà la temperatura dell’aria all’arrivo in pianura appena sotto alla catena montuosa?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La stessa che sopravvento, cioè 10°C.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"13°C.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Circa 20°C.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"5119\",\n \"question\": \"Alla presenza di una catena montuosa alta 3000 m aria umida ad una temperatura di pianura di 10°C si solleva dando luogo a Stau sino in cresta e Foehn sottovento. Se la quota di condensazione sopravento è di 2000 m quale sarà la temperatura dell’aria all’arrivo in pianura appena sotto alla catena montuosa?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"La stessa che sopravvento, cioè 10°C.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Circa 15°C.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"20°C.\"\n }\n ]\n },\n {\n \"id\": \"5120\",\n \"question\": \"Quale tipo di microclima può avere una località posta immediatamente sottovento a una catena montuosa come quella alpina, rispetto a spostamenti di masse d’aria d’origine atlantica provenienti abitualmente dalla pianura francese?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Piuttosto siccitoso e ventoso a causa dei fenomeni di Foehn.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Molto umido e piovoso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Molto più freddo di quello esistente immediatamente sopravento.\"\n }\n ]\n }\n]\n\nexport default questions\n\n","const questions = [\n {\n \"id\": \"4001\",\n \"question\": \"Come varia la pressione parziale dell’ossigeno a livello polmonare, al variare dell’altitudine?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Diminuisce all’aumentare dell’altitudine.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Diminuisce all’aumentare dell’altitudine, ma non scende mai sotto valori di guardia.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Aumenta all’aumentare dell’altitudine.\"\n }\n ]\n },\n {\n \"id\": \"4002\",\n \"question\": \"Ad elevate altitudini nell’organismo umano si instaura una situazione alterata, prodotta dalla ridotta pressione di ossigeno. Essa prende il nome di:\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"ipotermia.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"ipossia.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"ipotensione.\"\n }\n ]\n },\n {\n \"id\": \"4003\",\n \"question\": \"Che cosa è l’ipossia?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È lo stato in cui l’organismo viene a trovarsi a causa dell’insufficiente pressione sanguigna dovuta alla quota.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È lo stato in cui l’organismo viene a trovarsi a causa dell’insufficiente temperatura corporea dovuta alla quota.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È lo stato in cui l’organismo viene a trovarsi a causa dell’insufficiente pressione dell’ossigeno a livello degli alveoli polmonari dovuta alla quota.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"4004\",\n \"question\": \"Quali sono gli effetti dell’ipossia?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Diminuzione dell’efficienza mentale, nausea, euforia, aumento del ritmo di ventilazione polmonare.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Vasodilatazione periferica, secchezza delle fauci, rigidità muscolare, diminuzione del ritmo di ventilazione polmonare.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Diminuzione della pressione arteriosa, ischemia periferica, paralisi dei centri respiratori.\"\n }\n ]\n },\n {\n \"id\": \"4005\",\n \"question\": \"La decompressione da alta quota può dar luogo a liberazione di bolle gassose nel sangue, detti emboli. Qual è la condizione in cui questo pericoloso fenomeno può verificarsi con maggiore facilità?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Lenta ascensione oltre i 7000 metri.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Rapida ascensione a 7000 metri ed oltre.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Permanenza ad alta quota dopo lungo periodo di ambientamento.\"\n }\n ]\n },\n {\n \"id\": \"4006\",\n \"question\": \"Durante il volo il corpo umano è sottoposto a vari tipi di accelerazione. Quali sono meglio sopportate tra quelle positive (testa-piedi) e quelle negative (piedi-testa)?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Entrambe in uguale misura.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Quelle negative.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Quelle positive.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"4007\",\n \"question\": \"Le accelerazioni positive (testa-piedi) corrispondono a un aumento dei “G” o meglio a un aumento fittizio dell’accelerazione di gravità. Quando si possono manifestare in volo?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Durante virate corrette.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Durante il volo su traiettoria rettilinea con forte pendenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Durante brusche manovre di picchiata.\"\n }\n ]\n },\n {\n \"id\": \"4008\",\n \"question\": \"Le accelerazioni negative (piedi-testa) corrispondono a una diminuzione dei “G” o meglio a una diminuzione fittizia della accelerazione di gravità. Quando si possono manifestare in volo?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Durante una brusca richiamata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Durante brusche manovre di picchiata.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Durante il volo su traiettoria rettilinea con forte pendenza.\"\n }\n ]\n },\n {\n \"id\": \"4009\",\n \"question\": \"Quando sussiste in volo il rischio che il pilota soffra di un oscuramento della vista a seguito di manovre che inducono forti accelerazioni?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Quando le accelerazioni indotte sono del tipo positivo (testa-piedi) e superano i 4 “G” per un tempo superiore a 4 secondi.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Quando comunque sono del tipo negativo (piedi-testa).\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Quando si passa da accelerazioni positive ad accelerazioni negative senza soluzione di continuità in meno di 4 secondi.\"\n }\n ]\n },\n {\n \"id\": \"4010\",\n \"question\": \"Considerate le caratteristiche fisiologiche dell’uomo, è possibile eseguire correttamente un volo in nube, facendo affidamento sul solo senso dell’equilibrio?\",\n \"points\": \"2\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, se l’equilibrio è affinato da adeguato addestramento.\"\n }\n ]\n }\n]\n\nexport default questions\n","const questions = [\n {\n \"id\": \"7001\",\n \"question\": \"Prima di recarsi al decollo in atterraggio è necessario:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"verificare le condizioni del terreno.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"verificare le condizioni del terreno e del vento, mettere una manica a vento se non c’è.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"lasciare in atterraggio mezzi e/o persone per il recupero dopo il volo.\"\n }\n ]\n },\n {\n \"id\": \"7002\",\n \"question\": \"Prima di intraprendere un volo di CrossCountry è necessario, oltre a tutto il resto:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"nutrirsi adeguatamente, bere molto per evitare disidratazione, organizzare il recupero, dotarsi di mezzi per trascorrere eventualmente la notte all’addiaccio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"provvedere a che il volo si svolga il mattino, più presto possibile, per disporre di più ore di luce.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"esaminare la carta aeronautica della zona, prendere nota di eventuali divieti e delle possibilità di atterraggio lungo il percorso, nonché fare un’attenta valutazione delle condizioni meteorologiche.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7003\",\n \"question\": \"Quale inclinazione del pendio, assicurata la possibilità di una graduale e corretta rincorsa, è da considerarsi ottimale e sicura per il decollo?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Oltre i 20° e sino a 35°, risultando già così nettamente superiore alla pendenza della traiettoria di volo realizzabile.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Dai 35° ai 45°, in quanto solo così risulta nettamente superiore alla pendenza della traiettoria di volo realizzabile.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Oltre i 45°, per ottenere un rapido distacco dal terreno con garanzia di sorvolo degli ostacoli sulla traiettoria.\"\n }\n ]\n },\n {\n \"id\": \"7004\",\n \"question\": \"Con quale tipo di corsa si deve effettuare il decollo in deltaplano e parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Con falcata corta ed a velocità costante.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Con falcata e velocità crescenti.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Con falcata corta e rapida presa di velocità.\"\n }\n ]\n },\n {\n \"id\": \"7005\",\n \"question\": \"Qual è in fase di decollo con deltaplano e parapendio, la prima manovra da eseguire appena staccati da terra oltre a quelle finalizzate al controllo della direzione?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Cabrare o trazionare i comandi rispettivamente, per non perdere eccessiva quota.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Sistemarsi adeguatamente nell’imbrago.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Picchiare leggermente o rilasciare un poco i freni rispettivamente, per acquisire velocità.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7006\",\n \"question\": \"Come è possibile ottenere, a prescindere da altre condizioni, il minor tasso di caduta possibile con deltaplano e parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Volando in linea retta ed all’incidenza massima consentita.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Volando comunque al regime di massima efficienza in aria calma.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Volando in linea retta ad una incidenza compresa tra quella di massima efficienza in aria calma e quella di stallo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7007\",\n \"question\": \"Come varia l’efficienza all’aria di un’ala aumentando il vento frontale?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Aumenta.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Diminuisce.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Non varia perché l’efficienza all’aria dipende solo dall’angolo d’incidenza dell’ala.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7008\",\n \"question\": \"Se vogliamo comunque realizzare la massima autonomia chilometrica in deltaplano o parapendio dovremo:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"limitare al massimo le manovre.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"volare più possibile in linea retta ed al regime di massima efficienza al suolo.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"volare più possibile in linea retta ed al regime di minimo tasso di caduta.\"\n }\n ]\n },\n {\n \"id\": \"7009\",\n \"question\": \"Se, in determinate condizioni aerologiche, vogliamo rimanere più tempo possibile in volo realizzando la massima autonomia oraria, dovremo:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"limitare al massimo le manovre.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"volare più possibile in linea retta ed al regime di massima efficienza all’aria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"volare più possibile in linea retta ed al regime di minimo tasso di caduta ottenibile.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7010\",\n \"question\": \"Passando da condizioni di aria calma a condizioni di vento frontale, quale correttivo dobbiamo apportare alla velocità per garantirci la massima efficienza al suolo possibile?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Diminuire la velocità rispetto a quella di massima efficienza in aria calma.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Aumentare la velocità rispetto a quella di massima efficienza in aria calma.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Aumentare comunque la velocità sino alla massima possibile.\"\n }\n ]\n },\n {\n \"id\": \"7011\",\n \"question\": \"Volando in deltaplano o parapendio sappiamo che l’efficienza al suolo, quando il vento frontale varia, comunque:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"varia.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"varia, ma solo se il vento frontale aumenta.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"rimane invariata.\"\n }\n ]\n },\n {\n \"id\": \"7012\",\n \"question\": \"L’efficienza al suolo:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"diminuisce al diminuire del vento frontale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"diminuisce all’aumentare del vento frontale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"aumenta all’aumentare del vento frontale.\"\n }\n ]\n },\n {\n \"id\": \"7013\",\n \"question\": \"In condizioni di ascendenza la massima efficienza al suolo si realizza volando:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"con una incidenza maggiore di quella corrispondente al regime di massima efficienza in aria calma.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"con una incidenza minore di quella corrispondente al regime di massima efficienza in aria calma.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"comunque con l’incidenza corrispondente al regime di massima efficienza in aria calma.\"\n }\n ]\n },\n {\n \"id\": \"7014\",\n \"question\": \"In condizioni di discendenza la massima efficienza al suolo si realizza volando:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"con una incidenza minore di quella corrispondente al regime di massima efficienza in aria calma.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"con una incidenza maggiore di quella corrispondente al regime di massima efficienza in aria calma.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"comunque con l’incidenza corrispondente al regime di massima efficienza in aria calma.\"\n }\n ]\n },\n {\n \"id\": \"7015\",\n \"question\": \"Stiamo volando ad una velocità rispetto al suolo di 10 km/h. C’è una componente di vento contrario pari a 30 km/h. Se avessimo l’anemometro quanto indicherebbe?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"10 km/h.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"20 km/h.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"40 km/h.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7016\",\n \"question\": \"Stiamo volando ad una velocità rispetto al suolo di 60 km/h. C’è una componente di vento a favore pari a 30 km/h. Se avessimo l’anemometro quanto indicherebbe?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"90 km/h.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"30 km/h.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"40 km/h.\"\n }\n ]\n },\n {\n \"id\": \"7017\",\n \"question\": \"A quale scopo si utilizza l’acceleratore in parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Per aumentare l’efficienza suolo in condizioni di vento contrario.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Per aumentare il tasso di caduta e ridurre la velocità orizzontale.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Per aumentare l’angolo di assetto in condizioni di turbolenza.\"\n }\n ]\n },\n {\n \"id\": \"7018\",\n \"question\": \"In presenza di vento meteorologico, come si esegue una virata di 360° la cui traccia al suolo sia più possibile circolare?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Variando opportunamente l’inclinazione dell’ala durante la virata in funzione della deriva dovuta allo spostamento dell’aria rispetto al suolo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Accentuando l’inclinazione laterale dell’ala durante la fase della virata con vento in prua.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Diminuendo l’inclinazione laterale dell’ala durante le fasi della virata con vento al traverso.\"\n }\n ]\n },\n {\n \"id\": \"7019\",\n \"question\": \"Come si eseguono le virate in dinamica di pendio ed in prossimità dello stesso, se si vuole avere il miglior rendimento garantendosi il massimo della sicurezza?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Eseguendo virate strette di 360° nel punto in corrispondenza del quale è massima l’ascendenza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Eseguendo lunghi “otto” con inversioni di 180° ad alti angoli di inclinazione per rimanere in virata meno possibile.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Utilizzando la tecnica “a granchio” che consente di eseguire degli “otto” sul pendio evitando di assumere elevati angoli di rollio.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7020\",\n \"question\": \"Perché si fanno virate di 360° in termica?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Perché le termiche hanno sempre e solo un andamento ascendente elicoidale.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Per potersi mantenere all’interno della corrente ascensionale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Perché in virata continua, il tasso di caduta risulta essere minore.\"\n }\n ]\n },\n {\n \"id\": \"7021\",\n \"question\": \"Per sfruttare meglio le condizioni il pilota, entrato in termica o in dinamica:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"interviene sui comandi per ridurre la velocità.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"interviene sui comandi per aumentare la velocità.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"non interviene più sui comandi per variare il regime di volo.\"\n }\n ]\n },\n {\n \"id\": \"7022\",\n \"question\": \"È possibile andare in stallo volando a velocità prossima alla massima?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, se si diminuisce improvvisamente l’incidenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, se si aumenta improvvisamente l’incidenza oltre certi valori.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7023\",\n \"question\": \"A quale velocità è opportuno volare in forte turbolenza?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Alla minima possibile per ridurre le sollecitazioni nel delta e per garantire la massima pressione nei cassoni del parapendio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Alla massima possibile indipendentemente dalle sollecitazioni per uscirne al più presto.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Ad una velocità di poco superiore a quella di massima efficienza in aria calma in delta ed alla massima compatibile con il mantenimento di adeguata pressione nei cassoni in parapendio.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7024\",\n \"question\": \"Come si determina dal volo la direzione del vento al suolo in assenza di manica a vento?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Osservando ogni cosa che il vento può mettere in movimento (fumo, bandiere, panni appesi, alberi) e considerando l’eventuale presenza di deriva.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Osservando il segnavento del deltaplano o del parapendio se istallato, o valutando l’intensità del vento relativo in varie direzioni di volo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Osservando il movimento delle nubi che è sempre possibile mettere in relazione con il vento al suolo.\"\n }\n ]\n },\n {\n \"id\": \"7025\",\n \"question\": \"Che cosa si intende per circuito di avvicinamento ad “otto”?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Un tipo di avvicinamento che consente al pilota di effettuare poche virate per arrivare in atterraggio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Un tipo di avvicinamento che, con virate di oltre 180° sempre verso la superficie di atterraggio, consente al pilota di perdere quota mantenendosi costantemente in prossimità ed in vista di esso.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Un tipo di avvicinamento che consente al pilota di perdere quota facendo delle virate molto strette pur di mantenersi in prossimità dell’atterraggio.\"\n }\n ]\n },\n {\n \"id\": \"7026\",\n \"question\": \"Che cosa si intende per circuito a “C” o aeronautico?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Un tipo di avvicinamento composto da tre fasi distinte dette “sottovento”, “base” o “virata base” e “finale” che consente di arrivare al suolo con buona precisione evitando di fare molte manovre vicino al terreno.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Un tipo di avvicinamento molto complesso, costituito da molte fasi distinte e caratterizzato da manovre da farsi vicino al suolo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Un tipo di avvicinamento valido solo per gli aeromobili e quindi non adatto al deltaplano ed al parapendio.\"\n }\n ]\n },\n {\n \"id\": \"7027\",\n \"question\": \"L’area di atterraggio è molto frequentata. Se le altre condizioni lo permettono scegliamo di atterrare:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"effettuando un circuito di avvicinamento ad “otto”.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"effettuando un circuito di avvicinamento a “C”.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"effettuando un avvicinamento diretto con delle “esse” in finale.\"\n }\n ]\n },\n {\n \"id\": \"7028\",\n \"question\": \"In un atterraggio in cui si presentano contemporaneamente molti deltaplani e parapendio, sarà opportuno:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"impostare gli avvicinamenti con la tecnica a “C” rispettando le precedenze ed avviandosi all’atterraggio quando si è più in basso degli altri.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"impostare gli avvicinamenti con la tecnica a “otto” rispettando le precedenze ed avviandosi all’atterraggio quando si è più in basso degli altri.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"impostare gli avvicinamenti con l’una o l’altra tecnica fatto salvo il rispetto delle precedenze.\"\n }\n ]\n },\n {\n \"id\": \"7029\",\n \"question\": \"Quando è necessario tenere particolarmente conto del gradiente del vento?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Volando in termica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"In atterraggio o durante il volo in prossimità del pendio.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"In decollo perché la velocità del vento sicuramente diminuisce allontanandosi dal suolo.\"\n }\n ]\n },\n {\n \"id\": \"7030\",\n \"question\": \"Effettuando un avvicinamento con circuito a “C” in condizioni di vento sostenuto, è necessario iniziare la virata base:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"ben oltre il traverso del punto di contatto.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"non al di sopra dei 50 m di quota.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"non troppo oltre il traverso del punto di contatto.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7031\",\n \"question\": \"Se, per errore, l’asse prescelto dal pilota per effettuare una serie di “otto” in avvicinamento è troppo prossimo al punto di contatto, per non mancare l’atterraggio il rischio è quello di dover:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"iniziare la virata in finale a quota molto alta.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"effettuare il tratto finale su una traiettoria molto ripida.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"effettuare la virata in finale a quota molto bassa.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7032\",\n \"question\": \"Durante la fase finale dell’atterraggio con vento forte in deltaplano o parapendio il pilota deve:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"attendersi una traiettoria ripida, aumentare la velocità all’aria al massimo per minimizzare l’effetto del gradiente del vento o del wind shear, raccordare moderatamente e solo in prossimità del suolo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"cercare di assumere la traiettoria più ripida possibile mantenendo la velocità di minimo tasso di caduta, in previsione del gradiente di vento raccordare moderatamente e solo in prossimità del suolo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"indipendentemente dalla traiettoria che ne risulta mantenere la minima velocità all’aria possibile e stallare non appena si incontrano condizioni di gradiente del vento.\"\n }\n ]\n },\n {\n \"id\": \"7033\",\n \"question\": \"Per effetto del gradiente del vento vicino al suolo in atterraggio il pilota deve attendersi:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"un aumento improvviso del tasso di caduta con probabile picchiata del mezzo che è possibile prevenire con una buona dose di velocità.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"una improvvisa diminuzione di velocità al suolo per l’aumentata componente di vento contrario che non crea problemi di pilotaggio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"una perdita improvvisa di quota che non si può compensare aumentando decisamente l’incidenza.\"\n }\n ]\n },\n {\n \"id\": \"7034\",\n \"question\": \"Il mantenimento della massima velocità in finale prima di iniziare a raccordare è necessario per:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"poter stallare meglio in prossimità del suolo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"evitare gli effetti negativi di eventuale gradiente del vento o wind shear.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"avvicinarsi al terreno con una traiettoria più ripida.\"\n }\n ]\n },\n {\n \"id\": \"7035\",\n \"question\": \"Il vento in atterraggio è sostenuto, volando in deltaplano o parapendio, per aumentare il margine di sorvolo di eventuali ostacoli lungo la traiettoria, al pilota conviene tra le seguenti soluzioni:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"aumentare la velocità all’aria perché solo così facendo si ottiene la massima efficienza suolo possibile e quindi la minor pendenza di traiettoria reale.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"diminuire la velocità all’aria onde ottenere il minimo tasso di caduta possibile.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"volare comunque al regime di massima efficienza in aria calma per ottenere la minor pendenza di traiettoria.\"\n }\n ]\n },\n {\n \"id\": \"7036\",\n \"question\": \"Quando è necessario controllare che i cordini del parapendio non siano attorcigliati o aggrovigliati?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Dopo aver gonfiato, sollevato e frenato quanto basta l’ala in fase di decollo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Subito dopo essere atterrati prima di riporre il parapendio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Durante la preparazione dell’ala per il decollo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7037\",\n \"question\": \"Durante un volo di cross non sempre è possibile atterrare dove previsto. Il pilota dovrebbe conoscere perfettamente:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"la tecnica per atterrare senza inconvenienti in un preciso punto di un pendio o una superficie ridotta.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"le tecniche di sopravvivenza in montagna per salvaguardarsi in attesa di recuperi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"le tecniche per effettuare atterraggi con il vento anche forte in coda per poter atterrare comunque anche su piccole superfici circondate da eventuali ostacoli.\"\n }\n ]\n },\n {\n \"id\": \"7038\",\n \"question\": \"Immediatamente prima di effettuare un decollo in parapendio è necessario eseguire i controlli di sicurezza che sono:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"scarpe allacciate, selletta allacciata e regolata come previsto, bretelle e cordini correttamente predisposti ed impugnati, ala in posizione corretta, casco allacciato, vento e condizioni meteo favorevoli, spazio aereo libero.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"casco e guanti indossati, terreno sgombro ed adatto, cassoni dell’ala aperti, vento favorevole e spazio aereo libero.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"moschettoni o maillons serrati, integrità dell’ala verificata, selletta correttamente collegata all’ala, freni liberi.\"\n }\n ]\n },\n {\n \"id\": \"7039\",\n \"question\": \"Nel parapendio oltre a curare che la posizione del pilota risulti in volo quella corretta, è indispensabile, affinché l’ala mantenga le caratteristiche garantite dall’omologazione, verificare che il tipo di selletta usato sia compatibile e che vengano rispettate le seguenti disposizioni:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"regolare la selletta per ottenere che la distanza tra le bretelle (destra e sinistra) sia sempre superiore a 40 cm.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"regolare la selletta in modo che il pilota possa comunque arrivare ad afferrare i cordini anteriori esterni ben sopra i maillons.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"regolare la selletta in modo che la distanza tra le bretelle (destra e sinistra) nonché tra i maillons ed il piano della selletta sia quella prevista e riportata sulla targhetta di omologazione.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7040\",\n \"question\": \"Se ci rendiamo conto che il nostro parapendio è umido, quali accorgimenti dobbiamo adottare durante il volo:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"effettuare le “orecchie” per scendere più velocemente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"non ci sono particolari accorgimenti da adottare, perché la vela umida non presenta alcun problema di assetto.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"pilotare l’ala con dolcezza rimanendo nella fascia alta delle velocità.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7041\",\n \"question\": \"Il gonfiaggio del parapendio fronte all’ala (spalle al vento) è particolarmente consigliato:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"in condizioni di vento sostenuto.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"in condizioni di vento al traverso.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"in condizioni di vento debole o calmo.\"\n }\n ]\n },\n {\n \"id\": \"7042\",\n \"question\": \"Le fasi in cui è possibile pensare di suddividere il decollo in parapendio sono:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"gonfiaggio, rincorsa, involo e successiva presa di velocità.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"gonfiaggio, sollevamento e controllo con i freni dell’ala sulla verticale, verifica a vista della stessa, rincorsa ed involo con presa di velocità e mantenimento della traiettoria prevista.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"gonfiaggio e sollevamento, controllo con i freni dell’ala, rincorsa ed involo, mantenimento della traiettoria prevista.\"\n }\n ]\n },\n {\n \"id\": \"7043\",\n \"question\": \"Dopo il gonfiaggio del parapendio fronte all’ala finalizzato al decollo, al fine di evitare che l’ala si scomponga o passi davanti nel momento in cui ci si gira e si inizia la rincorsa, è importante:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"che la rotazione del pilota avvenga velocemente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"che il pilota abbandoni le maniglie dei freni prima di girarsi per poi riprenderle prontamente fronte al pendio.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"che il pilota con l’uso di bretelle e freni assuma e mantenga il completo controllo dell’ala sulla verticale prima di girarsi fronte al pendio.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7044\",\n \"question\": \"È possibile il decollo in parapendio con limitata componente di vento al traverso?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, senza particolari accorgimenti.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, gonfiando l’ala contro vento e conducendola successivamente con un’azione graduale sui freni lungo la linea di massima pendenza del pendio sino allo stacco.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"No, il decollo in queste condizioni risulta praticamente impossibile anche al pilota più esperto.\"\n }\n ]\n },\n {\n \"id\": \"7045\",\n \"question\": \"Un corretto decollo in parapendio è quello in cui il pilota:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"valutata comunque sufficiente la portanza prodotta dall’ala interrompe la rincorsa e si sistema al più presto nella selletta.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"controllata e verificata l’ala adeguatamente, con busto inarcato all’indietro corre guardando l’ala con velocità costante sino allo stacco.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"controllata e verificata l’ala adeguatamente, con busto in avanti corre con velocità in progressivo aumento sino allo stacco.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7046\",\n \"question\": \"La sequenza di interruzione di un decollo in parapendio dovrebbe essere:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"interrompere al più presto la corsa e qualora possibile frenare completamente l’ala.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"frenare opportunamente l’ala onde utilizzarla come dispositivo di arresto aerodinamico, ed interrompere gradualmente la corsa.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"interrompere gradualmente la corsa per non inciampare, senza badare all’ala dal momento che comunque non si andrà in volo.\"\n }\n ]\n },\n {\n \"id\": \"7047\",\n \"question\": \"Se, a gonfiaggio avvenuto, il pilota trattiene le bretelle anteriori, durante la corsa di decollo, è probabile che:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il decollo avvenga con ritardo e sia necessario correre più a lungo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il decollo debba essere interrotto in quanto l’ala collasserà per chiusura frontale.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"si verifichi una chiusura laterale il cui ricupero dovrà essere fatto solo dopo il decollo.\"\n }\n ]\n },\n {\n \"id\": \"7048\",\n \"question\": \"Se dopo il decollo si constata una chiusura laterale del parapendio, come deve comportarsi il pilota?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Mantenere o ristabilire il controllo direzionale dell’ala e solo dopo averlo fatto intervenire opportunamente per provocare la riapertura dell’estremità collassata.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Intervenire immediatamente per provocare la riapertura dell’estremità collassata trazionando e rilasciando alternativamente il freno dalla parte della chiusura.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Intervenire immediatamente per provocare la riapertura dell’estremità collassata mantenendo trazionato a fondo il freno dalla parte della chiusura.\"\n }\n ]\n },\n {\n \"id\": \"7049\",\n \"question\": \"E’ possibile eseguire virate in parapendio con il solo spostamento laterale del peso del pilota?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, in modo più o meno accentuato, dipendentemente dal tipo di selletta e dalla sua regolazione.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma a rischio di provocare uno stallo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No.\"\n }\n ]\n },\n {\n \"id\": \"7050\",\n \"question\": \"Volendo sfruttare al meglio le prestazioni del parapendio, sarà opportuno che il pilota esegua virate utilizzando il peso e successivamente:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"rilasci entrambi i freni per poi trazionare quello interno alla virata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"rilasci, se trazionato, il freno situato dalla parte opposta al senso di virata per poi modulare l’inclinazione con entrambi i comandi.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"trazioni il freno interno per impostare la massima inclinazione.\"\n }\n ]\n },\n {\n \"id\": \"7051\",\n \"question\": \"Il parapendio è un mezzo che presenta il vantaggio di poter girare abbastanza stretto da non uscire da una eventuale termica anche se di modeste dimensioni. Quali delle seguenti opzioni è preferibile per sfruttare meglio questo tipo di condizioni?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Scegliere un ottimo compromesso tra inclinazione laterale e tasso di caduta che consenta comunque di non uscire dalla termica, tenendo conto del suo andamento verticale.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Eseguire comunque virate più piatte possibile per ottenere il minimo tasso di caduta.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Effettuare degli “otto” in modo tale da rimanere entro i limiti della termica stessa.\"\n }\n ]\n },\n {\n \"id\": \"7052\",\n \"question\": \"E’ possibile provare l’avvicinamento allo stallo in parapendio e con quale tecnica per garantirsi adeguati margini di sicurezza?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, effettuandolo solo in quota indipendentemente dal modo in cui si interviene sui comandi.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"No, tutto ciò che ha a che vedere con lo stallo comunque non può essere effettuato mantenendo adeguati margini di sicurezza in quanto induce sicuramente configurazioni inusuali.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, durante un corso SIV, seguiti da istruttore qualificato volando sull’acqua ed effettuandolo con azione dolce e progressiva sui comandi sino al limite dello stallo, provvedendo ad un immediato ricupero delle condizioni normali di volo prima che l’ala collassi bruscamente dietro al pilota.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7053\",\n \"question\": \"Come si riconosce uno stallo paracadutale del parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Ala perfettamente gonfia, velocità all’aria praticamente nulla, tasso di caduta elevato.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Ala perfettamente gonfia, velocità all’aria praticamente nulla, tasso di caduta normale, forti vibrazioni sui comandi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Ala con chiusura laterale, velocità all’aria praticamente nulla, tendenza dell’ala all’auto rotazione.\"\n }\n ]\n },\n {\n \"id\": \"7054\",\n \"question\": \"In volo con il parapendio può accadere che accidentalmente si raggiunga lo stallo volando troppo lenti. Per una corretta rimessa, il pilota dovrà:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"a stallo avvenuto rilasciare immediatamente e velocemente i comandi per poi trazionarli bruscamente durante l’abbattimento in avanti dell’ala.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"a stallo avvenuto mantenere i comandi affondati, attendere guardando verso l’alto il ritorno dell’ala sulla verticale, quindi rilasciare gradualmente e simmetricamente i comandi pronto ad intervenire per gestire il pendolamento in avanti.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"a stallo avvenuto rilasciare dolcemente i comandi, iniziando se possibile una virata per acquisire velocità.\"\n }\n ]\n },\n {\n \"id\": \"7055\",\n \"question\": \"Quali sono le manovre di discesa rapida in parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Effettuare virate continue che consentono di aumentare il carico alare.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Fare volare l’ala in condizioni di stallo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Le “orecchie”, i “wing over” e la spirale picchiata.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7056\",\n \"question\": \"Qual è il risultato di una simmetrica e leggera tensione esercitata sugli elevatori posteriori del parapendio?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Aumento della velocità e diminuzione della portanza.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Variazione dell’assetto, dell’incidenza, della velocità.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Diminuzione della sola incidenza.\"\n }\n ]\n },\n {\n \"id\": \"7057\",\n \"question\": \"È possibile in parapendio pilotare facendo uso dei soli elevatori posteriori?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ma non è possibile variare la velocità sulla traiettoria.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"No.\"\n }\n ]\n },\n {\n \"id\": \"7058\",\n \"question\": \"Il pilota che agisce sull’acceleratore sa di poter:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"variare l’assetto, l’incidenza e la velocità dell’ala entro limiti ben precisi.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"variare quanto vuole la velocità dell’ala agendo su assetto ed incidenza.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"variare consistentemente la pendenza della traiettoria in quanto riesce a produrre ampie variazioni di incidenza.\"\n }\n ]\n },\n {\n \"id\": \"7059\",\n \"question\": \"In volo rettilineo in uscita da una virata, se per effetto di una sovracorrezione si innescano oscillazioni laterali del parapendio il pilota dovrà:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"cercare di smorzarle insistendo ad agire sui comandi in contro fase.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"rilasciare completamente i comandi per qualche secondo e poi iniziare una virata accentuata a destra o sinistra.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"rallentare trazionando con una certa decisione ed in modo simmetrico i comandi sino ad ottenere la stabilizzazione dell’ala.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7060\",\n \"question\": \"La corretta sequenza in finale per l’atterraggio in parapendio, in condizioni di vento moderato, è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"massima velocità all’aria sino a circa un metro dal suolo quindi intervento deciso sui comandi per provocare lo stallo.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"massima velocità all’aria possibile sino a circa 4 o 5 metri dal suolo, primo intervento sui comandi per diminuire velocità e pendenza (freni trazionati circa al 20%), graduale ma completa frenata in prossimità del suolo sino al contatto.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"regime di minimo tasso di caduta sino a circa due metri dal suolo quindi graduale intervento sui comandi sino a provocare lo stallo.\"\n }\n ]\n },\n {\n \"id\": \"7061\",\n \"question\": \"Nella zona di decollo abbiamo vento sufficiente a consentire un gonfiaggio fronte vela ma il vento è laterale (25 gradi) rispetto alla massima pendenza del terreno.\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Predisponiamo la vela per il gonfiaggio lungo la massima pendenza per sfruttarla al meglio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Orientiamo la vela contro vento per gonfiarla e successivamente eseguiamo la corsa di decollo lungo la massima pendenza.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Orientiamo la vela contro vento per gonfiarla e successivamente decolliamo lungo questa direzione.\"\n }\n ]\n },\n {\n \"id\": \"7062\",\n \"delta\": true,\n \"question\": \"Decollo in deltaplano. Tra i controlli di sicurezza pre-decollo, uno in particolare risulta essenziale e deve essere eseguito con una tecnica ed una cura particolare perché ha causato svariati e gravi incidenti:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il controllo del posizionamento del deltaplano.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il controllo dell’avvenuto aggancio del pilota al deltaplano.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"il controllo del corretto ripiegamento del paracadute di emergenza.\"\n }\n ]\n },\n {\n \"id\": \"7063\",\n \"delta\": true,\n \"question\": \"Come è necessario verificare nel miglior modo l’avvenuto corretto aggancio del pilota al deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Facendo sorreggere la chiglia del deltaplano da un assistente, disponendosi in posizione orizzontale di volo sospesi all’aggancio, verificando oltre all’aggancio stesso la posizione del corpo rispetto alla barra.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Agganciando il moschettone e verificando attentamente con un controllo visivo che l’aggancio stesso sia correttamente avvenuto.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Facendo verificare dall’assistente che l’aggancio sia stato correttamente effettuato.\"\n }\n ]\n },\n {\n \"id\": \"7064\",\n \"delta\": true,\n \"question\": \"Quali precauzioni si devono adottare se si intende decollare in deltaplano con vento sostenuto?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Durante la fase immediatamente precedente il decollo far tenere l’estremità alare da un solo assistente.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Accertarsi che durante il decollo nessuno degli assistenti trattenga l’ala.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Provvedere a che gli assistenti spingano adeguatamente la chiglia in fase di decollo.\"\n }\n ]\n },\n {\n \"id\": \"7065\",\n \"delta\": true,\n \"question\": \"Se il vento è angolato entro i 45° rispetto alla direzione di decollo, è possibile decollare in deltaplano e come?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"No, anche se la componente è moderata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, se la componente è limitata, correndo lungo la linea di massima pendenza con la prua parzialmente orientata contro vento.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, anche se la componente è sostenuta, purché si corra contro vento.\"\n }\n ]\n },\n {\n \"id\": \"7066\",\n \"delta\": true,\n \"question\": \"Se il pilota intraprende la corsa di decollo con il deltaplano molto cabrato:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"il decollo avviene prima ed è possibile sorvolare con più margine eventuali ostacoli sulla traiettoria.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"il decollo avviene a velocità più bassa ed è più semplice il controllo del deltaplano dopo il decollo.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"il decollo avviene con incidenza troppo elevata, la traiettoria che ne risulta è ripida ed è alto il rischio di stallo.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7067\",\n \"delta\": true,\n \"question\": \"È possibile l’interruzione di decollo in deltaplano e quali rischi comporta eventualmente?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si, solo in caso di estrema necessità, con alta probabilità di danni alla struttura e conseguenze per il pilota.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si, ogniqualvolta lo si ritenga necessario senza particolari problematiche se si conosce e si applica la tecnica corretta.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Si, purché non la si effettui quando si è prossimi allo stacco e si abbia una discreta esperienza.\"\n }\n ]\n },\n {\n \"id\": \"7068\",\n \"delta\": true,\n \"question\": \"Quando è opportuno che il pilota si sistemi nell’imbrago dopo il decollo in deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Il più presto possibile dopo lo stacco.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Acquisito il completo controllo della velocità e della direzione, lontano dal pendio.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Non esistono limitazioni o tecniche particolari per sistemarsi nell’imbrago.\"\n }\n ]\n },\n {\n \"id\": \"7069\",\n \"delta\": true,\n \"question\": \"Come si può variare l’angolo d’incidenza in volo con il deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Solo agendo sul dispositivo chiamato “overdrive”.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Appoggiando il peso del pilota sulla barra, indi spingendola o trazionandola.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Agendo sulla barra di controllo con movimenti di spinta o trazione.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7070\",\n \"delta\": true,\n \"question\": \"Individuare la corretta sequenza per effettuare una virata in deltaplano:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"presa di velocità, spostamento laterale del corpo rispetto alla barra parallelamente alla chiglia, spinta sulla barra per coordinare la virata, riposizionamento del corpo in posizione centrata rispetto alla barra.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"presa di velocità, spostamento laterale del corpo rispetto alla barra parallelamente alla chiglia, riposizionamento del corpo in posizione centrata rispetto alla barra.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"presa di velocità, spinta asimmetrica per ottenere una rotazione del deltaplano attorno all’asse verticale, contemporaneo spostamento laterale del corpo rispetto alla barra, riposizionamento del corpo in posizione centrata rispetto alla barra.\"\n }\n ]\n },\n {\n \"id\": \"7071\",\n \"delta\": true,\n \"question\": \"Quale errore di manovra causa generalmente una scivolata d’ala del deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Mancata coordinazione dei movimenti durante l’esecuzione di una virata.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Mancata coordinazione dei movimenti ed insufficiente spinta sulla barra durante l’esecuzione di una virata.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Eccessiva spinta sulla barra durante una virata.\"\n }\n ]\n },\n {\n \"id\": \"7072\",\n \"delta\": true,\n \"question\": \"Come si esegue il controllo di rollio in deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Facendo semplicemente ruotare l’asse del corpo rispetto alla barra.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Spostando lateralmente il corpo e facendo nello stesso tempo ruotare il suo asse rispetto alla barra.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Spostando lateralmente il corpo rispetto alla barra, sempre mantenendolo parallelo alla chiglia.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7073\",\n \"delta\": true,\n \"question\": \"Un ala rigida vira:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"grazie all’azione di comandi aerodinamici oltreché allo spostamento del peso.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"grazie all’azione dei comandi aerodinamici.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"grazie allo spostamento del peso.\"\n }\n ]\n },\n {\n \"id\": \"7074\",\n \"delta\": true,\n \"question\": \"A distanza di sicurezza dal terreno, come si esegue correttamente una prova di stallo in deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Si spinge dolcemente e gradualmente sulla barra per aumentare l’angolo di incidenza sino allo stallo ed a stallo avvenuto si ottiene la rimessa riaumentando la velocità al mezzo.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Si spinge in avanti sui montanti per ottenere angoli d’incidenza più elevati, e si mantiene questa posizione per almeno 30 secondi.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Dopo adeguata presa di velocità si spinge sulla barra con decisione e rapidità per ottenere un brusco aumento dell’incidenza.\"\n }\n ]\n },\n {\n \"id\": \"7075\",\n \"delta\": true,\n \"question\": \"Come deve comportarsi il pilota di deltaplano una volta entrato in termica se vuole sfruttarla?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Mantenere il regime di minimo tasso di caduta ed effettuare delle virate di 360° per rimanere in termica.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"Mantenere il regime di massima efficienza ed effettuare delle virate di 360° per rimanere in termica.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"Mantenere sempre la minima velocità possibile ed effettuare delle virate accentuate di 360° per rimanere in termica.\"\n }\n ]\n },\n {\n \"id\": \"7076\",\n \"delta\": true,\n \"question\": \"Cosa è il tumbling?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"È un manovra acrobatica.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"È una manovra di discesa rapida.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"È un rovesciamento in avanti del delta che si ha a seguito di fortissime turbolenze quali quelle dovute ai rotori.\",\n \"correct\": true\n }\n ]\n },\n {\n \"id\": \"7077\",\n \"delta\": true,\n \"question\": \"Come è possibile intervenire per aumentare la velocità di trim del deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Spostando indietro il punto di aggancio del pilota rispetto alla struttura.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"Spostando in avanti il punto di aggancio del pilota rispetto alla struttura.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Spostando in alto il punto di aggancio del pilota rispetto alla struttura.\"\n }\n ]\n },\n {\n \"id\": \"7078\",\n \"delta\": true,\n \"question\": \"La corretta sequenza in finale per l’atterraggio con il deltaplano in condizioni di vento moderato è:\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"raccordare adeguatamente in prossimità del suolo, mantenendo una traiettoria orizzontale sino al momento di “aprire” per stallare il deltaplano alla minima velocità di sostentamento possibile.\",\n \"correct\": true\n },\n {\n \"id\": \"2\",\n \"text\": \"raccordare adeguatamente a 4 o 5 metri dal suolo, mantenendo poi una traiettoria lievemente picchiata sino al momento di “aprire” per stallare il deltaplano ad una velocità ancora ben superiore alla minima di sostentamento.\"\n },\n {\n \"id\": \"3\",\n \"text\": \"raccordare adeguatamente in prossimità del suolo, mantenendo una traiettoria orizzontale sino in prossimità del punto di contatto prestabilito quindi “aprire” con decisione per stallare il deltaplano, indipendentemente dalla velocità raggiunta.\"\n }\n ]\n },\n {\n \"id\": \"7079\",\n \"delta\": true,\n \"question\": \"In quale momento ci si porta in posizione verticale per atterrare in deltaplano?\",\n \"points\": \"4\",\n \"answers\": [\n {\n \"id\": \"1\",\n \"text\": \"Appena si avverte che il deltaplano risente dell’effetto suolo dopo aver raccordato in finale per l’atterraggio.\"\n },\n {\n \"id\": \"2\",\n \"text\": \"In finale per l’atterraggio, durante la fase di raccordo in prossimità del suolo, prima di “aprire” per stallare il deltaplano.\",\n \"correct\": true\n },\n {\n \"id\": \"3\",\n \"text\": \"Più tardi possibile durante l’apertura per stallare il deltaplano.\"\n }\n ]\n }\n]\n\nexport default questions\n","import aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nimport { examScheme } from \"../components/Variables\"\n\nlet tmpQuestions = []\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst generateQuestions = () => {\n let fullQuestions = []\n\n examScheme.forEach( (elem) => {\n let currentSection = allQuestions[elem.section]\n for(let i=0; i<currentSection.length; i++) {\n fullQuestions.push(currentSection[i])\n }\n })\n\n for(let i=0; i<10; i++) {\n const currentIndex = Math.floor(Math.random() * fullQuestions.length)\n tmpQuestions.push(fullQuestions[currentIndex])\n fullQuestions = fullQuestions.filter( (item, index) => index != currentIndex)\n }\n\n}\n\ngenerateQuestions()\n\nexport const trueFalseQuestions = tmpQuestions\n","","import React from \"react\"\nimport { View, ScrollView, StatusBar, BackHandler, StyleSheet, Dimensions, ImageBackground } from \"react-native\"\nimport AsyncStorage from '@react-native-community/async-storage'\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\nimport testQuestions from \"../data/test\"\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { RowItem } from \"../components/RowItem\"\nimport { colors, texts} from \"../components/Variables\"\n\nconst bgImage = require(\"../assets/bg.jpg\")\nconst screen = Dimensions.get(\"window\")\n\nconst styles = StyleSheet.create({\n\n bg: {\n flex: 1,\n width: \"100%\",\n height: \"100%\"\n },\n})\n\n/*\n <RowItem name=\"TEST\" textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: \"TEST\",\n questions: testQuestions,\n color: colors.blue\n })}/>\n*/\n\nclass QuizIndex extends React.Component {\n\n state = {\n storeWrongAnswers: [],\n randomQuestions: true,\n excludeDelta: true\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n AsyncStorage.getItem('storeWrongAnswers').then((value) => {\n this.setState( (state) => {\n return {\n storeWrongAnswers: JSON.parse(value)\n }\n })\n })//.done()\n\n AsyncStorage.getItem('setupData').then((value) => {\n this.setState( (state) => {\n return {\n randomQuestions: JSON.parse(value).randomQuestions,\n excludeDelta: JSON.parse(value).excludeDelta\n }\n })\n })//.done()\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n this.props.navigation.navigate(\"Splash\")\n return true\n }\n\n render() {\n return (\n <ImageBackground source={bgImage} style={styles.bg} resizeMode=\"cover\">\n <ScrollView >\n <View style={{marginVertical: 60}}>\n\n <RowItem name={texts.aerodynamics} subtitle={this.state.excludeDelta ? aerodynamicsQuestions.filter(item => !item.delta).length : aerodynamicsQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.aerodynamics,\n questions: this.state.excludeDelta ? aerodynamicsQuestions.filter(item => !item.delta) : aerodynamicsQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n <RowItem name={texts.first_aid} subtitle={this.state.excludeDelta ? firstAidQuestions.filter(item => !item.delta).length : firstAidQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.first_aid,\n questions: this.state.excludeDelta ? firstAidQuestions.filter(item => !item.delta) : firstAidQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n <RowItem name={texts.flight_safety} subtitle={this.state.excludeDelta ? flightSafetyQuestions.filter(item => !item.delta).length : flightSafetyQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.flight_safety,\n questions: this.state.excludeDelta ? flightSafetyQuestions.filter(item => !item.delta) : flightSafetyQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n <RowItem name={texts.instruments} subtitle={this.state.excludeDelta ? instrumentsQuestions.filter(item => !item.delta).length : instrumentsQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.instruments,\n questions: this.state.excludeDelta ? instrumentsQuestions.filter(item => !item.delta) : instrumentsQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n <RowItem name={texts.legislation} subtitle={this.state.excludeDelta ? legislationQuestions.filter(item => !item.delta).length : legislationQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.legislation,\n questions: this.state.excludeDelta ? legislationQuestions.filter(item => !item.delta) : legislationQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n <RowItem name={texts.materials} subtitle={this.state.excludeDelta ? materialsQuestions.filter(item => !item.delta).length : materialsQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.materials,\n questions: this.state.excludeDelta ? materialsQuestions.filter(item => !item.delta) : materialsQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n <RowItem name={texts.meteorology} subtitle={this.state.excludeDelta ? meteorologyQuestions.filter(item => !item.delta).length : meteorologyQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.meteorology,\n questions: this.state.excludeDelta ? meteorologyQuestions.filter(item => !item.delta) : meteorologyQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n <RowItem name={texts.physiopathology} subtitle={this.state.excludeDelta ? physiopathologyQuestions.filter(item => !item.delta).length : physiopathologyQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.physiopathology,\n questions: this.state.excludeDelta ? physiopathologyQuestions.filter(item => !item.delta) : physiopathologyQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n <RowItem name={texts.piloting_techniques} subtitle={this.state.excludeDelta ? pilotingTechniquesQuestions.filter(item => !item.delta).length : pilotingTechniquesQuestions.length}\n textColor={colors.white} onPress={()=>\n this.props.navigation.navigate(\"Quiz\", {\n title: texts.piloting_techniques,\n questions: this.state.excludeDelta ? pilotingTechniquesQuestions.filter(item => !item.delta) : pilotingTechniquesQuestions,\n randomQuestions: this.state.randomQuestions,\n color: colors.blue\n })\n }/>\n\n </View>\n </ScrollView>\n\n </ImageBackground>\n )\n }\n}\n\nexport default QuizIndex\n","const questions = [\n {\n id: \"3001\",\n question: \"Quale comportamento è auspicabile appena effettuato un soccorso d’emergenza?\",\n points: \"2\",\n answers: [\n {\n id: \"1\",\n text: \"Si trasporta il ferito all’ospedale con qualsiasi mezzo disponibile seguendolo da vicino.\"\n },\n {\n id: \"2\",\n text: \"VERA - Far trasportare all’ospedale con mezzo idoneo ed abilitato l’infortunato prendendosi cura dei suoi effetti personali ed avvisando al più presto i suoi parenti più prossimi.\",\n correct: true\n },\n {\n id: \"3\",\n text: \"Una volta chiamate si attende che giungano le autorità di polizia e si lascia a esse ogni incombenza.\"\n }\n ]\n },\n {\n id: \"3002\",\n question: \"Qual è, tra questi, il modo migliore per accompagnare un infortunato con una lesione leggera in grado di camminare?\",\n points: \"2\",\n answers: [\n {\n id: \"1\",\n text: \"Procurandogli un paio di stampelle.\"\n },\n {\n id: \"2\",\n text: \"Portandolo a spalle.\"\n },\n {\n id: \"3\",\n text: \"VERA - Mettendosi al suo fianco, dal lato della lesione e cingendogli la vita con il braccio, se possibile.\",\n correct: true\n }\n ]\n },\n {\n id: \"3003\",\n question: \"Come comportarsi alla presenza di un infortunato di cui si sospettano lesioni interne di entità sconosciuta?\",\n points: \"2\",\n answers: [\n {\n id: \"1\",\n text: \"Ispezionarlo attentamente, interrogandolo sulle parti dolenti e facendolo muovere se può, indi chiamare i mezzi di soccorso.\"\n },\n {\n id: \"2\",\n text: \"VERA - Interrompere il flusso sanguigno con laccio emostatico posto tra la lesione ed il cuore o con idoneo tampone posto sulla ferita.\",\n correct: true\n },\n {\n id: \"3\",\n text: \"Distendere l’infortunato con la ferita posta verso l’alto.\"\n }\n ]\n }\n]\n\nexport default questions\nquestions.forEach( (q) => {\n if(q.answers.length != 3) {\n console.log(q.id)\n } else {\n const hasCorrect = q.answers.filter(item => item.correct)\n if(!hasCorrect[0]) {\n console.log(\"NC\", q.id)\n }\n }\n})\n","import React from \"react\"\nimport { View, Text, TouchableOpacity, StyleSheet } from \"react-native\"\nimport { colors, texts } from \"../components/Variables\"\n\nconst styles = StyleSheet.create({\n row: {\n paddingHorizontal: 15,\n paddingVertical: 20,\n backgroundColor: colors.blue,\n marginBottom: 1\n },\n container: {\n paddingHorizontal: 20\n },\n button: {\n backgroundColor: colors.white_alpha,\n borderWidth: 4,\n borderColor: 'transparent',\n borderRadius: 10,\n paddingHorizontal: 10,\n paddingVertical: 13,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n marginVertical: 5\n },\n text: {\n fontSize: 20,\n color: colors.white,\n fontWeight: \"500\",\n textShadowColor: 'rgba(0, 0, 0, 0.45)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 2\n },\n subtitle: {\n fontSize: 14,\n color: colors.white,\n fontWeight: \"400\",\n textShadowColor: 'rgba(0, 0, 0, 0.45)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 2\n }\n})\n\nexport const RowItem = ({ onPress = () => {}, name, subtitle, textColor }) => (\n <TouchableOpacity style={styles.container} onPress={onPress} activeOpacity={0.8}>\n <View style={styles.button}>\n <Text style={[styles.text, { color: textColor }]}>{name}</Text>\n <Text style={[styles.subtitle, { color: textColor }]}>({subtitle} {texts.questions})</Text>\n </View>\n </TouchableOpacity>\n)\n","","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, ImageBackground, BackHandler } from \"react-native\"\nimport { Picker } from '@react-native-picker/picker'\nimport SafeAreaView from 'react-native-safe-area-view'\nimport AsyncStorage from '@react-native-community/async-storage'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { texts, colors, credentials } from \"../components/Variables\"\n\nconst bgImage = require(\"../assets/bg.jpg\")\nconst screen = Dimensions.get(\"window\")\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n text: {\n color: colors.white,\n fontSize: 20,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingTop: 5,\n paddingBottom: 20\n },\n textCode: {\n color: colors.white,\n fontSize: 12,\n textAlign: \"center\",\n fontWeight: \"500\",\n paddingTop: 20,\n paddingBottom: 0\n },\n safearea: {\n flex: 1,\n paddingHorizontal: 20,\n paddingTop: 20,\n justifyContent: \"space-between\"\n },\n box: {\n width: screen.width,\n paddingVertical: 10,\n overflow: \"hidden\"\n },\n scrollView: {\n //margin: 10,\n height: screen.height-150\n },\n bg: {\n width: \"100%\",\n height: \"100%\"\n },\n dropdownContainer: {\n marginTop: 20,\n borderRadius: 10,\n width: \"100%\",\n textAlign: \"center\",\n backgroundColor: colors.blue\n },\n dropdown: {\n color: colors.white,\n fontSize: 16,\n width: \"100%\",\n textAlign: \"center\",\n fontWeight: \"600\",\n backgroundColor: \"transparent\"\n },\n dropdownItem: {\n color: colors.white,\n backgroundColor: \"red\",\n fontSize: 16,\n borderRadius: 10,\n textAlign: \"center\",\n fontWeight: \"600\"\n },\n bannerContainer: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n banner: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 320\n }\n})\n\nclass Quiz extends React.Component {\n\n state = {\n correctCount: 0,\n wrongCount: 0,\n wrongAnswers: [],\n pointsCount: 0,\n totalPoints: 0,\n totalCount: this.props.navigation.getParam(\"questions\", []).length,\n availableIds: this.props.navigation.getParam(\"questions\", []).map(a => a.id),\n availableQuestions: this.props.navigation.getParam(\"questions\", []),\n activeQuestionId: this.props.navigation.getParam(\"questions\", [])[\n this.props.navigation.getParam(\"randomQuestions\") ?\n Math.floor(Math.random() * this.props.navigation.getParam(\"questions\", []).length) : 0\n ].id,\n minIndex: 0,\n answered: false,\n answerCorrect: false,\n results: false,\n setupData: {}\n }\n\n bannerError = (e) => {\n //console.log(\"Banner error (footer): \", e)\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n\n AsyncStorage.getItem('setupData').then((value) => {\n this.setState( (state) => {\n return {\n setupData: JSON.parse(value)\n }\n })\n })\n }\n\n /*\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n */\n\n handleBackButton = () => {\n this.props.navigation.navigate(\"Splash\")\n return true\n }\n\n answer = (correct, id, question) => {\n this.setState(\n state => {\n const nextState = { answered: true, clickedId: id, totalPoints: state.totalPoints + parseInt(question.points)}\n\n if (correct) {\n nextState.correctCount = state.correctCount + 1\n nextState.pointsCount = state.pointsCount + parseInt(question.points)\n nextState.answerCorrect = true\n } else {\n nextState.wrongCount = state.wrongCount + 1\n nextState.answerCorrect = false,\n nextState.wrongAnswers = state.wrongAnswers\n nextState.wrongAnswers.push(\n { question: question.question,\n id: question.id,\n clicked: id,\n answers: question.answers\n }\n )\n }\n\n return nextState\n },\n () => {\n setTimeout(() => this.nextQuestion(), correct ? 750 : 3000)\n }\n )\n }\n\n nextQuestion = () => {\n\n const updatedIndexes = this.state.availableIds.filter( item => item != this.state.activeQuestionId)\n const updatedQuestions = this.state.availableQuestions.filter( item => updatedIndexes.indexOf(item.id) > -1)\n const nextId = this.props.navigation.getParam(\"randomQuestions\") ?\n updatedIndexes[Math.floor(Math.random() * updatedIndexes.length)] :\n updatedIndexes[this.state.minIndex]\n let resultsShow = (this.state.timer <= 1 || (this.state.correctCount+this.state.wrongCount) == this.state.totalCount) ? true : false\n\n if (!updatedIndexes.length) {\n this.props.navigation.navigate(\"Results\", {\n results: {\n isExam: false,\n isWrong: this.props.navigation.getParam(\"isWrong\"),\n total: this.state.totalCount,\n correct: this.state.correctCount,\n wrong: this.state.wrongCount,\n points: this.state.pointsCount,\n totalPoints: this.state.totalPoints,\n wrongAnswers: this.state.wrongAnswers\n }\n })\n\n } else {\n\n this.setState( (state) => {\n return {\n availableIds: updatedIndexes,\n availableQuestions: updatedQuestions,\n minIndex: this.state.minIndex >= updatedIndexes.length - 1 ? 0 : this.state.minIndex,\n activeQuestionId: nextId,\n answered: false,\n results: resultsShow\n }\n })\n }\n }\n\n jumpTo = (questionId, itemIndex) => {\n if(itemIndex) {\n this.setState( (state) => {\n return {\n activeQuestionId: questionId,\n minIndex: itemIndex-1\n }\n })\n }\n }\n\n render() {\n const questions = this.props.navigation.getParam(\"questions\", [])\n const question = questions.filter(item => item.id == this.state.activeQuestionId)[0] || questions[0]\n\n return (\n <ImageBackground source={bgImage} style={styles.bg} resizeMode=\"cover\">\n <View style={styles.box}>\n <View style={styles.scrollView}>\n <ScrollView style={ styles.container } >\n {!this.state.results ?\n <SafeAreaView style={styles.safearea}>\n <View>\n <Text style={styles.textCode}>{question.id}</Text>\n <Text style={styles.text}>{question.question}</Text>\n\n <ButtonContainer>\n {question.answers.map( (answer, index) => (\n <Button\n key={answer.id}\n text={answer.text}\n colorize={{id: answer.id, clicked: this.state.clickedId, answered: this.state.answered, isCorrect: answer.correct}}\n onPress={() => this.answer(answer.correct, answer.id, question)}\n />\n ))}\n </ButtonContainer>\n </View>\n\n <Text style={styles.text}>\n {`${this.state.correctCount+this.state.wrongCount}/${this.state.totalCount}`}\n </Text>\n\n <View style={styles.dropdownContainer}>\n\n <Picker\n style={styles.dropdown}\n itemStyle={styles.dropdownItem}\n onValueChange={(itemValue, itemIndex) => this.jumpTo(itemValue, itemIndex)}\n >\n <Picker.Item key={`itemPlaceholder`} label={texts.changeQuestion} value={0} />\n {this.state.availableQuestions.map( (item, index) => (\n <Picker.Item key={`item${item.id}`} label={`${item.id} - ${item.question}`} value={item.id} />\n ))}\n </Picker>\n\n </View>\n\n </SafeAreaView>\n : <SafeAreaView></SafeAreaView>}\n\n </ScrollView>\n </View>\n\n\n </View>\n <View style={styles.bannerContainer}>\n <Text>BANNER</Text>\n </View>\n </ImageBackground>\n )\n }\n}\n\nexport default Quiz\n","/**\n * @flow\n */\n\nexport {default as Picker} from './Picker';\nexport {default as PickerIOS} from './PickerIOS';\n","/**\n * Copyright (c) Facebook, 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 * @format\n * @flow\n */\n\n'use strict';\n\nimport * as React from 'react';\nimport {Platform} from 'react-native';\n\nimport PickerAndroid from './PickerAndroid';\nimport PickerIOS from './PickerIOS';\nimport PickerWindows from './PickerWindows';\nimport PickerMacOS from './PickerMacOS';\n\nimport type {TextStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {ColorValue} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {Node} from 'react';\n\nconst MODE_DIALOG = 'dialog';\nconst MODE_DROPDOWN = 'dropdown';\n\ntype PickerItemProps = $ReadOnly<{|\n /**\n * Text to display for this item.\n */\n label: string,\n\n /**\n * The value to be passed to picker's `onValueChange` callback when\n * this item is selected. Can be a string or an integer.\n */\n value?: ?(number | string),\n\n /**\n * Color of this item's text.\n * @platform android\n */\n color?: ColorValue,\n\n /**\n * Used to locate the item in end-to-end tests.\n */\n testID?: string,\n|}>;\n\n/**\n * Individual selectable item in a Picker.\n */\nclass PickerItem extends React.Component<PickerItemProps> {\n render() {\n // The items are not rendered directly\n throw null;\n }\n}\n\ntype PickerProps = $ReadOnly<{|\n children?: Node,\n style?: ?TextStyleProp,\n\n /**\n * Value matching value of one of the items. Can be a string or an integer.\n */\n selectedValue?: ?(number | string),\n\n /**\n * Callback for when an item is selected. This is called with the following parameters:\n * - `itemValue`: the `value` prop of the item that was selected\n * - `itemIndex`: the index of the selected item in this picker\n */\n onValueChange?: ?(itemValue: string | number, itemIndex: number) => mixed,\n\n /**\n * If set to false, the picker will be disabled, i.e. the user will not be able to make a\n * selection.\n * @platform android\n */\n enabled?: ?boolean,\n\n /**\n * On Android, specifies how to display the selection items when the user taps on the picker:\n *\n * - 'dialog': Show a modal dialog. This is the default.\n * - 'dropdown': Shows a dropdown anchored to the picker view\n *\n * @platform android\n */\n mode?: ?('dialog' | 'dropdown'),\n\n /**\n * Style to apply to each of the item labels.\n * @platform ios\n */\n itemStyle?: ?TextStyleProp,\n\n /**\n * Prompt string for this picker, used on Android in dialog mode as the title of the dialog.\n * @platform android\n */\n prompt?: ?string,\n\n /**\n * Placeholder string for this picker, used on Windows if no item has been selected.\n * @platform windows\n */\n placeholder?: ?string,\n\n /**\n * Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n\n /**\n * On Android, used to truncate the text with an ellipsis after computing the text layout, including line wrapping,\n * such that the total number of lines does not exceed this number. Default is '1'\n * @platform android\n */\n numberOfLines?: ?number,\n\n /**\n * The string used for the accessibility label. Will be read once focused on the picker but not on change.\n */\n accessibilityLabel?: ?string,\n|}>;\n\n/**\n * Renders the native picker component on iOS and Android. Example:\n *\n * <Picker\n * selectedValue={this.state.language}\n * onValueChange={(itemValue, itemIndex) => this.setState({language: itemValue})}>\n * <Picker.Item label=\"Java\" value=\"java\" />\n * <Picker.Item label=\"JavaScript\" value=\"js\" />\n * </Picker>\n */\nclass Picker extends React.Component<PickerProps> {\n pickerRef: React.ElementRef<any> = React.createRef();\n /**\n * On Android, display the options in a dialog.\n */\n static MODE_DIALOG: typeof MODE_DIALOG = MODE_DIALOG;\n\n /**\n * On Android, display the options in a dropdown (this is the default).\n */\n static MODE_DROPDOWN: typeof MODE_DROPDOWN = MODE_DROPDOWN;\n\n static Item: typeof PickerItem = PickerItem;\n\n static defaultProps: PickerProps = {\n mode: MODE_DIALOG,\n };\n\n blur: () => void = () => {\n this.pickerRef.current?.blur();\n };\n\n focus: () => void = () => {\n this.pickerRef.current?.focus();\n };\n\n render(): React.Node {\n if (Platform.OS === 'ios') {\n /* $FlowFixMe(>=0.81.0 site=react_native_ios_fb) This suppression was\n * added when renaming suppression sites. */\n return <PickerIOS {...this.props}>{this.props.children}</PickerIOS>;\n } else if (Platform.OS === 'macos') {\n /* $FlowFixMe(>=0.81.0 site=react_native_ios_fb) This suppression was\n * added when renaming suppression sites. */\n return <PickerMacOS {...this.props}>{this.props.children}</PickerMacOS>;\n } else if (Platform.OS === 'android') {\n return (\n /* $FlowFixMe(>=0.81.0 site=react_native_android_fb) This suppression\n * was added when renaming suppression sites. */\n <PickerAndroid ref={this.pickerRef} {...this.props}>\n {this.props.children}\n </PickerAndroid>\n );\n } else if (Platform.OS === 'windows') {\n return (\n <PickerWindows {...this.props}>{this.props.children}</PickerWindows>\n );\n } else {\n return null;\n }\n }\n}\n\nexport default Picker;\n","/**\n * Copyright (c) Facebook, 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 * @format\n */\n\n'use strict';\n\nimport * as React from 'react';\nimport {View, StyleSheet} from 'react-native';\ndeclare var __DEV__: boolean;\n/**\n * Common implementation for a simple stubbed view. Simply applies the view's styles to the inner\n * View component and renders its children.\n */\nconst UnimplementedView = (props: $FlowFixMeProps): React.Node => {\n return (\n <View style={[styles.unimplementedView, props.style]}>\n {props.children}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n unimplementedView: __DEV__\n ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1,\n }\n : {},\n});\n\nexport default UnimplementedView;\n","/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n *\n * @flow\n */\n\n'use strict';\n\nimport UnimplementedView from './UnimplementedView';\n\nexport default UnimplementedView;\n","/**\n * Copyright (c) Facebook, 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 * as React from 'react';\nimport UnimplementedView from './UnimplementedView';\nclass PickerMacOS extends React.Component<{}> {\n static Item: typeof UnimplementedView = UnimplementedView;\n render(): React.Node {\n return <UnimplementedView />;\n }\n}\n\n/**\n * Fallback for non-MacOS platforms\n */\nexport default PickerMacOS;\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, ImageBackground, BackHandler } from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { texts, colors, examScheme, credentials } from \"../components/Variables\"\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst bgImage = require(\"../assets/bg.jpg\")\nconst screen = Dimensions.get(\"window\")\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n text: {\n color: colors.white,\n fontSize: 20,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingTop: 5,\n paddingBottom: 20\n },\n textCode: {\n color: colors.white,\n fontSize: 12,\n textAlign: \"center\",\n fontWeight: \"500\",\n paddingTop: 20,\n paddingBottom: 0\n },\n textAnswer: {\n color: colors.black,\n backgroundColor: colors.white,\n fontSize: 18,\n textAlign: \"center\",\n fontWeight: \"400\",\n marginTop: 20,\n paddingVertical: 20,\n paddingHorizontal: 20,\n borderRadius: 10\n },\n safearea: {\n flex: 1,\n paddingHorizontal: 20,\n paddingTop: 40,\n justifyContent: \"space-between\"\n },\n box: {\n width: screen.width,\n paddingVertical: 10,\n overflow: \"hidden\"\n },\n scrollView: {\n //margin: 10,\n height: screen.height-150\n },\n\n bg: {\n width: \"100%\",\n height: \"100%\"\n },\n bannerContainer: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n banner: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 320\n }\n})\n\nclass Quiz extends React.Component {\n\n state = {\n correctCount: 0,\n wrongCount: 0,\n wrongAnswers: [],\n totalCount: this.props.navigation.getParam(\"questions\", []).length,\n availableIds: this.props.navigation.getParam(\"questions\", []).map(a => a.id),\n activeQuestionId: this.props.navigation.getParam(\"questions\", [])[\n Math.floor(Math.random() * this.props.navigation.getParam(\"questions\", []).length)\n ].id,\n activeAnswerId: Math.floor(Math.random() * 3),\n clickedAnswer: false,\n answered: false,\n results: false\n }\n\n bannerError = (e) => {\n //console.log(\"Banner error (footer): \", e)\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n\n let tmpQuestions = []\n let fullQuestions = []\n\n examScheme.forEach( (elem) => {\n let currentSection = allQuestions[elem.section]\n for(let i=0; i<currentSection.length; i++) {\n fullQuestions.push(currentSection[i])\n }\n })\n\n for(let i=0; i<10; i++) {\n const currentIndex = Math.floor(Math.random() * fullQuestions.length)\n tmpQuestions.push(fullQuestions[currentIndex])\n fullQuestions = fullQuestions.filter( (item, index) => index != currentIndex)\n }\n\n this.props.navigation.navigate(\"Splash\", {\n trueFalseQuestions: tmpQuestions\n })\n return true\n }\n\n answer = (answer, correct, id, question) => {\n this.setState(\n state => {\n const nextState = { answered: true, clickedId: id, clickedAnswer: answer }\n\n if ((correct && answer) || (!correct && !answer)) {\n //console.log('ok')\n nextState.correctCount = state.correctCount + 1\n } else {\n //console.log('ko')\n nextState.wrongCount = state.wrongCount + 1\n nextState.wrongAnswers = state.wrongAnswers\n nextState.wrongAnswers.push(\n { question: question.question,\n id: question.id,\n clicked: question.answers[state.activeAnswerId].id,\n answers: question.answers\n }\n )\n\n }\n\n return nextState\n },\n () => {\n setTimeout(() => this.nextQuestion(), 2000)\n }\n )\n }\n\n nextQuestion = () => {\n\n const updatedIndexes = this.state.availableIds.filter( item => item != this.state.activeQuestionId)\n const nextId = updatedIndexes[Math.floor(Math.random() * updatedIndexes.length)]\n\n if (!updatedIndexes.length) {\n //console.log(this.state.wrongAnswers)\n this.props.navigation.navigate(\"ResultsTrueFalse\", {\n results: {\n isExam: false,\n total: this.state.totalCount,\n correct: this.state.correctCount,\n wrong: this.state.wrongCount,\n wrongAnswers: this.state.wrongAnswers\n }\n })\n\n } else {\n this.setState( (state) => {\n return {\n availableIds: updatedIndexes,\n activeQuestionId: nextId,\n activeAnswerId: Math.floor(Math.random() * 3),\n answered: false\n }\n })\n }\n }\n\n render() {\n const questions = this.props.navigation.getParam(\"questions\", [])\n const question = questions.filter(item => item.id == this.state.activeQuestionId)[0] || questions[0]\n const randomAnswer = question.answers[this.state.activeAnswerId]\n\n //console.log({id: randomAnswer.id, clicked: this.state.clickedId, answered: this.state.answered, isCorrect: randomAnswer.correct || false})\n\n return (\n <ImageBackground source={bgImage} style={styles.bg} resizeMode=\"cover\">\n <View style={styles.box}>\n <View style={styles.scrollView}>\n\n <ScrollView style={ styles.container } >\n <StatusBar barStyle=\"light-content\" />\n\n {!this.state.results ?\n <SafeAreaView style={styles.safearea}>\n <View>\n <Text style={styles.textCode}>{question.id}</Text>\n <Text style={styles.text}>{question.question}</Text>\n <Text style={styles.textAnswer}>{randomAnswer.text}</Text>\n\n <ButtonContainer>\n <Button\n halfSize={true}\n text={texts.true}\n colorize={{id: randomAnswer.id, clicked: this.state.clickedAnswer ? randomAnswer.id : false, answered: this.state.answered, isCorrect: randomAnswer.correct || false}}\n onPress={() => this.answer(true, randomAnswer.correct || false, randomAnswer.id, question)}\n />\n\n <Button\n halfSize={true}\n text={texts.false}\n colorize={{id: randomAnswer.id, clicked: !this.state.clickedAnswer ? randomAnswer.id : false, answered: this.state.answered, isCorrect: !randomAnswer.correct}}\n onPress={() => this.answer(false, randomAnswer.correct || false, randomAnswer.id, question)}\n />\n </ButtonContainer>\n\n </View>\n\n <Text style={styles.text}>\n {`${this.state.correctCount+this.state.wrongCount}/${this.state.totalCount}`}\n </Text>\n </SafeAreaView>\n : <SafeAreaView></SafeAreaView>}\n\n </ScrollView>\n </View>\n </View>\n <View style={styles.bannerContainer}>\n <Text>BANNER</Text>\n </View>\n </ImageBackground>\n )\n }\n}\n\nexport default Quiz\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, ImageBackground, BackHandler } from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\nimport AsyncStorage from '@react-native-community/async-storage'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { colors, texts, examScheme } from \"../components/Variables\"\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst bgImage = require(\"../assets/bg.jpg\")\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n text: {\n color: colors.white,\n fontSize: 20,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingTop: 5,\n paddingBottom: 20\n },\n textCode: {\n color: colors.white,\n fontSize: 12,\n textAlign: \"center\",\n fontWeight: \"500\",\n paddingTop: 20,\n paddingBottom: 0\n },\n timer: {\n color: colors.white,\n fontSize: 30,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingVertical: 10,\n marginTop: 30,\n backgroundColor: colors.white_alpha,\n borderRadius: 10,\n textShadowColor: 'rgba(0, 0, 0, 0.45)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 2\n },\n safearea: {\n flex: 1,\n marginTop: 20,\n paddingHorizontal: 20,\n justifyContent: \"space-between\"\n },\n bg: {\n width: \"100%\",\n height: \"100%\"\n },\n})\n\nlet interval = null\nconst maxTime = 1800\n\nclass Exam extends React.Component {\n\n state = {\n correctCount: 0,\n pointsCount: 0,\n totalPoints: 0,\n wrongCount: 0,\n wrongAnswers: [],\n totalCount: this.props.navigation.getParam(\"questions\", []).length,\n availableIds: this.props.navigation.getParam(\"questions\", []).map(a => a.id),\n activeQuestionId: this.props.navigation.getParam(\"questions\", [])[\n Math.floor(Math.random() * this.props.navigation.getParam(\"questions\", []).length)\n ].id,\n answered: false,\n answerCorrect: false,\n results: false,\n timer: maxTime\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n\n let tmpQuestions = []\n\n AsyncStorage.getItem('setupData').then((value) => {\n let setupData = JSON.parse(value)\n\n //console.log('handleBackButton setupData',setupData)\n examScheme.forEach( (elem) => {\n let currentSection = setupData.excludeDelta ? allQuestions[elem.section].filter(item => !item.delta) : allQuestions[elem.section]\n for(let i=0; i<elem.questions; i++) {\n const currentIndex = Math.floor(Math.random() * currentSection.length)\n tmpQuestions.push(currentSection[currentIndex])\n currentSection = currentSection.filter( (item, index) => index != currentIndex)\n }\n })\n\n this.props.navigation.navigate(\"Splash\", {\n examQuestions: tmpQuestions\n })\n\n return true\n\n })//.done()\n }\n\n showResults = () => {\n this.props.navigation.navigate(\"Results\", {\n results: {\n isExam: true,\n total: this.state.totalCount,\n correct: this.state.correctCount,\n wrong: this.state.wrongCount,\n points: this.state.pointsCount,\n totalPoints: this.state.totalPoints,\n wrongAnswers: this.state.wrongAnswers\n }\n })\n }\n\n answer = (correct, id, question) => {\n this.setState(\n state => {\n const nextState = { answered: true, clickedId: id, totalPoints: state.totalPoints + parseInt(question.points)}\n\n if (correct) {\n nextState.correctCount = state.correctCount + 1\n nextState.pointsCount = state.pointsCount + parseInt(question.points)\n nextState.answerCorrect = true\n } else {\n nextState.wrongCount = state.wrongCount + 1\n nextState.answerCorrect = false\n nextState.wrongAnswers = state.wrongAnswers\n nextState.wrongAnswers.push(\n { question: question.question,\n id: question.id,\n clicked: id,\n answers: question.answers\n }\n )\n }\n return nextState\n },\n () => {\n if(this.state.timer > 1 || (this.state.correctCount+this.state.wrongCount) < this.state.totalCount) {\n setTimeout(() => this.nextQuestion(), correct ? 750 : 3500)\n }\n }\n )\n\n }\n\n nextQuestion = () => {\n\n const updatedIndexes = this.state.availableIds.filter( item => item != this.state.activeQuestionId)\n const nextId = updatedIndexes[Math.floor(Math.random() * updatedIndexes.length)]\n let resultsShow = (this.state.timer <= 1 || (this.state.correctCount+this.state.wrongCount) == this.state.totalCount) ? true : false\n\n if (!updatedIndexes.length) {\n\n clearInterval(interval)\n this.showResults()\n\n } else {\n this.setState( (state) => {\n return {\n availableIds: updatedIndexes,\n activeQuestionId: nextId,\n answered: false,\n results: resultsShow\n }\n })\n }\n }\n\n componentWillUnmount(){\n clearInterval(interval)\n }\n\n render() {\n const questions = this.props.navigation.getParam(\"questions\", [])\n const question = questions.filter(item => item.id == this.state.activeQuestionId)[0] || questions[0]\n\n if(this.state.timer==maxTime) {\n interval = setInterval( () => {\n this.setState( (state) => {\n return {\n timer: this.state.timer-1,\n results: this.state.timer <= 1 || false\n }\n })\n }, 1000)\n }\n\n if(this.state.timer < 1 || (this.state.correctCount+this.state.wrongCount) == this.state.totalCount) {\n clearInterval(interval)\n setTimeout ( () => {\n this.showResults()\n }, 1000)\n }\n\n return (\n <ImageBackground source={bgImage} style={styles.bg} resizeMode=\"cover\">\n <ScrollView style={styles.container}>\n <StatusBar barStyle=\"light-content\" />\n\n {!this.state.results ?\n <SafeAreaView style={styles.safearea}>\n <Text style={styles.timer}>{new Date(this.state.timer * 1000).toISOString().substr(11, 8)}</Text>\n <View>\n <Text style={styles.textCode}>{question.id}</Text>\n <Text style={styles.text}>{question.question}</Text>\n\n <ButtonContainer>\n {question.answers.map(answer => (\n <Button\n key={answer.id}\n text={answer.text}\n colorize={{id: answer.id, clicked: this.state.clickedId, answered: this.state.answered, isCorrect: answer.correct}}\n onPress={() => this.answer(answer.correct, answer.id, question)}\n />\n ))}\n </ButtonContainer>\n </View>\n\n <Text style={styles.text}>\n {`${this.state.correctCount+this.state.wrongCount}/${this.state.totalCount}`}\n </Text>\n </SafeAreaView>\n : <SafeAreaView style={styles.safearea}></SafeAreaView>}\n\n </ScrollView>\n </ImageBackground>\n )\n }\n}\n\nexport default Exam\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, Image, BackHandler} from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\nimport AsyncStorage from '@react-native-community/async-storage'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { colors, texts, examScheme } from \"../components/Variables\"\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nconst screen = Dimensions.get(\"window\")\nconst header = require(\"../assets/header.png\")\nconst maxTime = 0 // 10\nlet interval = null\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: colors.dark_blue,\n flex: 1\n },\n safearea: {\n flex: 1,\n marginTop: 0,\n justifyContent: \"space-between\",\n paddingHorizontal: 20,\n paddingBottom: 40\n },\n headerContainer: {\n marginTop: -40,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: screen.width/1.5\n },\n header: {\n width: \"100%\"\n },\n box: {\n marginTop: 20,\n marginBottom: 20,\n marginHorizontal: 20,\n width: screen.width-80,\n borderRadius: 10,\n borderBottomEndRadius: 80,\n borderTopStartRadius: 100,\n backgroundColor: colors.white_alpha,\n borderColor: colors.white,\n borderWidth: 2,\n paddingVertical: 30\n },\n boxCorrect: {\n backgroundColor: colors.green_light,\n },\n boxWrong: {\n backgroundColor: colors.red,\n },\n boxUnsafe: {\n backgroundColor: colors.orange,\n },\n button: {\n width: screen.width-80,\n marginHorizontal: 20\n },\n text: {\n color: colors.white,\n fontSize: 22,\n textAlign: \"center\",\n fontWeight: \"400\",\n lineHeight: 40,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n textSmall: {\n color: colors.white,\n marginTop: 20,\n fontSize: 26,\n textAlign: \"center\",\n fontWeight: \"500\",\n lineHeight: 30,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n textLabel: {\n paddingHorizontal: 20,\n paddingVertical: 20\n },\n correct: {\n color: colors.green\n },\n wrong: {\n color: colors.red\n },\n unsafe: {\n color: colors.yellow\n }\n})\n\nclass Results extends React.Component {\n\n state = {\n bannerExpanded: true,\n timer: maxTime,\n storeWrongAnswers: []\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n\n AsyncStorage.getItem('storeWrongAnswers').then( (value) => {\n const currentResults = this.props.navigation.getParam(\"results\")\n const wrongAnswers = currentResults.wrongAnswers || []\n const stored = JSON.parse(value) || []\n const result = currentResults.isWrong ? wrongAnswers : Object.assign([], wrongAnswers, stored);\n AsyncStorage.setItem('storeWrongAnswers', JSON.stringify(result))\n\n this.setState( (state) => {\n return {\n storeWrongAnswers: result\n }\n })\n\n })//.done()\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n\n let tmpQuestions = []\n AsyncStorage.getItem('setupData').then((value) => {\n let setupData = JSON.parse(value)\n\n examScheme.forEach( (elem) => {\n let currentSection = setupData.excludeDelta ? allQuestions[elem.section].filter(item => !item.delta) : allQuestions[elem.section]\n for(let i=0; i<elem.questions; i++) {\n const currentIndex = Math.floor(Math.random() * currentSection.length)\n tmpQuestions.push(currentSection[currentIndex])\n currentSection = currentSection.filter( (item, index) => index != currentIndex)\n }\n })\n\n this.props.navigation.navigate(\"Splash\", {\n examQuestions: tmpQuestions,\n storeWrongAnswers: this.state.storeWrongAnswers\n })\n\n return true\n\n })//.done()\n }\n\n\n render() {\n\n const currentResults = this.props.navigation.getParam(\"results\")\n const wrongAnswers = currentResults.wrongAnswers || null\n const percentage = currentResults.total ? (100/currentResults.total) * currentResults.correct : 0\n let resultStyle = ''//currentResults.points >= 80 ? currentResults.points >= 85 ? styles.correct : styles.unsafe : styles.wrong\n let boxStyle = currentResults.points >= 80 ? currentResults.points >= 85 ? styles.boxCorrect : styles.boxUnsafe : styles.boxWrong\n\n if(!currentResults.isExam) {\n resultStyle = ''//percentage >= 80 ? percentage >= 85 ? styles.correct : styles.unsafe : styles.wrong\n boxStyle = percentage >= 80 ? percentage >= 85 ? styles.boxCorrect : styles.boxUnsafe : styles.boxWrong\n }\n\n\n return (\n <View style={styles.container} >\n <View style={styles.headerContainer} >\n <Image source={header} style={styles.header} resizeMode=\"contain\" />\n </View>\n <ScrollView>\n <SafeAreaView style={styles.safearea}>\n <View style={[styles.box, boxStyle]}>\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.corrects}: ${currentResults.correct}`}</Text>\n </Text>\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.wrongs}: ${currentResults.wrong}`}</Text>\n </Text>\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.percentage}: ${Math.round(percentage)}%`}</Text>\n </Text>\n {\n currentResults.points ? (\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.points}: ${currentResults.points}/${currentResults.totalPoints}`}</Text>\n </Text>\n ) : null\n }\n\n {currentResults.isExam ?\n <Text style={[styles.textSmall, resultStyle]}>\n {currentResults.points >= 80 ? currentResults.points >= 85 ? texts.exam_passed : texts.exam_needs_oral : texts.exam_not_passed}\n </Text> : <Text/>\n }\n </View>\n\n {wrongAnswers.length ?\n <View style={styles.button}>\n <Button\n color={colors.red_light}\n text={texts.recap}\n hasBg={true}\n onPress={ ()=> {\n this.props.navigation.navigate(\"Recap\", {\n wrongAnswers: wrongAnswers\n })\n }}/>\n <Button\n isBig={false}\n hasBg={true}\n color={colors.white_alpha}\n text={texts.restart}\n onPress={() => {this.handleBackButton()}\n }\n />\n\n </View> :\n <View style={styles.button}>\n <Button\n isBig={false}\n hasBg={true}\n color={colors.white_alpha}\n text={texts.restart}\n onPress={() => {this.handleBackButton()}\n }\n />\n </View>\n }\n\n </SafeAreaView>\n </ScrollView>\n\n </View>\n )\n }\n}\n\nexport default Results\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, Image, BackHandler} from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { colors, texts, examScheme } from \"../components/Variables\"\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nconst screen = Dimensions.get(\"window\")\nconst header = require(\"../assets/header.png\")\nconst maxTime = 0 // 10\nlet interval = null\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: colors.dark_blue,\n flex: 1\n },\n safearea: {\n flex: 1,\n marginTop: 0,\n justifyContent: \"space-between\",\n paddingHorizontal: 20,\n paddingBottom: 40\n },\n headerContainer: {\n marginTop: -40,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: screen.width/1.5\n },\n header: {\n width: \"100%\"\n },\n box: {\n marginTop: 20,\n marginBottom: 20,\n marginHorizontal: 20,\n width: screen.width-80,\n borderRadius: 10,\n borderBottomEndRadius: 80,\n borderTopStartRadius: 100,\n backgroundColor: colors.white_alpha,\n borderColor: colors.white,\n borderWidth: 2,\n paddingVertical: 30\n },\n boxCorrect: {\n backgroundColor: colors.green_light,\n },\n boxWrong: {\n backgroundColor: colors.red,\n },\n boxUnsafe: {\n backgroundColor: colors.orange,\n },\n button: {\n width: screen.width-80,\n marginHorizontal: 20\n },\n text: {\n color: colors.white,\n fontSize: 22,\n textAlign: \"center\",\n fontWeight: \"400\",\n lineHeight: 40,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n textSmall: {\n color: colors.white,\n marginTop: 20,\n fontSize: 26,\n textAlign: \"center\",\n fontWeight: \"500\",\n lineHeight: 30,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n textLabel: {\n paddingHorizontal: 20,\n paddingVertical: 20\n },\n correct: {\n color: colors.green\n },\n wrong: {\n color: colors.red\n },\n unsafe: {\n color: colors.yellow\n }\n})\n\nclass Results extends React.Component {\n\n state = {\n bannerExpanded: true,\n timer: maxTime\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n\n let tmpQuestions = []\n let fullQuestions = []\n\n examScheme.forEach( (elem) => {\n let currentSection = allQuestions[elem.section]\n for(let i=0; i<currentSection.length; i++) {\n fullQuestions.push(currentSection[i])\n }\n })\n\n for(let i=0; i<10; i++) {\n const currentIndex = Math.floor(Math.random() * fullQuestions.length)\n tmpQuestions.push(fullQuestions[currentIndex])\n fullQuestions = fullQuestions.filter( (item, index) => index != currentIndex)\n }\n\n this.props.navigation.navigate(\"Splash\", {\n trueFalseQuestions: tmpQuestions\n })\n return true\n }\n\n render() {\n\n const currentResults = this.props.navigation.getParam(\"results\")\n const wrongAnswers = currentResults.wrongAnswers || null\n const percentage = currentResults.total ? (100/currentResults.total) * currentResults.correct : 0\n let resultStyle = ''\n let boxStyle = currentResults.points >= 80 ? currentResults.points >= 85 ? styles.boxCorrect : styles.boxUnsafe : styles.boxWrong\n\n if(!currentResults.isExam) {\n resultStyle = ''\n boxStyle = percentage >= 80 ? percentage >= 85 ? styles.boxCorrect : styles.boxUnsafe : styles.boxWrong\n }\n\n //console.log(currentResults)\n\n return (\n <View style={styles.container} >\n <View style={styles.headerContainer} >\n <Image source={header} style={styles.header} resizeMode=\"contain\" />\n </View>\n <ScrollView>\n <SafeAreaView style={styles.safearea}>\n <View style={[styles.box, boxStyle]}>\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.corrects}: ${currentResults.correct}`}</Text>\n </Text>\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.wrongs}: ${currentResults.wrong}`}</Text>\n </Text>\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.percentage}: ${Math.round(percentage)}%`}</Text>\n </Text>\n\n </View>\n\n {wrongAnswers.length ?\n <View style={styles.button}>\n <Button\n color={colors.red_light}\n text={texts.recap}\n hasBg={true}\n onPress={ ()=> {\n this.props.navigation.navigate(\"RecapTrueFalse\", {\n wrongAnswers: wrongAnswers\n })\n }}/>\n <Button\n isBig={false}\n hasBg={true}\n color={colors.white_alpha}\n text={texts.restart}\n onPress={() => {this.handleBackButton()}\n }\n />\n\n </View> :\n <View style={styles.button}>\n <Button\n isBig={false}\n hasBg={true}\n color={colors.white_alpha}\n text={texts.restart}\n onPress={() => {this.handleBackButton()}\n }\n />\n </View>\n }\n\n </SafeAreaView>\n </ScrollView>\n\n </View>\n )\n }\n}\n\nexport default Results\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, Image, ImageBackground, BackHandler} from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\nimport AsyncStorage from '@react-native-community/async-storage'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { colors, texts, examScheme, credentials } from \"../components/Variables\"\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nconst screen = Dimensions.get(\"window\")\nconst header = require(\"../assets/header.png\")\nconst bgImage = require(\"../assets/bg.jpg\")\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: colors.dark_blue,\n flex: 1\n },\n safearea: {\n flex: 1,\n marginTop: 0,\n justifyContent: \"space-between\",\n paddingHorizontal: 20,\n paddingBottom: 40\n },\n headerContainer: {\n marginTop: -40,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: screen.width/1.5\n },\n header: {\n width: \"100%\"\n },\n box: {\n marginTop: 30,\n borderColor: colors.black_alpha,\n borderWidth: 1,\n padding: 15,\n borderRadius: 5,\n backgroundColor: colors.white_alpha\n },\n text: {\n color: colors.white,\n fontSize: 20,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingTop: 0\n },\n textCode: {\n color: colors.white,\n fontSize: 12,\n textAlign: \"center\",\n fontWeight: \"500\",\n paddingTop: 10,\n paddingBottom: 0\n },\n textBig: {\n color: colors.white,\n fontSize: 22,\n textAlign: \"center\",\n fontWeight: \"400\",\n paddingBottom: 15,\n textTransform: \"uppercase\",\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n bg: {\n width: \"100%\",\n height: \"100%\"\n },\n bannerContainer: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n banner: {\n width: 320,\n height: 100,\n marginVertical: 20\n }\n})\n\nclass Recap extends React.Component {\n\n state = {\n storeWrongAnswers: []\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n AsyncStorage.getItem('storeWrongAnswers').then((value) => {\n //console.log('storeWrongAnswers: ', JSON.parse(value))\n this.setState( (state) => {\n return {\n storeWrongAnswers: JSON.parse(value)\n }\n })\n })//.done()\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n\n\n let tmpQuestions = []\n AsyncStorage.getItem('setupData').then((value) => {\n let setupData = JSON.parse(value)\n\n examScheme.forEach( (elem) => {\n let currentSection = setupData.excludeDelta ? allQuestions[elem.section].filter(item => !item.delta) : allQuestions[elem.section]\n for(let i=0; i<elem.questions; i++) {\n const currentIndex = Math.floor(Math.random() * currentSection.length)\n tmpQuestions.push(currentSection[currentIndex])\n currentSection = currentSection.filter( (item, index) => index != currentIndex)\n }\n })\n\n this.props.navigation.navigate(\"Splash\", {\n examQuestions: tmpQuestions,\n storeWrongAnswers: this.state.storeWrongAnswers\n })\n\n return true\n\n })//.done()\n }\n\n render() {\n\n const questions = this.props.navigation.getParam(\"wrongAnswers\", [])\n\n return (\n <View style={styles.container} >\n <View style={styles.headerContainer} >\n <Image source={header} style={styles.header} resizeMode=\"contain\" />\n </View>\n\n <Text style={styles.textBig}>{texts.recapTitle}</Text>\n\n <ScrollView>\n <SafeAreaView style={styles.safearea}>\n {questions.map( (question, index) => (\n <View style={styles.box} key={question.id}>\n <Text style={styles.textCode}>{question.id}</Text>\n <Text style={styles.text}>{question.question}</Text>\n\n <ButtonContainer>\n {question.answers.map( (answer, index) => (\n <Button\n key={answer.id}\n text={answer.text}\n colorize={{id: answer.id, clicked: question.clicked, answered: true, isCorrect: answer.correct}}\n />\n ))}\n </ButtonContainer>\n </View>\n ))}\n\n <View style={styles.button}>\n <Button\n color={colors.white_alpha2}\n hasShadow={true}\n hasBg={true}\n text={texts.restart}\n onPress={() => {this.handleBackButton()}\n }\n />\n </View>\n </SafeAreaView>\n\n <View style={styles.bannerContainer}>\n <Text>BANNER</Text>\n </View>\n </ScrollView>\n\n </View>\n\n )\n }\n}\n\nexport default Recap\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, Image, ImageBackground, BackHandler } from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\nimport AsyncStorage from '@react-native-community/async-storage'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { colors, texts, examScheme, credentials } from \"../components/Variables\"\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nconst screen = Dimensions.get(\"window\")\nconst header = require(\"../assets/header.png\")\nconst bgImage = require(\"../assets/bg.jpg\")\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: colors.blue,\n flex: 1\n },\n safearea: {\n flex: 1,\n marginTop: 0,\n justifyContent: \"space-between\",\n paddingHorizontal: 20,\n paddingBottom: 40\n },\n headerContainer: {\n marginTop: -40,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: screen.width/1.5\n },\n header: {\n width: \"100%\"\n },\n box: {\n marginTop: 30,\n borderColor: colors.black_alpha,\n borderWidth: 1,\n padding: 15,\n borderRadius: 5,\n backgroundColor: colors.white_alpha\n },\n text: {\n color: colors.white,\n fontSize: 20,\n textAlign: \"center\",\n fontWeight: \"600\",\n paddingTop: 0\n },\n textCode: {\n color: colors.white,\n fontSize: 12,\n textAlign: \"center\",\n fontWeight: \"500\",\n paddingTop: 10,\n paddingBottom: 0\n },\n textBig: {\n color: colors.white,\n fontSize: 22,\n textAlign: \"center\",\n fontWeight: \"400\",\n paddingBottom: 15,\n textTransform: \"uppercase\",\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n bg: {\n width: \"100%\",\n height: \"100%\"\n },\n bannerContainer: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n banner: {\n width: 320,\n height: 100,\n marginVertical: 20\n }\n})\n\nclass RecapTrueFalse extends React.Component {\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n AsyncStorage.getItem('storeWrongAnswers').then((value) => {\n //console.log(value)\n })//.done()\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n\n let tmpQuestions = []\n let fullQuestions = []\n\n examScheme.forEach( (elem) => {\n let currentSection = allQuestions[elem.section]\n for(let i=0; i<currentSection.length; i++) {\n fullQuestions.push(currentSection[i])\n }\n })\n\n for(let i=0; i<10; i++) {\n const currentIndex = Math.floor(Math.random() * fullQuestions.length)\n tmpQuestions.push(fullQuestions[currentIndex])\n fullQuestions = fullQuestions.filter( (item, index) => index != currentIndex)\n }\n\n this.props.navigation.navigate(\"Splash\", {\n trueFalseQuestions: tmpQuestions\n })\n return true\n }\n\n render() {\n\n const questions = this.props.navigation.getParam(\"wrongAnswers\", [])\n\n return (\n <View style={styles.container} >\n <View style={styles.headerContainer} >\n <Image source={header} style={styles.header} resizeMode=\"contain\" />\n </View>\n\n <Text style={styles.textBig}>{texts.recapTitle}</Text>\n\n <ScrollView>\n <SafeAreaView style={styles.safearea}>\n {questions.map( (question, index) => (\n <View style={styles.box} key={question.id}>\n <Text style={styles.textCode}>{question.id}</Text>\n <Text style={styles.text}>{question.question}</Text>\n\n <ButtonContainer>\n {question.answers.map( (answer, index) => {\n if(question.clicked == answer.id) {\n return (\n <Button\n noBorder={true}\n key={answer.id}\n text={answer.text}\n colorize={{id: answer.id, clicked: question.clicked, answered: true, isCorrect: answer.correct}}\n />\n )}\n }\n )}\n </ButtonContainer>\n </View>\n ))}\n\n <View style={styles.button}>\n <Button\n color={colors.white_alpha2}\n hasShadow={true}\n hasBg={true}\n text={texts.restart}\n onPress={() => {this.handleBackButton()}\n }\n />\n </View>\n </SafeAreaView>\n\n <View style={styles.bannerContainer}>\n <Text>BANNER</Text>\n </View>\n </ScrollView>\n\n </View>\n\n )\n }\n}\n\nexport default RecapTrueFalse\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, Image, BackHandler, Linking} from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { colors, texts, examScheme, resultsScheme} from \"../components/Variables\"\n\nconst screen = Dimensions.get(\"window\")\nconst header = require(\"../assets/header.png\")\n\nconst pkg = require('../../app.json')\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: colors.dark_blue,\n flex: 1\n },\n safearea: {\n flex: 1,\n marginTop: 0,\n justifyContent: \"space-between\",\n paddingHorizontal: 10\n },\n headerContainer: {\n marginTop: -40,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: screen.width/1.5\n },\n header: {\n width: \"100%\"\n },\n button: {\n position: \"absolute\",\n bottom: 40,\n left: 40,\n width: screen.width-80\n },\n box: {\n width: screen.width-20,\n paddingHorizontal: 10\n },\n text: {\n color: colors.white,\n fontSize: 16,\n textAlign: \"center\",\n fontWeight: \"400\",\n lineHeight: 20,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 5\n },\n title: {\n paddingTop: 30,\n color: colors.white,\n fontSize: 18,\n textTransform: \"uppercase\",\n textAlign: \"center\",\n fontWeight: \"400\",\n lineHeight: 20,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 5\n },\n textSmall: {\n lineHeight: 23,\n marginTop: 15,\n borderRadius: 10,\n backgroundColor: colors.white_alpha,\n borderWidth: 0,\n borderColor: colors.white_alpha,\n fontSize: 16,\n color: colors.white,\n fontWeight: \"400\",\n textAlign: \"center\",\n paddingHorizontal: 20,\n paddingVertical: 20,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 5\n },\n textItems: {\n fontSize: 16,\n fontWeight: \"400\",\n lineHeight: 23,\n color: colors.white,\n textAlign: \"center\",\n paddingBottom: 10,\n marginBottom: 10,\n borderBottomColor: colors.white_alpha,\n borderBottomWidth: 1,\n textShadowColor: 'rgba(0, 0, 0, 0.55)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 2\n },\n noBorder: {\n borderBottomWidth: 0\n },\n item: {\n width: \"100%\"\n },\n noPadding: {\n paddingVertical: 0,\n },\n textLabel: {\n paddingHorizontal: 20,\n paddingVertical: 20\n },\n bold: {\n lineHeight: 30,\n fontSize: 26,\n fontWeight: \"600\"\n }\n})\n\nconst B = (props) => <Text style={{fontWeight: 'bold'}}>{props.children}</Text>\n\nclass Info extends React.Component {\n\n state = {}\n\n\n openURL = (url) => {\n Linking.openURL(url).catch((err) => console.error('An error occurred', err))\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n this.props.navigation.navigate(\"Splash\")\n return true\n }\n\n render() {\n\n return (\n <View style={styles.container} >\n <View style={styles.headerContainer} >\n <Image source={header} style={styles.header} resizeMode=\"contain\" />\n </View>\n\n <SafeAreaView style={styles.safearea}>\n <ScrollView>\n <View style={styles.box}>\n {/*\n <Text style={styles.text}>\n <Text style={[styles.textLabel, styles.bold]}>{`${pkg.expo.name}`}</Text>\n </Text>\n */}\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.version}: ${pkg.expo.version}`}</Text>\n </Text>\n {/*\n <Text style={styles.text}>\n <Text style={styles.textLabel}>{`${texts.author}: Dslak`}</Text>\n </Text>\n */}\n <Text style={styles.textSmall}>\n {texts.description}\n </Text>\n\n <Text style={styles.title}>\n {texts.examScheme}:\n </Text>\n\n <View style={styles.textSmall}>\n {examScheme.map( (arg, index) => (\n <Text style={styles.textItems} key={index}>\n <B>{texts[arg.section]}</B>: {'\\n\\r'}{arg.questions} {texts.questions} / {arg.points} {texts.points}\n </Text>\n ))}\n\n <Text style={[styles.textItems, styles.noBorder]}>\n <B>TOTALE</B>: {'\\n\\r'}30 {texts.questions} / 100 {texts.points}\n </Text>\n </View>\n\n <Text style={styles.title}>\n {texts.resultsScheme}:\n </Text>\n\n <View style={styles.textSmall}>\n {resultsScheme.map( (arg, index) => (\n <Text style={[styles.textItems, index == resultsScheme.length-1 ? styles.noBorder : {}]} key={index}>\n <B>{arg.points}</B>: {'\\n\\r'}{arg.result}\n </Text>\n ))}\n </View>\n\n <Button\n text={texts.source}\n subtitle={texts.pdfLinkText}\n isBig={false}\n hasBg={true}\n onPress={() => this.openURL(texts.pdfLink)}\n />\n <Text></Text>\n </View>\n </ScrollView>\n\n </SafeAreaView>\n\n </View>\n )\n }\n}\n\nexport default Info\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, CheckBox, Switch, Dimensions, Image, ImageBackground, BackHandler } from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\nimport AsyncStorage from '@react-native-community/async-storage'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { colors, texts, examScheme, resultsScheme} from \"../components/Variables\"\n\nimport aerodynamicsQuestions from \"../data/aerodynamics\"\nimport firstAidQuestions from \"../data/firstAid\"\nimport flightSafetyQuestions from \"../data/flightSafety\"\nimport instrumentsQuestions from \"../data/instruments\"\nimport legislationQuestions from \"../data/legislation\"\nimport materialsQuestions from \"../data/materials\"\nimport meteorologyQuestions from \"../data/meteorology\"\nimport physiopathologyQuestions from \"../data/physiopathology\"\nimport pilotingTechniquesQuestions from \"../data/pilotingTechniques\"\n\nconst allQuestions = {\n aerodynamics: aerodynamicsQuestions,\n firstAid: firstAidQuestions,\n flightSafety: flightSafetyQuestions,\n instruments: instrumentsQuestions,\n legislation: legislationQuestions,\n materials: materialsQuestions,\n meteorology: meteorologyQuestions,\n physiopathology: physiopathologyQuestions,\n pilotingTechniques: pilotingTechniquesQuestions\n}\n\nconst bgImage = require(\"../assets/bg.jpg\")\nconst screen = Dimensions.get(\"window\")\n\nconst pkg = require('../../app.json')\n\nconst styles = StyleSheet.create({\n container: {\n //backgroundColor: colors.dark_blue,\n flex: 1\n },\n safearea: {\n flex: 1,\n marginTop: 25,\n justifyContent: \"space-between\",\n paddingHorizontal: 10\n },\n bg: {\n width: \"100%\",\n height: \"100%\"\n },\n box: {\n width: screen.width-20,\n paddingHorizontal: 10\n },\n text: {\n color: colors.white,\n fontSize: 16,\n textAlign: \"center\",\n fontWeight: \"400\",\n lineHeight: 20,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 5\n },\n title: {\n paddingTop: 40,\n paddingBottom: 20,\n color: colors.white,\n fontSize: 18,\n textTransform: \"uppercase\",\n textAlign: \"center\",\n fontWeight: \"400\",\n lineHeight: 20,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 5\n },\n textSmall: {\n lineHeight: 23,\n marginTop: 15,\n borderRadius: 10,\n backgroundColor: colors.white,\n borderWidth: 0,\n borderColor: colors.white_alpha,\n fontSize: 16,\n color: colors.white,\n fontWeight: \"400\",\n textAlign: \"center\",\n paddingHorizontal: 20,\n paddingVertical: 20,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 5\n },\n textItems: {\n fontSize: 16,\n fontWeight: \"400\",\n lineHeight: 23,\n color: colors.white,\n textAlign: \"center\",\n paddingBottom: 10,\n marginBottom: 10,\n borderBottomColor: colors.white_alpha,\n borderBottomWidth: 1,\n textShadowColor: 'rgba(0, 0, 0, 0.55)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 2\n },\n noBorder: {\n borderBottomWidth: 0\n },\n item: {\n width: \"100%\"\n },\n noPadding: {\n paddingVertical: 0,\n },\n textLabel: {\n paddingHorizontal: 20,\n paddingVertical: 20\n },\n bold: {\n lineHeight: 30,\n fontSize: 26,\n fontWeight: \"600\"\n },\n\n switchContainer: {\n flexDirection: \"row\",\n paddingBottom: 10,\n marginBottom: 10,\n borderBottomColor: colors.black_alpha,\n borderBottomWidth: 1,\n },\n switch: {\n alignSelf: \"flex-start\",\n color: \"white\",\n marginRight: 0,\n marginLeft: \"auto\"\n },\n switchLabel: {\n fontSize: 16,\n fontWeight: \"600\",\n marginLeft: 8,\n marginRight: 8,\n width: \"75%\"\n },\n button: {\n marginTop: 20\n }\n})\n\nconst B = (props) => <Text style={{fontWeight: 'bold'}}>{props.children}</Text>\n\nclass Setup extends React.Component {\n\n state = {\n setupData: {}\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n AsyncStorage.getItem('setupData').then((value) => {\n let setupData = {}\n\n if(!value) {\n setupData = {\n randomQuestions: true,\n excludeDelta: true\n }\n AsyncStorage.setItem('setupData', JSON.stringify(setupData))\n } else {\n setupData = JSON.parse(value)\n }\n\n this.setState( (state) => {\n return {\n setupData: setupData\n }\n })\n })//.done()\n }\n\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n\n let tmpQuestions = []\n AsyncStorage.getItem('setupData').then((value) => {\n let setupData = JSON.parse(value)\n\n examScheme.forEach( (elem) => {\n let currentSection = setupData.excludeDelta ? allQuestions[elem.section].filter(item => !item.delta) : allQuestions[elem.section]\n for(let i=0; i<elem.questions; i++) {\n const currentIndex = Math.floor(Math.random() * currentSection.length)\n tmpQuestions.push(currentSection[currentIndex])\n currentSection = currentSection.filter( (item, index) => index != currentIndex)\n }\n })\n\n this.props.navigation.navigate(\"Splash\", {\n examQuestions: tmpQuestions\n })\n\n return true\n\n })//.done()\n\n }\n\n changeSetup = (item) => {\n let setupData = this.state.setupData\n setupData[item] = !this.state.setupData[item]\n\n this.setState( (state) => {\n return {\n setupData: setupData\n }\n })\n\n AsyncStorage.setItem('setupData', JSON.stringify(setupData))\n }\n\n render() {\n\n return (\n <ImageBackground source={bgImage} style={styles.bg} resizeMode=\"cover\">\n <View style={styles.container} >\n\n <SafeAreaView style={styles.safearea}>\n <ScrollView>\n <View style={styles.box}>\n\n <Text style={styles.title}>\n {texts.setupScheme}\n </Text>\n\n <View style={styles.textSmall}>\n\n <View style={styles.switchContainer}>\n <Text style={styles.switchLabel}>{texts.setupRandomCheck}</Text>\n <Switch\n value={this.state.setupData.randomQuestions}\n onValueChange={() => this.changeSetup('randomQuestions')}\n style={styles.switch}\n />\n </View>\n\n <View style={[styles.switchContainer, styles.noBorder]}>\n <Text style={styles.switchLabel}>{texts.setupExcludeDelta}</Text>\n <Switch\n value={this.state.setupData.excludeDelta}\n onValueChange={() => this.changeSetup('excludeDelta')}\n style={styles.switch}\n />\n </View>\n\n\n </View>\n <View style={styles.button}>\n <Button\n color={colors.white_alpha2}\n hasShadow={true}\n hasBg={true}\n text={texts.save}\n onPress={() => {this.handleBackButton()}\n }\n />\n </View>\n </View>\n </ScrollView>\n\n </SafeAreaView>\n\n </View>\n </ImageBackground>\n )\n }\n}\n\nexport default Setup\n","import React from \"react\"\nimport { View, ScrollView, StyleSheet, StatusBar, Text, Dimensions, ImageBackground, BackHandler, Linking} from \"react-native\"\nimport SafeAreaView from 'react-native-safe-area-view'\n\nimport { Button, ButtonContainer } from \"../components/Button\"\nimport { colors, texts, credentials} from \"../components/Variables\"\nimport { abbreviations, alphabeth, numbers} from \"../data/dictionary\"\n\nconst bgImage = require(\"../assets/bg.jpg\")\nconst screen = Dimensions.get(\"window\")\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n safearea: {\n flex: 1,\n marginTop: 30,\n justifyContent: \"space-between\",\n paddingHorizontal: 20\n },\n\n buttonContainer: {\n marginHorizontal: 0,\n marginBottom: 20\n },\n\n text: {\n color: colors.black,\n fontSize: 16,\n textAlign: \"left\",\n fontWeight: \"400\",\n lineHeight: 20,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n title: {\n paddingTop: 30,\n color: colors.black,\n fontSize: 18,\n textTransform: \"uppercase\",\n textAlign: \"left\",\n fontWeight: \"400\",\n lineHeight: 20,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n textBig: {\n color: colors.white,\n fontSize: 24,\n textAlign: \"center\",\n fontWeight: \"400\",\n paddingBottom: 10,\n textShadowColor: 'rgba(0, 0, 0, 0.75)',\n textShadowOffset: {width: -1, height: 1},\n textShadowRadius: 10\n },\n textSmall: {\n lineHeight: 23,\n marginTop: 15,\n borderRadius: 5,\n borderWidth: 0,\n borderColor: colors.white_alpha,\n fontSize: 16,\n color: colors.white,\n fontWeight: \"400\",\n textAlign: \"center\",\n paddingVertical: 20\n },\n textItems: {\n fontSize: 16,\n fontWeight: \"400\",\n lineHeight: 23,\n color: colors.black,\n textAlign: \"left\",\n paddingBottom: 10,\n marginBottom: 10,\n borderBottomColor: colors.black_alpha,\n borderBottomWidth: 1\n },\n noBorder: {\n borderBottomWidth: 0\n },\n item: {\n width: \"100%\"\n },\n noPadding: {\n paddingVertical: 0,\n },\n textLabel: {\n paddingHorizontal: 20,\n paddingVertical: 20\n },\n bold: {\n lineHeight: 30,\n fontSize: 26,\n fontWeight: \"600\"\n },\n\n\n box: {\n width: screen.width-40,\n paddingHorizontal: 20,\n paddingVertical: 10,\n backgroundColor: colors.white,\n borderRadius: 10,\n overflow: \"hidden\"\n },\n\n scrollView: {\n margin: 10,\n height: screen.height-400\n },\n\n bg: {\n width: \"100%\",\n height: \"100%\"\n },\n bannerContainer: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n height: 60\n },\n banner: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 320,\n height: 60\n }\n})\n\nconst B = (props) => <Text style={{fontWeight: 'bold'}}>{props.children}</Text>\n\nclass Dictionary extends React.Component {\n\n state = {\n title: texts.alphabethTitle,\n items: alphabeth,//numbers\n }\n\n componentDidMount() {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton)\n }\n\n handleBackButton = () => {\n this.props.navigation.navigate(\"Splash\")\n return true\n }\n\n switchData = (section) => {\n\n let newState = {}\n\n switch(section) {\n case 'abbreviations':\n newState = {\n title: texts.abbreviationsTitle,\n items: abbreviations\n }\n break;\n case 'alphabeth':\n newState = {\n title: texts.alphabethTitle,\n items: alphabeth\n }\n break;\n case 'numbers':\n newState = {\n title: texts.numbersTitle,\n items: numbers\n }\n break;\n }\n\n this.setState( (state) => {\n return newState\n })\n }\n\n render() {\n\n return (\n <ImageBackground source={bgImage} style={styles.bg} resizeMode=\"cover\">\n <View style={styles.container} >\n <SafeAreaView style={styles.safearea}>\n <View style={styles.buttonContainer}>\n <ButtonContainer isBoxed={true}>\n <Button\n noPadding={true}\n text={texts.alphabethTitle}\n color={this.state.title == texts.alphabethTitle ? colors.white_alpha : colors.black_alpha}\n onPress={() => this.switchData('alphabeth')}\n />\n <Button\n noPadding={true}\n text={texts.numbersTitle}\n color={this.state.title == texts.numbersTitle ? colors.white_alpha : colors.black_alpha}\n onPress={() => this.switchData('numbers')}\n />\n <Button\n noPadding={true}\n noBorder={true}\n text={texts.abbreviationsTitle}\n color={this.state.title == texts.abbreviationsTitle ? colors.white_alpha : colors.black_alpha}\n onPress={() => this.switchData('abbreviations')}\n />\n </ButtonContainer>\n </View>\n\n <View style={styles.box}>\n <View style={styles.scrollView}>\n <ScrollView>\n\n <View style={styles.textSmall}>\n {this.state.items.map( (arg, index) => (\n <Text style={[styles.textItems, index == this.state.items.length-1 ? styles.noBorder : {}]} key={index}>\n <B>{arg.k}</B>: {arg.v}\n </Text>\n ))}\n </View>\n\n <Text></Text>\n </ScrollView>\n </View>\n </View>\n\n <View style={styles.bannerContainer}>\n <Text>BANNER</Text>\n </View>\n </SafeAreaView>\n </View>\n </ImageBackground>\n )\n }\n}\n\nexport default Dictionary\n","export const abbreviations = [\n {\n \"k\": \"ACC\",\n \"v\": \"Area Control Centre. Area di controllo\"\n },\n {\n \"k\": \"ADR\",\n \"v\": \"Advisory Route Rotta a servizio consultivo\"\n },\n {\n \"k\": \"AFS\",\n \"v\": \"Aeronautical Fixed Service. Servizio di informazioni volo fisso\"\n },\n {\n \"k\": \"AIP\",\n \"v\": \"Aeronautical Information Pubblications Pubblicazioni aeronautiche di informazione\"\n },\n {\n \"k\": \"AIRMET\",\n \"v\": \"AIRman's METeorological Information / Informazione Meteorologica per il personale navigante degli aeromobili\"\n },\n {\n \"k\": \"ALERFA\",\n \"v\": \"Alerting phase. Fase di allerta\"\n },\n {\n \"k\": \"ALS\",\n \"v\": \"Appopoach lightning system. Sentiero luminoso di avvicinamento.\"\n },\n {\n \"k\": \"ALT\",\n \"v\": \"Altitude Altitudine\"\n },\n {\n \"k\": \"ALTN\",\n \"v\": \"Alternate aerodrome Aerporto alternato\"\n },\n {\n \"k\": \"AMSL\",\n \"v\": \"Above mean sea level. Al di sopra del livello medio del mare\"\n },\n {\n \"k\": \"AOC\",\n \"v\": \"Aerodrome obstruction chart. Carta degli ostacoli aeroportuali\"\n },\n {\n \"k\": \"APP\",\n \"v\": \"Approach controlo office. Ufficio di controllo di avvicinamento o allontanamento da una zona controllata\"\n },\n {\n \"k\": \"APRON\",\n \"v\": \"A defined area intended to accomodate aircraft. Area predisposta per il parcheggio aeromobili\"\n },\n {\n \"k\": \"ARO\",\n \"v\": \"Air traffic services reporting office. Ufficio informazioni dei servizi del T.A.\"\n },\n {\n \"k\": \"ARR\",\n \"v\": \"Arrive o arrival. Arrivo\"\n },\n {\n \"k\": \"ASMI\",\n \"v\": \"Aerodrome surface movement. Indicatore dei movimenti a terra degli aeromobili\"\n },\n {\n \"k\": \"ATA\",\n \"v\": \"Actual time of arrival. Orario effettivo di arrivo\"\n },\n {\n \"k\": \"ATC\",\n \"v\": \"Air traffic control in general. Controllo del traffico aereo\"\n },\n {\n \"k\": \"ATD\",\n \"v\": \"Actual time of departure. Orario effettivo di partenza\"\n },\n {\n \"k\": \"ATIS\",\n \"v\": \"Automatic terminal infornation service. Servizio automatico informaz. terminali:di aeroporto o zona\"\n },\n {\n \"k\": \"ATS\",\n \"v\": \"Air Traffic Service Servizio di\"\n },\n {\n \"k\": \"ATZ\",\n \"v\": \"Air Traffic Zone Zona di traffico di aerodromo\"\n },\n {\n \"k\": \"AWY\",\n \"v\": \"Airway. Aerovia\"\n },\n {\n \"k\": \"BA\",\n \"v\": \"Braking action. Azione frenante\"\n },\n {\n \"k\": \"BASE\",\n \"v\": \"Cloud base. Base delle nubi\"\n },\n {\n \"k\": \"BDRY\",\n \"v\": \"Boundry Confine - delimitazione\"\n },\n {\n \"k\": \"CA\",\n \"v\": \"Control Area. Area di controllo\"\n },\n {\n \"k\": \"CFM\",\n \"v\": \"Confirm. Confermate\"\n },\n {\n \"k\": \"CHG\",\n \"v\": \"Modification message. Messaggio di modifica\"\n },\n {\n \"k\": \"CNL\",\n \"v\": \"Cancel message. Messaggio di cancellazione\"\n },\n {\n \"k\": \"CTA\",\n \"v\": \"Control arca. Area di controllo\"\n },\n {\n \"k\": \"CTR\",\n \"v\": \"Control Zone. Zona controllata con limiti ben specifici\"\n },\n {\n \"k\": \"CPL\",\n \"v\": \"Current flight plan. Piano di volo in vigore\"\n },\n {\n \"k\": \"CTN\",\n \"v\": \"Caution Precauzione\"\n },\n {\n \"k\": \"CWY\",\n \"v\": \"Clearway. Area libera da ostacoli\"\n },\n {\n \"k\": \"D\",\n \"v\": \"Danger area. Area Pericolosa\"\n },\n {\n \"k\": \"DA/DH\",\n \"v\": \"Decion altutude/height. Altitudine/altezza di decisione\"\n },\n {\n \"k\": \"DCA\",\n \"v\": \"Jurisditional aerodrome authority. Direzione circoscrizionale aeroportuale\"\n },\n {\n \"k\": \"DCT\",\n \"v\": \"Direct in relation to flight plan clearance. Diretto relativo ad autorizzazioni ATC and type of approach. ed a tipo di avvicinamento\"\n },\n {\n \"k\": \"DEP\",\n \"v\": \"Departure message. Messaggio di partenza\"\n },\n {\n \"k\": \"DEST\",\n \"v\": \"Destination. Destinazione\"\n },\n {\n \"k\": \"DETRESFA\",\n \"v\": \"Distress fase. Fase di pericolo\"\n },\n {\n \"k\": \"DEP\",\n \"v\": \"Departure message. Messaggio di partenza\"\n },\n {\n \"k\": \"DLA\",\n \"v\": \"Delay message. Messaggio di ritardo\"\n },\n {\n \"k\": \"DME\",\n \"v\": \"Distance measuring equipment. Apparato misuratore di distanza\"\n },\n {\n \"k\": \"DR\",\n \"v\": \"Dead reckoning. Navigazione stimata\"\n },\n {\n \"k\": \"DVOR\",\n \"v\": \"Doppler VOR. VOR doppler terminale\"\n },\n {\n \"k\": \"EAT\",\n \"v\": \"Expect approach time. Orario previsto di avvicinamento\"\n },\n {\n \"k\": \"EET\",\n \"v\": \"Estimated elapsed time. Durata stimata del volo\"\n },\n {\n \"k\": \"EFAS\",\n \"v\": \"Electronic flashing approach system. Lampeggiatore elettronico di avvicinamento.\"\n },\n {\n \"k\": \"ELBA\",\n \"v\": \"Emergency location beacon-aircraft. Radiofaro di bordo per localizzazione di un aeromobile in emergenza\"\n },\n {\n \"k\": \"ELT\",\n \"v\": \"Emergency locator transmitter. Trasmettitore di bordo per la localizzazione di emergenza\"\n },\n {\n \"k\": \"ELV\",\n \"v\": \"Elevation. Altitudine o elevazione\"\n },\n {\n \"k\": \"END\",\n \"v\": \"End of runway. Fine pista\"\n },\n {\n \"k\": \"EOBT\",\n \"v\": \"Estimated Off Block Time. Tempo stimato di movimento di un aeromobile\"\n },\n {\n \"k\": \"EQPT\",\n \"v\": \"Equipment. Equipaggiamento o dotazione\"\n },\n {\n \"k\": \"EST\",\n \"v\": \"Estimate time over significant point. Ora stimata su un punto significativo\"\n },\n {\n \"k\": \"ETA\",\n \"v\": \"Estimated time of arrival. Orario stimato di arrivo\"\n },\n {\n \"k\": \"ETD\",\n \"v\": \"Estimated time of departure. Orario stimato di partenza\"\n },\n {\n \"k\": \"FAF\",\n \"v\": \"Final approach fix. Fix lungo l'avvicinamento finale\"\n },\n {\n \"k\": \"FAP\",\n \"v\": \"Final approach point. Punto di avvicinamento finale\"\n },\n {\n \"k\": \"FCST\",\n \"v\": \"Forecast. Previsione\"\n },\n {\n \"k\": \"FIC\",\n \"v\": \"Flight Information centre. Centro informazioni volo\"\n },\n {\n \"k\": \"FIR\",\n \"v\": \"Flight Information Region Regione di informazione voli\"\n },\n {\n \"k\": \"FIS\",\n \"v\": \"Flight information service. Servizio informazioni volo\"\n },\n {\n \"k\": \"FL\",\n \"v\": \"Flight Level. Livello di volo\"\n },\n {\n \"k\": \"FLP\",\n \"v\": \"Filed flight plan. Piano di volo compilato\"\n },\n {\n \"k\": \"FREQ\",\n \"v\": \"Frequency. Frequenza\"\n },\n {\n \"k\": \"G/A/G\",\n \"v\": \"Ground-to-air- and air-to ground. Terra-aria-terra T/B/T-Terra/bordo/terra\"\n },\n {\n \"k\": \"GND\",\n \"v\": \"Ground. Suolo o terreno\"\n },\n {\n \"k\": \"GP\",\n \"v\": \"Glide path. Sentiero di discesa\"\n },\n {\n \"k\": \"GRASS\",\n \"v\": \"Grass landing aerea. Zona erbosa di atterraggio\"\n },\n {\n \"k\": \"GS\",\n \"v\": \"Ground speed. Velocit\"\n },\n {\n \"k\": \"H 24\",\n \"v\": \"Continuous day and night service. Servizio continuativo di giorno e di notte\"\n },\n {\n \"k\": \"HBN\",\n \"v\": \"Azard beacon. Faro di pericolo\"\n },\n {\n \"k\": \"HDF\",\n \"v\": \"Hight frequency direction-finding.station. Stazione radiogoniometrica ad alta freq.\"\n },\n {\n \"k\": \"HDG\",\n \"v\": \"Heading Prua\"\n },\n {\n \"k\": \"HF\",\n \"v\": \"High frequency. Alta frequenza\"\n },\n {\n \"k\": \"HGT\",\n \"v\": \"Height or height above. Altezza\"\n },\n {\n \"k\": \"HJ\",\n \"v\": \"Sunrise to sunset. Dall'alba al tramonto\"\n },\n {\n \"k\": \"HJ \",\n \"v\": \"From half an hour before sunrise Da mezz'ora prima del sorgere del sole to half an hour after sunset a mezz'ora dopo il tramonto\"\n },\n {\n \"k\": \"HN\",\n \"v\": \"From half an hour after sunset Da mezz'ora dopo il tramonto to half an hour before sunrise a mezz'ora prima del sorgere del sole\"\n },\n {\n \"k\": \"HOSP\",\n \"v\": \"Hospital aireraft. Aereoambulanza\"\n },\n {\n \"k\": \"HP\",\n \"v\": \"Holding Point Punto di attesa9\"\n },\n {\n \"k\": \"HPA\",\n \"v\": \"Hectopascal\"\n },\n {\n \"k\": \"HR\",\n \"v\": \"Hours of service. Orario di servizio\"\n },\n {\n \"k\": \"HX\",\n \"v\": \"No specific working hours. Orario di servizio non specificato\"\n },\n {\n \"k\": \"IAF\",\n \"v\": \"Initial approach fix. F\"\n },\n {\n \"k\": \"IAL\",\n \"v\": \"Instrument approach and landing chart. Carta di avvicinamento strument/atterrag.\"\n },\n {\n \"k\": \"IAS\",\n \"v\": \"Indicated air speed. Velocit\"\n },\n {\n \"k\": \"IBN\",\n \"v\": \"Identification beacon. Faro di identificazione\"\n },\n {\n \"k\": \"IF\",\n \"v\": \"Intermediate approach fix. Fix di avvicinamento intermedio\"\n },\n {\n \"k\": \"IFR\",\n \"v\": \"Instrument Flight Rules Regole del volo strumentale\"\n },\n {\n \"k\": \"ILS\",\n \"v\": \"Instrument landing system. Sistema di atterraggio strumentale\"\n },\n {\n \"k\": \"IMC\",\n \"v\": \"Instrument Metereological Conditions. Condizioni metereologiche strumentali\"\n },\n {\n \"k\": \"INCERFA\",\n \"v\": \"Uncertainly fase. Fase di incertezza\"\n },\n {\n \"k\": \"INFO\",\n \"v\": \"Informations. Informazione o per conoscenza\"\n },\n {\n \"k\": \"INOP\",\n \"v\": \"Inoperative. Non operativo\"\n },\n {\n \"k\": \"INS\",\n \"v\": \"Inches. Pollici unit\"\n },\n {\n \"k\": \"INS\",\n \"v\": \"Inertial navigation system. Sistema di navigazione inerziale\"\n },\n {\n \"k\": \"KHZ\",\n \"v\": \"Kiloherts.\"\n },\n {\n \"k\": \"KMH\",\n \"v\": \"Kilometres per hours. Chilometri per ora\"\n },\n {\n \"k\": \"KT\",\n \"v\": \"Knots. Nodi, velocit\"\n },\n {\n \"k\": \"L\",\n \"v\": \"Locator. Radiofaro locatore\"\n },\n {\n \"k\": \"LAT\",\n \"v\": \"Latitude. Latitudine\"\n },\n {\n \"k\": \"MA\",\n \"v\": \"Missed approch. Mancato avvicinamento\"\n },\n {\n \"k\": \"MA\",\n \"v\": \"Movement Area Area di movimento\"\n },\n {\n \"k\": \"MSA\",\n \"v\": \"Minimum safe altitude. Altitudine minima di sicurezza\"\n },\n {\n \"k\": \"MSG\",\n \"v\": \"Message. Messaggio\"\n },\n {\n \"k\": \"MSI\",\n \"v\": \"Mean sea level. Livello medio del mare\"\n },\n {\n \"k\": \"MAINT\",\n \"v\": \"Maintenance. Manutenzione\"\n },\n {\n \"k\": \"MAP\",\n \"v\": \"Aeronautical maps and chart. Carte e mappe aeronautiche\"\n },\n {\n \"k\": \"MAPT\",\n \"v\": \"Missed approach point time. Puntoorario di mancato avvicinamento\"\n },\n {\n \"k\": \"MCA\",\n \"v\": \"Minimum crossing altitude. Altitudine minima di attraversamento\"\n },\n {\n \"k\": \"MCL\",\n \"v\": \"Minimum crossing level. Livello minimo di attraversamento\"\n },\n {\n \"k\": \"MDA\",\n \"v\": \"Minimum descent altitude. Altitudine minima di discesa\"\n },\n {\n \"k\": \"MDH\",\n \"v\": \"Minimum descent height. Altezza minima di discesa\"\n },\n {\n \"k\": \"METAR\",\n \"v\": \"METeorological Air Report\"\n },\n {\n \"k\": \"MEA\",\n \"v\": \"Minimum enroute altitude. Altitudine minima di rotta\"\n },\n {\n \"k\": \"MEL\",\n \"v\": \"Minimum enroute level. Livello minimo di rotta\"\n },\n {\n \"k\": \"MET\",\n \"v\": \"Meteorogical or meteorology. Meteorologico o meteorologia\"\n },\n {\n \"k\": \"MF\",\n \"v\": \"Medium frequency. Frequenza media da 300 a 3000 Khz\"\n },\n {\n \"k\": \"MLS\",\n \"v\": \"Microwawe landing system. Sistema di atterraggio strum. a microonde\"\n },\n {\n \"k\": \"MM\",\n \"v\": \"Middle marker. Marker intermedio\"\n },\n {\n \"k\": \"MOC\",\n \"v\": \"Minimum obstacle clearance. Separazione minima dagli ostacoli\"\n },\n {\n \"k\": \"MPH\",\n \"v\": \"Statute miles per hour. Miglia statutaria per ora\"\n },\n {\n \"k\": \"MPS\",\n \"v\": \"Metres per seconds. Metri al secondo \"\n },\n {\n \"k\": \"MRA\",\n \"v\": \"Minimum reception altitude. Minima altitudine di ricezione radioass.\"\n },\n {\n \"k\": \"NDB\",\n \"v\": \"Not directional beacon. Radiofaro adirezionale non direzionale\"\n },\n {\n \"k\": \"NGT\",\n \"v\": \"Night. Notte\"\n },\n {\n \"k\": \"NM\",\n \"v\": \"Nautical miles. Miglia nautiche\"\n },\n {\n \"k\": \"NOF\",\n \"v\": \"International Notam office. Ufficio Notam internazionale\"\n },\n {\n \"k\": \"NOSIGN\",\n \"v\": \"no significante change. Nessuna variazione significativa\"\n },\n {\n \"k\": \"NOTAM\",\n \"v\": \"A notice distributed by means of telecomunications Notizie riguardanti i volo, condizioni degli aeroporti...\"\n },\n {\n \"k\": \"OCA\",\n \"v\": \"Obstacle clearance altitude. Altitudine di separazione dagli ostacoli\"\n },\n {\n \"k\": \"OCH\",\n \"v\": \"Ostacle clearance height. Altezza di separazione dagli ostacoli\"\n },\n {\n \"k\": \"OCL\",\n \"v\": \"Obstacle clearance limit. Limite di separazione dagli ostacoli\"\n },\n {\n \"k\": \"OM\",\n \"v\": \"Outer marker. Marker esterno\"\n },\n {\n \"k\": \"OPS\",\n \"v\": \"Operations.\"\n },\n {\n \"k\": \"O/R\",\n \"v\": \"On request. Operazioni a richiesta\"\n },\n {\n \"k\": \"P\",\n \"v\": \"Proibited area. Area Proibita\"\n },\n {\n \"k\": \"PANS\",\n \"v\": \"Procedure for air navigation service. Procedure per i servizi della navig. aerea\"\n },\n {\n \"k\": \"PAPI\",\n \"v\": \"Precision approach path indicator. Indicatore planata per avvicin. di precisione\"\n },\n {\n \"k\": \"PERM\",\n \"v\": \"Permanent.\"\n },\n {\n \"k\": \"POB\",\n \"v\": \"Persons on board. Persone a bordo es: POB 2\"\n },\n {\n \"k\": \"PSN\",\n \"v\": \"Position.\"\n },\n {\n \"k\": \"PRKG\",\n \"v\": \"Parking.\"\n },\n {\n \"k\": \"PROC\",\n \"v\": \"Procedure.\"\n },\n {\n \"k\": \"QDM\",\n \"v\": \"Magnetie approach route. Procedura Rotta magnetica di avvicinamento\"\n },\n {\n \"k\": \"QDR\",\n \"v\": \"Magnetic bearing. Rilevamento magnetico\"\n },\n {\n \"k\": \"QFE\",\n \"v\": \"Atmosferic pressure at aerodrome elevation. Pressione atmosferica all'altitudine dell'aeroporto\"\n },\n {\n \"k\": \"QFU\",\n \"v\": \"Magnetic orientation of runway. Orientamento magnetico della pista\"\n },\n {\n \"k\": \"QNH\",\n \"v\": \"Altinieter setting based on the atmosferic pressure at mean sea level. Regolaggio altimetrico basato sulla pressione al livello medio del mare\"\n },\n {\n \"k\": \"QTE\",\n \"v\": \"True bearing. Rilevamento vero\"\n },\n {\n \"k\": \"RCC\",\n \"v\": \"Rescue coordination centre. Centro di coordinamento e soccorso\"\n },\n {\n \"k\": \"RCL\",\n \"v\": \"Runway centre-line. Asse pista\"\n },\n {\n \"k\": \"RDH\",\n \"v\": \"Reference datum hight for ILS. Altezza del dato di riferimento per ILS\"\n },\n {\n \"k\": \"RDI\",\n \"v\": \"Radial. Radiale\"\n },\n {\n \"k\": \"REF\",\n \"v\": \"Reference to... Riferimento a...\"\n },\n {\n \"k\": \"REQ\",\n \"v\": \"Request.\"\n },\n {\n \"k\": \"RNAV\",\n \"v\": \"Area navigation. Navigazione d'area\"\n },\n {\n \"k\": \"RP\",\n \"v\": \"Reporting Point Punto di riporto\"\n },\n {\n \"k\": \"RPI\",\n \"v\": \"Repetitive flight plan. Piano di volo ripetitivo\"\n },\n {\n \"k\": \"RQS\",\n \"v\": \"Request supplementary FPL rnessage. Messaggio richiesta di FPL supplementari\"\n },\n {\n \"k\": \"RPLC\",\n \"v\": \"Replace or replaced. Sostituire o sostituito\"\n },\n {\n \"k\": \"RVR\",\n \"v\": \"Runway visual range. Portata visuale di pista\"\n },\n {\n \"k\": \"RWY\",\n \"v\": \"Runway. Pista di volo\"\n },\n {\n \"k\": \"SAR\",\n \"v\": \"Search and rescue. Ricerca e soccorso\"\n },\n {\n \"k\": \"SFC\",\n \"v\": \"Surface. Superficie suolo\"\n },\n {\n \"k\": \"SIGMET\",\n \"v\": \"SIGnificant METeorological Information / Informazioni Meteorologica Significative\"\n },\n {\n \"k\": \"SID\",\n \"v\": \"Standard instrument departure. Rotta di partenza strumentale standard\"\n },\n {\n \"k\": \"STAR\",\n \"v\": \"Standard arrival route. Rotta di arrivo strumentale standard\"\n },\n {\n \"k\": \"SMC\",\n \"v\": \"Surface movement control. Controllo movimenti al suolo\"\n },\n {\n \"k\": \"SWLL\",\n \"v\": \"SIGNIFICANT WEATHER LOW LEVEL\"\n },\n {\n \"k\": \"SMR\",\n \"v\": \"Surface movement radar Radar. Sorveglianza movimenti al suolo\"\n },\n {\n \"k\": \"SRA\",\n \"v\": \"Surveillance radar approach. Avvicinamento condotto con il solo radar di sorveglianza\"\n },\n {\n \"k\": \"SRE\",\n \"v\": \"Surveillance radar element. Elemento radar di sorveglianza del sistema radar per avvicinamento di precisione\"\n },\n {\n \"k\": \"SSR\",\n \"v\": \"Secondary surveillance radar. Radar secondario di sorveglianza\"\n },\n {\n \"k\": \"STA\",\n \"v\": \"Straight -in- approach. Avvicinamento diretto\"\n },\n {\n \"k\": \"STOL\",\n \"v\": \"Short take-off and landing. Decollo ed atterraggio corto\"\n },\n {\n \"k\": \"S/VFR\",\n \"v\": \"Special VFR. VFR Speciale vedi VFR\"\n },\n {\n \"k\": \"SVC\",\n \"v\": \"Service message. Messaggio di servizio\"\n },\n {\n \"k\": \"SWY\",\n \"v\": \"Stop-way. Zona di arresto\"\n },\n {\n \"k\": \"TA\",\n \"v\": \"Transitional altitude. Altitudine di transizione\"\n },\n {\n \"k\": \"TACAN\",\n \"v\": \"UHF Tactical air navigation aid. Radioassistenze UHF per la navigazione tattica\"\n },\n {\n \"k\": \"TAS\",\n \"v\": \"True air speed. Velocit\"\n },\n {\n \"k\": \"THR\",\n \"v\": \"Threshold. Soglia pista\"\n },\n {\n \"k\": \"TMA\",\n \"v\": \"Terminal Area. Area terminale per la confluenza di una o pi\"\n },\n {\n \"k\": \"UFN\",\n \"v\": \"Until further notice. Fino a nuovo avviso\"\n },\n {\n \"k\": \"UNL\",\n \"v\": \"Unlimited. Illimitato\"\n },\n {\n \"k\": \"VAL\",\n \"v\": \"Visual approach landing chart. Carta di avvicinamento/atterraggio visuale\"\n },\n {\n \"k\": \"VFR\",\n \"v\": \"Visual Flight Rules. Regole de volo a vista\"\n },\n {\n \"k\": \"VASIS\",\n \"v\": \"Visual approach slope indicator system. Sistema luminoso dell'angolo di avvicinamento\"\n },\n {\n \"k\": \"WIP\",\n \"v\": \"Works in progress. Lavori in corso\"\n },\n {\n \"k\": \"ZULU\",\n \"v\": \"Orario internazionale secondo il meridiano di riferimento: Greenwich\"\n }\n]\n\nexport const alphabeth = [\n {\n \"k\": \"A\",\n \"v\": \"alpha\"\n },\n {\n \"k\": \"B\",\n \"v\": \"bravo\"\n },\n {\n \"k\": \"C\",\n \"v\": \"charlie\"\n },\n {\n \"k\": \"D\",\n \"v\": \"delta\"\n },\n {\n \"k\": \"E\",\n \"v\": \"echo\"\n },\n {\n \"k\": \"F\",\n \"v\": \"foxtrot\"\n },\n {\n \"k\": \"G\",\n \"v\": \"golf\"\n },\n {\n \"k\": \"H\",\n \"v\": \"hotel\"\n },\n {\n \"k\": \"I\",\n \"v\": \"india\"\n },\n {\n \"k\": \"J\",\n \"v\": \"juliet\"\n },\n {\n \"k\": \"K\",\n \"v\": \"kilo\"\n },\n {\n \"k\": \"L\",\n \"v\": \"lima\"\n },\n {\n \"k\": \"M\",\n \"v\": \"mike\"\n },\n {\n \"k\": \"N\",\n \"v\": \"november\"\n },\n {\n \"k\": \"O\",\n \"v\": \"oscar\"\n },\n {\n \"k\": \"P\",\n \"v\": \"papa\"\n },\n {\n \"k\": \"Q\",\n \"v\": \"quebec\"\n },\n {\n \"k\": \"R\",\n \"v\": \"romeo\"\n },\n {\n \"k\": \"S\",\n \"v\": \"sierra\"\n },\n {\n \"k\": \"T\",\n \"v\": \"tango\"\n },\n {\n \"k\": \"U\",\n \"v\": \"uniform\"\n },\n {\n \"k\": \"V\",\n \"v\": \"victor\"\n },\n {\n \"k\": \"W\",\n \"v\": \"whiskey\"\n },\n {\n \"k\": \"X\",\n \"v\": \"x-ray\"\n },\n {\n \"k\": \"Y\",\n \"v\": \"yankee\"\n },\n {\n \"k\": \"Z\",\n \"v\": \"zulu\"\n }\n]\n\nexport const numbers = [\n {\n \"k\": \"1\",\n \"v\": \"one\"\n },\n {\n \"k\": \"2\",\n \"v\": \"two\"\n },\n {\n \"k\": \"3\",\n \"v\": \"three\"\n },\n {\n \"k\": \"4\",\n \"v\": \"four-er\"\n },\n {\n \"k\": \"5\",\n \"v\": \"five\"\n },\n {\n \"k\": \"6\",\n \"v\": \"six\"\n },\n {\n \"k\": \"7\",\n \"v\": \"seven\"\n },\n {\n \"k\": \"8\",\n \"v\": \"eight\"\n },\n {\n \"k\": \"9\",\n \"v\": \"nin-er\"\n },\n {\n \"k\": \"0\",\n \"v\": \"zero\"\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 * @format\n * @flow strict\n */\n\nimport NativePlatformConstantsAndroid from './NativePlatformConstantsAndroid';\n\nexport type PlatformSelectSpec<T> = {\n android?: T,\n native?: T,\n default?: T,\n ...\n};\n\nconst Platform = {\n __constants: null,\n OS: 'android',\n // $FlowFixMe[unsafe-getters-setters]\n get Version(): number {\n // $FlowFixMe[object-this-reference]\n return this.constants.Version;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get constants(): {|\n isTesting: boolean,\n reactNativeVersion: {|\n major: number,\n minor: number,\n patch: number,\n prerelease: ?number,\n |},\n Version: number,\n Release: string,\n Serial: string,\n Fingerprint: string,\n Model: string,\n ServerHost?: string,\n uiMode: string,\n Brand: string,\n Manufacturer: string,\n |} {\n // $FlowFixMe[object-this-reference]\n if (this.__constants == null) {\n // $FlowFixMe[object-this-reference]\n this.__constants = NativePlatformConstantsAndroid.getConstants();\n }\n // $FlowFixMe[object-this-reference]\n return this.__constants;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get isTesting(): boolean {\n if (__DEV__) {\n // $FlowFixMe[object-this-reference]\n return this.constants.isTesting;\n }\n return false;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get isTV(): boolean {\n // $FlowFixMe[object-this-reference]\n return this.constants.uiMode === 'tv';\n },\n select: <T>(spec: PlatformSelectSpec<T>): T =>\n 'android' in spec\n ? // $FlowFixMe[incompatible-return]\n spec.android\n : 'native' in spec\n ? // $FlowFixMe[incompatible-return]\n spec.native\n : // $FlowFixMe[incompatible-return]\n spec.default,\n};\n\nmodule.exports = Platform;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n isTesting: boolean,\n reactNativeVersion: {|\n major: number,\n minor: number,\n patch: number,\n prerelease: ?number,\n |},\n Version: number,\n Release: string,\n Serial: string,\n Fingerprint: string,\n Model: string,\n ServerHost?: string,\n uiMode: string,\n Brand: string,\n Manufacturer: string,\n |};\n +getAndroidID: () => string;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>(\n 'PlatformConstants',\n): Spec);\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 * @format\n * @flow strict-local\n */\n\nimport type {ProcessedColorValue} from './processColor';\nimport type {ColorValue} from './StyleSheet';\n\nexport opaque type NativeColorValue = {\n resource_paths?: Array<string>,\n};\n\nexport const PlatformColor = (...names: Array<string>): ColorValue => {\n return {resource_paths: names};\n};\n\nexport const normalizeColorObject = (\n color: NativeColorValue,\n): ?ProcessedColorValue => {\n if ('resource_paths' in color) {\n return color;\n }\n return null;\n};\n\nexport const processColorObject = (\n color: NativeColorValue,\n): ?NativeColorValue => {\n return color;\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 * @format\n * @flow strict-local\n */\n\nimport type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';\n\nimport ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';\nimport {DynamicallyInjectedByGestureHandler} from './ViewConfigIgnore';\n\nconst bubblingEventTypes = {\n // Bubbling events from UIManagerModuleConstants.java\n topChange: {\n phasedRegistrationNames: {\n captured: 'onChangeCapture',\n bubbled: 'onChange',\n },\n },\n topSelect: {\n phasedRegistrationNames: {\n captured: 'onSelectCapture',\n bubbled: 'onSelect',\n },\n },\n topTouchEnd: {\n phasedRegistrationNames: {\n captured: 'onTouchEndCapture',\n bubbled: 'onTouchEnd',\n },\n },\n topTouchCancel: {\n phasedRegistrationNames: {\n captured: 'onTouchCancelCapture',\n bubbled: 'onTouchCancel',\n },\n },\n topTouchStart: {\n phasedRegistrationNames: {\n captured: 'onTouchStartCapture',\n bubbled: 'onTouchStart',\n },\n },\n topTouchMove: {\n phasedRegistrationNames: {\n captured: 'onTouchMoveCapture',\n bubbled: 'onTouchMove',\n },\n },\n\n // Experimental/Work in Progress Pointer Events (not yet ready for use)\n topPointerCancel: {\n phasedRegistrationNames: {\n captured: 'onPointerCancelCapture',\n bubbled: 'onPointerCancel',\n },\n },\n topPointerDown: {\n phasedRegistrationNames: {\n captured: 'onPointerDownCapture',\n bubbled: 'onPointerDown',\n },\n },\n topPointerEnter: {\n phasedRegistrationNames: {\n captured: 'onPointerEnterCapture',\n bubbled: 'onPointerEnter',\n skipBubbling: true,\n },\n },\n topPointerLeave: {\n phasedRegistrationNames: {\n captured: 'onPointerLeaveCapture',\n bubbled: 'onPointerLeave',\n skipBubbling: true,\n },\n },\n topPointerMove: {\n phasedRegistrationNames: {\n captured: 'onPointerMoveCapture',\n bubbled: 'onPointerMove',\n },\n },\n topPointerUp: {\n phasedRegistrationNames: {\n captured: 'onPointerUpCapture',\n bubbled: 'onPointerUp',\n },\n },\n topPointerOut: {\n phasedRegistrationNames: {\n captured: 'onPointerOutCapture',\n bubbled: 'onPointerOut',\n },\n },\n topPointerOver: {\n phasedRegistrationNames: {\n captured: 'onPointerOverCapture',\n bubbled: 'onPointerOver',\n },\n },\n};\n\nconst directEventTypes = {\n topAccessibilityAction: {\n registrationName: 'onAccessibilityAction',\n },\n onGestureHandlerEvent: DynamicallyInjectedByGestureHandler({\n registrationName: 'onGestureHandlerEvent',\n }),\n onGestureHandlerStateChange: DynamicallyInjectedByGestureHandler({\n registrationName: 'onGestureHandlerStateChange',\n }),\n\n // Direct events from UIManagerModuleConstants.java\n topContentSizeChange: {\n registrationName: 'onContentSizeChange',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topMessage: {\n registrationName: 'onMessage',\n },\n topSelectionChange: {\n registrationName: 'onSelectionChange',\n },\n topLoadingFinish: {\n registrationName: 'onLoadingFinish',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topClick: {\n registrationName: 'onClick',\n },\n topLoadingStart: {\n registrationName: 'onLoadingStart',\n },\n topLoadingError: {\n registrationName: 'onLoadingError',\n },\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topLayout: {\n registrationName: 'onLayout',\n },\n};\n\nconst validAttributesForNonEventProps = {\n // @ReactProps from BaseViewManager\n backgroundColor: {process: require('../StyleSheet/processColor')},\n transform: true,\n opacity: true,\n elevation: true,\n shadowColor: {process: require('../StyleSheet/processColor')},\n zIndex: true,\n renderToHardwareTextureAndroid: true,\n testID: true,\n nativeID: true,\n accessibilityLabelledBy: true,\n accessibilityLabel: true,\n accessibilityHint: true,\n accessibilityRole: true,\n accessibilityCollection: true,\n accessibilityCollectionItem: true,\n accessibilityState: true,\n accessibilityActions: true,\n accessibilityValue: true,\n importantForAccessibility: true,\n rotation: true,\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n accessibilityLiveRegion: true,\n\n // @ReactProps from LayoutShadowNode\n width: true,\n minWidth: true,\n collapsable: true,\n maxWidth: true,\n height: true,\n minHeight: true,\n maxHeight: true,\n flex: true,\n flexGrow: true,\n rowGap: true,\n columnGap: true,\n gap: true,\n flexShrink: true,\n flexBasis: true,\n aspectRatio: true,\n flexDirection: true,\n flexWrap: true,\n alignSelf: true,\n alignItems: true,\n alignContent: true,\n justifyContent: true,\n overflow: true,\n display: true,\n\n margin: true,\n marginVertical: true,\n marginHorizontal: true,\n marginStart: true,\n marginEnd: true,\n marginTop: true,\n marginBottom: true,\n marginLeft: true,\n marginRight: true,\n\n padding: true,\n paddingVertical: true,\n paddingHorizontal: true,\n paddingStart: true,\n paddingEnd: true,\n paddingTop: true,\n paddingBottom: true,\n paddingLeft: true,\n paddingRight: true,\n\n borderWidth: true,\n borderStartWidth: true,\n borderEndWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n\n start: true,\n end: true,\n left: true,\n right: true,\n top: true,\n bottom: true,\n\n position: true,\n\n style: ReactNativeStyleAttributes,\n};\n\n// Props for bubbling and direct events\nconst validAttributesForEventProps = {\n onLayout: true,\n\n // PanResponder handlers\n onMoveShouldSetResponder: true,\n onMoveShouldSetResponderCapture: true,\n onStartShouldSetResponder: true,\n onStartShouldSetResponderCapture: true,\n onResponderGrant: true,\n onResponderReject: true,\n onResponderStart: true,\n onResponderEnd: true,\n onResponderRelease: true,\n onResponderMove: true,\n onResponderTerminate: true,\n onResponderTerminationRequest: true,\n onShouldBlockNativeResponder: true,\n\n // Touch events\n onTouchStart: true,\n onTouchMove: true,\n onTouchEnd: true,\n onTouchCancel: true,\n\n // Pointer events\n onPointerEnter: true,\n onPointerEnterCapture: true,\n onPointerLeave: true,\n onPointerLeaveCapture: true,\n onPointerMove: true,\n onPointerMoveCapture: true,\n onPointerOut: true,\n onPointerOutCapture: true,\n onPointerOver: true,\n onPointerOverCapture: true,\n};\n\n/**\n * On Android, Props are derived from a ViewManager and its ShadowNode.\n *\n * Where did we find these base platform props from?\n * - Nearly all component ViewManagers descend from BaseViewManager,\n * - and BaseViewManagers' ShadowNodes descend from LayoutShadowNode.\n * - Also, all components inherit ViewConfigs from UIManagerModuleConstants.java.\n *\n * So, these ViewConfigs are generated from LayoutShadowNode and BaseViewManager.\n */\nconst PlatformBaseViewConfigAndroid: PartialViewConfigWithoutName = {\n directEventTypes,\n bubblingEventTypes,\n validAttributes: {\n ...validAttributesForNonEventProps,\n ...validAttributesForEventProps,\n },\n};\n\nexport default PlatformBaseViewConfigAndroid;\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 * @format\n * @flow strict-local\n */\n\nimport UIManager from '../../ReactNative/UIManager';\n\n/**\n * This is a function exposed to the React Renderer that can be used by the\n * pre-Fabric renderer to emit accessibility events to pre-Fabric nodes.\n */\nfunction legacySendAccessibilityEvent(\n reactTag: number,\n eventType: string,\n): void {\n if (eventType === 'focus') {\n UIManager.sendAccessibilityEvent(\n reactTag,\n UIManager.getConstants().AccessibilityEventTypes.typeViewFocused,\n );\n }\n if (eventType === 'click') {\n UIManager.sendAccessibilityEvent(\n reactTag,\n UIManager.getConstants().AccessibilityEventTypes.typeViewClicked,\n );\n }\n}\n\nmodule.exports = legacySendAccessibilityEvent;\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 * @format\n * @flow\n */\n\nimport type {RequestBody} from './convertRequestBody';\n\n// Do not require the native RCTNetworking module directly! Use this wrapper module instead.\n// It will add the necessary requestId, so that you don't have to generate it yourself.\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport convertRequestBody from './convertRequestBody';\nimport NativeNetworkingAndroid from './NativeNetworkingAndroid';\n\ntype Header = [string, string];\n\n// Convert FormData headers to arrays, which are easier to consume in\n// native on Android.\nfunction convertHeadersMapToArray(headers: Object): Array<Header> {\n const headerArray = [];\n for (const name in headers) {\n headerArray.push([name, headers[name]]);\n }\n return headerArray;\n}\n\nlet _requestId = 1;\nfunction generateRequestId(): number {\n return _requestId++;\n}\n\n/**\n * This class is a wrapper around the native RCTNetworking module. It adds a necessary unique\n * requestId to each network request that can be used to abort that request later on.\n */\n// FIXME: use typed events\nclass RCTNetworking extends NativeEventEmitter<$FlowFixMe> {\n constructor() {\n super(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeNetworkingAndroid,\n );\n }\n\n sendRequest(\n method: string,\n trackingName: string,\n url: string,\n headers: Object,\n data: RequestBody,\n responseType: 'text' | 'base64',\n incrementalUpdates: boolean,\n timeout: number,\n callback: (requestId: number) => mixed,\n withCredentials: boolean,\n ) {\n const body = convertRequestBody(data);\n if (body && body.formData) {\n body.formData = body.formData.map(part => ({\n ...part,\n headers: convertHeadersMapToArray(part.headers),\n }));\n }\n const requestId = generateRequestId();\n NativeNetworkingAndroid.sendRequest(\n method,\n url,\n requestId,\n convertHeadersMapToArray(headers),\n {...body, trackingName},\n responseType,\n incrementalUpdates,\n timeout,\n withCredentials,\n );\n callback(requestId);\n }\n\n abortRequest(requestId: number) {\n NativeNetworkingAndroid.abortRequest(requestId);\n }\n\n clearCookies(callback: (result: boolean) => any) {\n NativeNetworkingAndroid.clearCookies(callback);\n }\n}\n\nmodule.exports = (new RCTNetworking(): RCTNetworking);\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype Header = [string, string];\n\nexport interface Spec extends TurboModule {\n +sendRequest: (\n method: string,\n url: string,\n requestId: number,\n headers: Array<Header>,\n data: Object,\n responseType: string,\n useIncrementalUpdates: boolean,\n timeout: number,\n withCredentials: boolean,\n ) => void;\n +abortRequest: (requestId: number) => void;\n +clearCookies: (callback: (result: boolean) => void) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('Networking'): Spec);\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 * @format\n */\n\nimport NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';\n\nfunction emptyCallback() {}\n\nmodule.exports = {\n alertWithArgs: function (args, callback) {\n // TODO(5998984): Polyfill it correctly with DialogManagerAndroid\n if (!NativeDialogManagerAndroid) {\n return;\n }\n\n NativeDialogManagerAndroid.showAlert(\n args,\n emptyCallback,\n callback || emptyCallback,\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 strict-local\n * @format\n */\n\nimport NativeDeviceEventManager from '../../Libraries/NativeModules/specs/NativeDeviceEventManager';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\n\nconst DEVICE_BACK_EVENT = 'hardwareBackPress';\n\ntype BackPressEventName = 'backPress' | 'hardwareBackPress';\n\nconst _backPressSubscriptions = [];\n\nRCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function () {\n for (let i = _backPressSubscriptions.length - 1; i >= 0; i--) {\n if (_backPressSubscriptions[i]()) {\n return;\n }\n }\n\n BackHandler.exitApp();\n});\n\n/**\n * Detect hardware button presses for back navigation.\n *\n * Android: Detect hardware back button presses, and programmatically invoke the default back button\n * functionality to exit the app if there are no listeners or if none of the listeners return true.\n *\n * iOS: Not applicable.\n *\n * The event subscriptions are called in reverse order (i.e. last registered subscription first),\n * and if one subscription returns true then subscriptions registered earlier will not be called.\n *\n * Example:\n *\n * ```javascript\n * BackHandler.addEventListener('hardwareBackPress', function() {\n * // this.onMainScreen and this.goBack are just examples, you need to use your own implementation here\n * // Typically you would use the navigator here to go to the last state.\n *\n * if (!this.onMainScreen()) {\n * this.goBack();\n * return true;\n * }\n * return false;\n * });\n * ```\n */\ntype TBackHandler = {|\n +exitApp: () => void,\n +addEventListener: (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ) => {remove: () => void, ...},\n +removeEventListener: (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ) => void,\n|};\nconst BackHandler: TBackHandler = {\n exitApp: function (): void {\n if (!NativeDeviceEventManager) {\n return;\n }\n\n NativeDeviceEventManager.invokeDefaultBackPressHandler();\n },\n\n /**\n * Adds an event handler. Supported events:\n *\n * - `hardwareBackPress`: Fires when the Android hardware back button is pressed.\n */\n addEventListener: function (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ): {remove: () => void, ...} {\n if (_backPressSubscriptions.indexOf(handler) === -1) {\n _backPressSubscriptions.push(handler);\n }\n return {\n remove: (): void => BackHandler.removeEventListener(eventName, handler),\n };\n },\n\n /**\n * Removes the event handler.\n */\n removeEventListener: function (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ): void {\n const index = _backPressSubscriptions.indexOf(handler);\n if (index !== -1) {\n _backPressSubscriptions.splice(index, 1);\n }\n },\n};\n\nmodule.exports = BackHandler;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +invokeDefaultBackPressHandler: () => void;\n}\n\nexport default (TurboModuleRegistry.get<Spec>('DeviceEventManager'): ?Spec);\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 strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport ProgressBarAndroidNativeComponent from './ProgressBarAndroidNativeComponent';\n\nconst React = require('react');\n\nexport type ProgressBarAndroidProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Style of the ProgressBar and whether it shows indeterminate progress (e.g. spinner).\n *\n * `indeterminate` can only be false if `styleAttr` is Horizontal, and requires a\n * `progress` value.\n */\n ...\n | {|\n styleAttr: 'Horizontal',\n indeterminate: false,\n progress: number,\n |}\n | {|\n typeAttr:\n | 'Horizontal'\n | 'Normal'\n | 'Small'\n | 'Large'\n | 'Inverse'\n | 'SmallInverse'\n | 'LargeInverse',\n indeterminate: true,\n |},\n /**\n * Whether to show the ProgressBar (true, the default) or hide it (false).\n */\n animating?: ?boolean,\n /**\n * Color of the progress bar.\n */\n color?: ?ColorValue,\n /**\n * Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n|}>;\n\n/**\n * React component that wraps the Android-only `ProgressBar`. This component is\n * used to indicate that the app is loading or there is activity in the app.\n *\n * Example:\n *\n * ```\n * render: function() {\n * var progressBar =\n * <View style={styles.container}>\n * <ProgressBar styleAttr=\"Inverse\" />\n * </View>;\n\n * return (\n * <MyLoadingComponent\n * componentView={componentView}\n * loadingView={progressBar}\n * style={styles.loadingComponent}\n * />\n * );\n * },\n * ```\n */\nconst ProgressBarAndroid = (\n {\n styleAttr = 'Normal',\n indeterminate = true,\n animating = true,\n ...restProps\n }: ProgressBarAndroidProps,\n forwardedRef: ?React.Ref<typeof ProgressBarAndroidNativeComponent>,\n) => {\n return (\n <ProgressBarAndroidNativeComponent\n styleAttr={styleAttr}\n indeterminate={indeterminate}\n animating={animating}\n {...restProps}\n ref={forwardedRef}\n />\n );\n};\n\nconst ProgressBarAndroidToExport = React.forwardRef(ProgressBarAndroid);\n\nmodule.exports =\n /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\n (ProgressBarAndroidToExport: typeof ProgressBarAndroidNativeComponent);\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 strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {Double, WithDefault} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n //Props\n styleAttr?: string,\n typeAttr?: string,\n indeterminate: boolean,\n progress?: WithDefault<Double, 0>,\n animating?: WithDefault<boolean, true>,\n color?: ?ColorValue,\n testID?: WithDefault<string, ''>,\n|}>;\n\nexport default (codegenNativeComponent<NativeProps>('AndroidProgressBar', {\n interfaceOnly: true,\n}): HostComponent<NativeProps>);\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 * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {ImageAndroid} from './Image.flow';\nimport type {ImageProps as ImagePropsType} from './ImageProps';\n\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport TextAncestor from '../Text/TextAncestor';\nimport ImageAnalyticsTagContext from './ImageAnalyticsTagContext';\nimport ImageInjection from './ImageInjection';\nimport {getImageSourcesFromImageProps} from './ImageSourceUtils';\nimport {convertObjectFitToResizeMode} from './ImageUtils';\nimport ImageViewNativeComponent from './ImageViewNativeComponent';\nimport NativeImageLoaderAndroid from './NativeImageLoaderAndroid';\nimport resolveAssetSource from './resolveAssetSource';\nimport TextInlineImageNativeComponent from './TextInlineImageNativeComponent';\nimport * as React from 'react';\n\nlet _requestId = 1;\nfunction generateRequestId() {\n return _requestId++;\n}\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n *\n * See https://reactnative.dev/docs/image#getsize\n */\nfunction getSize(\n url: string,\n success: (width: number, height: number) => void,\n failure?: (error: any) => void,\n): any {\n return NativeImageLoaderAndroid.getSize(url)\n .then(function (sizes) {\n success(sizes.width, sizes.height);\n })\n .catch(\n failure ||\n function () {\n console.warn('Failed to get size for image: ' + url);\n },\n );\n}\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n * with the ability to provide the headers for the request\n *\n * See https://reactnative.dev/docs/image#getsizewithheaders\n */\nfunction getSizeWithHeaders(\n url: string,\n headers: {[string]: string, ...},\n success: (width: number, height: number) => void,\n failure?: (error: any) => void,\n): any {\n return NativeImageLoaderAndroid.getSizeWithHeaders(url, headers)\n .then(function (sizes) {\n success(sizes.width, sizes.height);\n })\n .catch(\n failure ||\n function () {\n console.warn('Failed to get size for image: ' + url);\n },\n );\n}\n\nfunction prefetchWithMetadata(\n url: string,\n queryRootName: string,\n rootTag?: ?RootTag,\n callback: ?Function,\n): any {\n // TODO: T79192300 Log queryRootName and rootTag\n prefetch(url, callback);\n}\n\nfunction prefetch(url: string, callback: ?Function): any {\n const requestId = generateRequestId();\n callback && callback(requestId);\n return NativeImageLoaderAndroid.prefetchImage(url, requestId);\n}\n\nfunction abortPrefetch(requestId: number) {\n NativeImageLoaderAndroid.abortRequest(requestId);\n}\n\n/**\n * Perform cache interrogation.\n *\n * See https://reactnative.dev/docs/image#querycache\n */\nasync function queryCache(\n urls: Array<string>,\n): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {\n return await NativeImageLoaderAndroid.queryCache(urls);\n}\n\nexport type ImageComponentStatics = $ReadOnly<{|\n getSize: typeof getSize,\n getSizeWithHeaders: typeof getSizeWithHeaders,\n prefetch: typeof prefetch,\n prefetchWithMetadata: typeof prefetchWithMetadata,\n abortPrefetch: typeof abortPrefetch,\n queryCache: typeof queryCache,\n resolveAssetSource: typeof resolveAssetSource,\n|}>;\n\n/**\n * A React component for displaying different types of images,\n * including network images, static resources, temporary local images, and\n * images from local disk, such as the camera roll.\n *\n * See https://reactnative.dev/docs/image\n */\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nconst BaseImage = (props: ImagePropsType, forwardedRef) => {\n let source = getImageSourcesFromImageProps(props) || {\n uri: undefined,\n width: undefined,\n height: undefined,\n };\n const defaultSource = resolveAssetSource(props.defaultSource);\n const loadingIndicatorSource = resolveAssetSource(\n props.loadingIndicatorSource,\n );\n\n if (props.children) {\n throw new Error(\n 'The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.',\n );\n }\n\n if (props.defaultSource && props.loadingIndicatorSource) {\n throw new Error(\n 'The <Image> component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',\n );\n }\n\n let style;\n let sources;\n if (Array.isArray(source)) {\n style = flattenStyle([styles.base, props.style]);\n sources = source;\n } else {\n const {width = props.width, height = props.height, uri} = source;\n style = flattenStyle([{width, height}, styles.base, props.style]);\n sources = [source];\n\n if (uri === '') {\n console.warn('source.uri should not be an empty string');\n }\n }\n\n const {height, width, ...restProps} = props;\n const {onLoadStart, onLoad, onLoadEnd, onError} = props;\n const nativeProps = {\n ...restProps,\n style,\n shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),\n src: sources,\n /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found\n * when making Flow check .android.js files. */\n headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),\n defaultSrc: defaultSource ? defaultSource.uri : null,\n loadingIndicatorSrc: loadingIndicatorSource\n ? loadingIndicatorSource.uri\n : null,\n ref: forwardedRef,\n accessibilityLabel:\n props['aria-label'] ?? props.accessibilityLabel ?? props.alt,\n accessibilityLabelledBy:\n props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy,\n accessible: props.alt !== undefined ? true : props.accessible,\n accessibilityState: {\n busy: props['aria-busy'] ?? props.accessibilityState?.busy,\n checked: props['aria-checked'] ?? props.accessibilityState?.checked,\n disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,\n expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,\n selected: props['aria-selected'] ?? props.accessibilityState?.selected,\n },\n };\n\n const objectFit =\n style && style.objectFit\n ? convertObjectFitToResizeMode(style.objectFit)\n : null;\n // $FlowFixMe[prop-missing]\n const resizeMode =\n objectFit || props.resizeMode || (style && style.resizeMode) || 'cover';\n\n return (\n <ImageAnalyticsTagContext.Consumer>\n {analyticTag => {\n const nativePropsWithAnalytics =\n analyticTag !== null\n ? {\n ...nativeProps,\n internal_analyticTag: analyticTag,\n }\n : nativeProps;\n return (\n <TextAncestor.Consumer>\n {hasTextAncestor => {\n if (hasTextAncestor) {\n return (\n <TextInlineImageNativeComponent\n style={style}\n resizeMode={resizeMode}\n headers={nativeProps.headers}\n src={sources}\n ref={forwardedRef}\n />\n );\n }\n\n return (\n <ImageViewNativeComponent\n {...nativePropsWithAnalytics}\n resizeMode={resizeMode}\n />\n );\n }}\n </TextAncestor.Consumer>\n );\n }}\n </ImageAnalyticsTagContext.Consumer>\n );\n};\n\nlet Image = React.forwardRef<\n ImagePropsType,\n | React.ElementRef<typeof TextInlineImageNativeComponent>\n | React.ElementRef<typeof ImageViewNativeComponent>,\n>(BaseImage);\n\nif (ImageInjection.unstable_createImageComponent != null) {\n Image = ImageInjection.unstable_createImageComponent(Image);\n}\n\nImage.displayName = 'Image';\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n *\n * See https://reactnative.dev/docs/image#getsize\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.getSize = getSize;\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n * with the ability to provide the headers for the request\n *\n * See https://reactnative.dev/docs/image#getsizewithheaders\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.getSizeWithHeaders = getSizeWithHeaders;\n\n/**\n * Prefetches a remote image for later use by downloading it to the disk\n * cache\n *\n * See https://reactnative.dev/docs/image#prefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.prefetch = prefetch;\n\n/**\n * Prefetches a remote image for later use by downloading it to the disk\n * cache, and adds metadata for queryRootName and rootTag.\n *\n * See https://reactnative.dev/docs/image#prefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.prefetchWithMetadata = prefetchWithMetadata;\n\n/**\n * Abort prefetch request.\n *\n * See https://reactnative.dev/docs/image#abortprefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.abortPrefetch = abortPrefetch;\n\n/**\n * Perform cache interrogation.\n *\n * See https://reactnative.dev/docs/image#querycache\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.queryCache = queryCache;\n\n/**\n * Resolves an asset reference into an object.\n *\n * See https://reactnative.dev/docs/image#resolveassetsource\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.resolveAssetSource = resolveAssetSource;\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nImage.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;\n\nconst styles = StyleSheet.create({\n base: {\n overflow: 'hidden',\n },\n});\n\nmodule.exports = ((Image: any): ImageAndroid);\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 * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +abortRequest: (requestId: number) => void;\n +getConstants: () => {||};\n +getSize: (uri: string) => Promise<\n $ReadOnly<{\n width: number,\n height: number,\n ...\n }>,\n >;\n +getSizeWithHeaders: (\n uri: string,\n headers: Object,\n ) => Promise<{\n width: number,\n height: number,\n ...\n }>;\n +prefetchImage: (uri: string, requestId: number) => Promise<boolean>;\n +queryCache: (uris: Array<string>) => Promise<Object>;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('ImageLoader'): Spec);\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 * @format\n */\n\n'use strict';\nimport type {DatePickerIOSType} from './DatePickerIOS.flow';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport View from '../View/View';\nimport * as React from 'react';\n\nclass DummyDatePickerIOS extends React.Component {\n render() {\n return (\n <View style={[styles.dummyDatePickerIOS, this.props.style]}>\n <Text style={styles.datePickerText}>\n DatePickerIOS is not supported on this platform!\n </Text>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n dummyDatePickerIOS: {\n height: 100,\n width: 300,\n backgroundColor: '#ffbcbc',\n borderWidth: 1,\n borderColor: 'red',\n alignItems: 'center',\n justifyContent: 'center',\n margin: 10,\n },\n datePickerText: {\n color: '#333333',\n margin: 20,\n },\n});\n\nmodule.exports = (DummyDatePickerIOS: DatePickerIOSType);\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 * @format\n */\n\nimport type {\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue, ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {DirectEventHandler} from '../../Types/CodegenTypes';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport StatusBar from '../StatusBar/StatusBar';\nimport View from '../View/View';\nimport AndroidDrawerLayoutNativeComponent, {\n Commands,\n} from './AndroidDrawerLayoutNativeComponent';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nconst DRAWER_STATES = ['Idle', 'Dragging', 'Settling'];\n\ntype DrawerStates = 'Idle' | 'Dragging' | 'Settling';\n\ntype DrawerSlideEvent = $ReadOnly<{|\n offset: number,\n|}>;\n\ntype Props = $ReadOnly<{|\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n * - 'none' (the default), drags do not dismiss the keyboard.\n * - 'on-drag', the keyboard is dismissed when a drag begins.\n */\n keyboardDismissMode?: ?('none' | 'on-drag'),\n\n /**\n * Specifies the background color of the drawer. The default value is white.\n * If you want to set the opacity of the drawer, use rgba. Example:\n *\n * ```\n * return (\n * <DrawerLayoutAndroid drawerBackgroundColor=\"rgba(0,0,0,0.5)\">\n * </DrawerLayoutAndroid>\n * );\n * ```\n */\n drawerBackgroundColor?: ?ColorValue,\n\n /**\n * Specifies the side of the screen from which the drawer will slide in.\n */\n drawerPosition: ?('left' | 'right'),\n\n /**\n * Specifies the width of the drawer, more precisely the width of the view that be pulled in\n * from the edge of the window.\n */\n drawerWidth?: ?number,\n\n /**\n * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:\n * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.\n * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.\n * - locked-open, meaning that the drawer will stay opened and not respond to gestures.\n * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).\n */\n drawerLockMode?: ?('unlocked' | 'locked-closed' | 'locked-open'),\n\n /**\n * Function called whenever there is an interaction with the navigation view.\n */\n onDrawerSlide?: ?DirectEventHandler<DrawerSlideEvent>,\n\n /**\n * Function called when the drawer state has changed. The drawer can be in 3 states:\n * - Idle, meaning there is no interaction with the navigation view happening at the time\n * - Dragging, meaning there is currently an interaction with the navigation view\n * - Settling, meaning that there was an interaction with the navigation view, and the\n * navigation view is now finishing its closing or opening animation\n */\n onDrawerStateChanged?: ?(state: DrawerStates) => mixed,\n\n /**\n * Function called whenever the navigation view has been opened.\n */\n onDrawerOpen?: ?() => mixed,\n\n /**\n * Function called whenever the navigation view has been closed.\n */\n onDrawerClose?: ?() => mixed,\n\n /**\n * The navigation view that will be rendered to the side of the screen and can be pulled in.\n */\n renderNavigationView: () => React.Element<any>,\n\n /**\n * Make the drawer take the entire screen and draw the background of the\n * status bar to allow it to open over the status bar. It will only have an\n * effect on API 21+.\n */\n statusBarBackgroundColor?: ?ColorValue,\n\n children?: React.Node,\n style?: ?ViewStyleProp,\n|}>;\n\ntype State = {|\n statusBarBackgroundColor: ColorValue,\n|};\n\n/**\n * React component that wraps the platform `DrawerLayout` (Android only). The\n * Drawer (typically used for navigation) is rendered with `renderNavigationView`\n * and direct children are the main view (where your content goes). The navigation\n * view is initially not visible on the screen, but can be pulled in from the\n * side of the window specified by the `drawerPosition` prop and its width can\n * be set by the `drawerWidth` prop.\n *\n * Example:\n *\n * ```\n * render: function() {\n * var navigationView = (\n * <View style={{flex: 1, backgroundColor: '#fff'}}>\n * <Text style={{margin: 10, fontSize: 15, textAlign: 'left'}}>I'm in the Drawer!</Text>\n * </View>\n * );\n * return (\n * <DrawerLayoutAndroid\n * drawerWidth={300}\n * drawerPosition=\"left\"\n * renderNavigationView={() => navigationView}>\n * <View style={{flex: 1, alignItems: 'center'}}>\n * <Text style={{margin: 10, fontSize: 15, textAlign: 'right'}}>Hello</Text>\n * <Text style={{margin: 10, fontSize: 15, textAlign: 'right'}}>World!</Text>\n * </View>\n * </DrawerLayoutAndroid>\n * );\n * },\n * ```\n */\nclass DrawerLayoutAndroid extends React.Component<Props, State> {\n static get positions(): mixed {\n console.warn(\n 'Setting DrawerLayoutAndroid drawerPosition using `DrawerLayoutAndroid.positions` is deprecated. Instead pass the string value \"left\" or \"right\"',\n );\n\n return {Left: 'left', Right: 'right'};\n }\n\n // $FlowFixMe[missing-local-annot]\n _nativeRef =\n React.createRef<\n React.ElementRef<typeof AndroidDrawerLayoutNativeComponent>,\n >();\n\n state: State = {statusBarBackgroundColor: null};\n\n render(): React.Node {\n const {\n drawerBackgroundColor = 'white',\n onDrawerStateChanged,\n renderNavigationView,\n onDrawerOpen,\n onDrawerClose,\n ...props\n } = this.props;\n const drawStatusBar =\n Platform.Version >= 21 && this.props.statusBarBackgroundColor != null;\n const drawerViewWrapper = (\n <View\n style={[\n styles.drawerSubview,\n {\n width: this.props.drawerWidth,\n backgroundColor: drawerBackgroundColor,\n },\n ]}\n collapsable={false}>\n {renderNavigationView()}\n {drawStatusBar && <View style={styles.drawerStatusBar} />}\n </View>\n );\n const childrenWrapper = (\n <View style={styles.mainSubview} collapsable={false}>\n {drawStatusBar && (\n <StatusBar\n translucent\n backgroundColor={this.props.statusBarBackgroundColor}\n />\n )}\n {drawStatusBar && (\n <View\n style={[\n styles.statusBar,\n {backgroundColor: this.props.statusBarBackgroundColor},\n ]}\n />\n )}\n {this.props.children}\n </View>\n );\n return (\n <AndroidDrawerLayoutNativeComponent\n {...props}\n ref={this._nativeRef}\n drawerBackgroundColor={drawerBackgroundColor}\n drawerWidth={this.props.drawerWidth}\n drawerPosition={this.props.drawerPosition}\n drawerLockMode={this.props.drawerLockMode}\n style={[styles.base, this.props.style]}\n onDrawerSlide={this._onDrawerSlide}\n onDrawerOpen={this._onDrawerOpen}\n onDrawerClose={this._onDrawerClose}\n onDrawerStateChanged={this._onDrawerStateChanged}>\n {childrenWrapper}\n {drawerViewWrapper}\n </AndroidDrawerLayoutNativeComponent>\n );\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _onDrawerSlide = event => {\n if (this.props.onDrawerSlide) {\n this.props.onDrawerSlide(event);\n }\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n };\n\n _onDrawerOpen = () => {\n if (this.props.onDrawerOpen) {\n this.props.onDrawerOpen();\n }\n };\n\n _onDrawerClose = () => {\n if (this.props.onDrawerClose) {\n this.props.onDrawerClose();\n }\n };\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _onDrawerStateChanged = event => {\n if (this.props.onDrawerStateChanged) {\n this.props.onDrawerStateChanged(\n DRAWER_STATES[event.nativeEvent.drawerState],\n );\n }\n };\n\n /**\n * Opens the drawer.\n */\n openDrawer() {\n Commands.openDrawer(nullthrows(this._nativeRef.current));\n }\n\n /**\n * Closes the drawer.\n */\n closeDrawer() {\n Commands.closeDrawer(nullthrows(this._nativeRef.current));\n }\n\n /**\n * Closing and opening example\n * Note: To access the drawer you have to give it a ref\n *\n * Class component:\n *\n * render () {\n * this.openDrawer = () => {\n * this.refs.DRAWER.openDrawer()\n * }\n * this.closeDrawer = () => {\n * this.refs.DRAWER.closeDrawer()\n * }\n * return (\n * <DrawerLayoutAndroid ref={'DRAWER'}>\n * {children}\n * </DrawerLayoutAndroid>\n * )\n * }\n *\n * Function component:\n *\n * const drawerRef = useRef()\n * const openDrawer = () => {\n * drawerRef.current.openDrawer()\n * }\n * const closeDrawer = () => {\n * drawerRef.current.closeDrawer()\n * }\n * return (\n * <DrawerLayoutAndroid ref={drawerRef}>\n * {children}\n * </DrawerLayoutAndroid>\n * )\n */\n\n /**\n * Native methods\n */\n blur() {\n nullthrows(this._nativeRef.current).blur();\n }\n\n focus() {\n nullthrows(this._nativeRef.current).focus();\n }\n\n measure(callback: MeasureOnSuccessCallback) {\n nullthrows(this._nativeRef.current).measure(callback);\n }\n\n measureInWindow(callback: MeasureInWindowOnSuccessCallback) {\n nullthrows(this._nativeRef.current).measureInWindow(callback);\n }\n\n measureLayout(\n relativeToNativeNode: number,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail?: () => void,\n ) {\n nullthrows(this._nativeRef.current).measureLayout(\n relativeToNativeNode,\n onSuccess,\n onFail,\n );\n }\n\n setNativeProps(nativeProps: Object) {\n nullthrows(this._nativeRef.current).setNativeProps(nativeProps);\n }\n}\n\nconst styles = StyleSheet.create({\n base: {\n flex: 1,\n elevation: 16,\n },\n mainSubview: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n drawerSubview: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n },\n statusBar: {\n height: StatusBar.currentHeight,\n },\n drawerStatusBar: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: StatusBar.currentHeight,\n backgroundColor: 'rgba(0, 0, 0, 0.251)',\n },\n});\n\nmodule.exports = DrawerLayoutAndroid;\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 * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype DrawerStateEvent = $ReadOnly<{|\n drawerState: Int32,\n|}>;\n\ntype DrawerSlideEvent = $ReadOnly<{|\n offset: Float,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n * - 'none' (the default), drags do not dismiss the keyboard.\n * - 'on-drag', the keyboard is dismissed when a drag begins.\n */\n keyboardDismissMode?: WithDefault<'none' | 'on-drag', 'none'>,\n\n /**\n * Specifies the background color of the drawer. The default value is white.\n * If you want to set the opacity of the drawer, use rgba. Example:\n *\n * ```\n * return (\n * <DrawerLayoutAndroid drawerBackgroundColor=\"rgba(0,0,0,0.5)\">\n * </DrawerLayoutAndroid>\n * );\n * ```\n */\n drawerBackgroundColor: ColorValue,\n\n /**\n * Specifies the side of the screen from which the drawer will slide in.\n */\n drawerPosition?: WithDefault<'left' | 'right', 'left'>,\n\n /**\n * Specifies the width of the drawer, more precisely the width of the view that be pulled in\n * from the edge of the window.\n */\n\n drawerWidth?: WithDefault<Float, null>,\n\n /**\n * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:\n * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.\n * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.\n * - locked-open, meaning that the drawer will stay opened and not respond to gestures.\n * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).\n */\n drawerLockMode?: WithDefault<\n 'unlocked' | 'locked-closed' | 'locked-open',\n 'unlocked',\n >,\n\n /**\n * Function called whenever there is an interaction with the navigation view.\n */\n onDrawerSlide?: ?DirectEventHandler<DrawerSlideEvent>,\n\n /**\n * Function called when the drawer state has changed. The drawer can be in 3 states:\n * - Idle, meaning there is no interaction with the navigation view happening at the time\n * - Dragging, meaning there is currently an interaction with the navigation view\n * - Settling, meaning that there was an interaction with the navigation view, and the\n * navigation view is now finishing its closing or opening animation\n */\n onDrawerStateChanged?: ?DirectEventHandler<DrawerStateEvent>,\n\n /**\n * Function called whenever the navigation view has been opened.\n */\n onDrawerOpen?: ?DirectEventHandler<null>,\n\n /**\n * Function called whenever the navigation view has been closed.\n */\n onDrawerClose?: ?DirectEventHandler<null>,\n\n /**\n * Make the drawer take the entire screen and draw the background of the\n * status bar to allow it to open over the status bar. It will only have an\n * effect on API 21+.\n */\n statusBarBackgroundColor?: ?ColorValue,\n|}>;\n\ntype NativeType = HostComponent<NativeProps>;\n\ninterface NativeCommands {\n +openDrawer: (viewRef: React.ElementRef<NativeType>) => void;\n +closeDrawer: (viewRef: React.ElementRef<NativeType>) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\n supportedCommands: ['openDrawer', 'closeDrawer'],\n});\n\nexport default (codegenNativeComponent<NativeProps>(\n 'AndroidDrawerLayout',\n): NativeType);\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 * @format\n */\n\n'use strict';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport View from '../View/View';\nimport * as React from 'react';\n\nclass DummyProgressViewIOS extends React.Component {\n render() {\n return (\n <View style={[styles.dummy, this.props.style]}>\n <Text style={styles.text}>\n ProgressViewIOS is not supported on this platform!\n </Text>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n dummy: {\n width: 120,\n height: 20,\n backgroundColor: '#ffbcbc',\n borderWidth: 1,\n borderColor: 'red',\n alignItems: 'center',\n justifyContent: 'center',\n },\n text: {\n color: '#333333',\n margin: 5,\n fontSize: 10,\n },\n});\n\nmodule.exports = DummyProgressViewIOS;\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 * @format\n * @flow\n */\n\n'use strict';\n\nconst Settings = {\n get(key: string): mixed {\n console.warn('Settings is not yet supported on Android');\n return null;\n },\n\n set(settings: Object) {\n console.warn('Settings is not yet supported on Android');\n },\n\n watchKeys(keys: string | Array<string>, callback: Function): number {\n console.warn('Settings is not yet supported on Android');\n return -1;\n },\n\n clearWatch(watchId: number) {\n console.warn('Settings is not yet supported on Android');\n },\n};\n\nmodule.exports = Settings;\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 * @format\n * @flow strict-local\n */\n\nimport NativeToastAndroid from './NativeToastAndroid';\n\n/**\n * This exposes the native ToastAndroid module as a JS module. This has a function 'show'\n * which takes the following parameters:\n *\n * 1. String message: A string with the text to toast\n * 2. int duration: The duration of the toast. May be ToastAndroid.SHORT or ToastAndroid.LONG\n *\n * There is also a function `showWithGravity` to specify the layout gravity. May be\n * ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER.\n *\n * The 'showWithGravityAndOffset' function adds on the ability to specify offset\n * These offset values will translate to pixels.\n *\n * Basic usage:\n * ```javascript\n * ToastAndroid.show('A pikachu appeared nearby !', ToastAndroid.SHORT);\n * ToastAndroid.showWithGravity('All Your Base Are Belong To Us', ToastAndroid.SHORT, ToastAndroid.CENTER);\n * ToastAndroid.showWithGravityAndOffset('A wild toast appeared!', ToastAndroid.LONG, ToastAndroid.BOTTOM, 25, 50);\n * ```\n */\n\nconst ToastAndroidConstants = NativeToastAndroid.getConstants();\n\nconst ToastAndroid = {\n // Toast duration constants\n SHORT: (ToastAndroidConstants.SHORT: number),\n LONG: (ToastAndroidConstants.LONG: number),\n // Toast gravity constants\n TOP: (ToastAndroidConstants.TOP: number),\n BOTTOM: (ToastAndroidConstants.BOTTOM: number),\n CENTER: (ToastAndroidConstants.CENTER: number),\n\n show: function (message: string, duration: number): void {\n NativeToastAndroid.show(message, duration);\n },\n\n showWithGravity: function (\n message: string,\n duration: number,\n gravity: number,\n ): void {\n NativeToastAndroid.showWithGravity(message, duration, gravity);\n },\n\n showWithGravityAndOffset: function (\n message: string,\n duration: number,\n gravity: number,\n xOffset: number,\n yOffset: number,\n ): void {\n NativeToastAndroid.showWithGravityAndOffset(\n message,\n duration,\n gravity,\n xOffset,\n yOffset,\n );\n },\n};\n\nmodule.exports = ToastAndroid;\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 strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n SHORT: number,\n LONG: number,\n TOP: number,\n BOTTOM: number,\n CENTER: number,\n |};\n +show: (message: string, duration: number) => void;\n +showWithGravity: (\n message: string,\n duration: number,\n gravity: number,\n ) => void;\n +showWithGravityAndOffset: (\n message: string,\n duration: number,\n gravity: number,\n xOffset: number,\n yOffset: number,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing<Spec>('ToastAndroid'): Spec);\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 * @format\n * @flow strict-local\n */\n\nimport type {ColorValue} from './StyleSheet';\n\nexport type DynamicColorIOSTuple = {\n light: ColorValue,\n dark: ColorValue,\n highContrastLight?: ColorValue,\n highContrastDark?: ColorValue,\n};\n\nexport const DynamicColorIOS = (tuple: DynamicColorIOSTuple): ColorValue => {\n throw new Error('DynamicColorIOS is not available on this platform.');\n};\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { requireNativeComponent, ViewProps } from 'react-native';\nimport { maybeInitializeFabric } from './init';\nimport { shouldUseCodegenNativeComponent } from './utils';\n\nconst GestureHandlerRootViewNativeComponent = shouldUseCodegenNativeComponent()\n ? require('./fabric/RNGestureHandlerRootViewNativeComponent').default\n : requireNativeComponent('RNGestureHandlerRootView');\n\nexport interface GestureHandlerRootViewProps\n extends PropsWithChildren<ViewProps> {}\n\nexport default function GestureHandlerRootView(\n props: GestureHandlerRootViewProps\n) {\n // try initialize fabric on the first render, at this point we can\n // reliably check if fabric is enabled (the function contains a flag\n // to make sure it's called only once)\n maybeInitializeFabric();\n\n return <GestureHandlerRootViewNativeComponent {...props} />;\n}\n","import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native';\n\ninterface NativeProps extends ViewProps {}\n\nexport default codegenNativeComponent<NativeProps>('RNGestureHandlerRootView');\n","import {\n Platform,\n TouchableNativeFeedbackProps,\n ColorValue,\n} from 'react-native';\nimport * as React from 'react';\nimport { Component } from 'react';\nimport GenericTouchable, { GenericTouchableProps } from './GenericTouchable';\n\nexport type TouchableNativeFeedbackExtraProps = {\n borderless?: boolean;\n rippleColor?: number | null;\n rippleRadius?: number | null;\n foreground?: boolean;\n};\n\n/**\n * TouchableNativeFeedback behaves slightly different than RN's TouchableNativeFeedback.\n * There's small difference with handling long press ripple since RN's implementation calls\n * ripple animation via bridge. This solution leaves all animations' handling for native components so\n * it follows native behaviours.\n */\nexport default class TouchableNativeFeedback extends Component<\n TouchableNativeFeedbackProps & GenericTouchableProps\n> {\n static defaultProps = {\n ...GenericTouchable.defaultProps,\n useForeground: true,\n extraButtonProps: {\n // Disable hiding ripple on Android\n rippleColor: null,\n },\n };\n\n // could be taken as RNTouchableNativeFeedback.SelectableBackground etc. but the API may change\n static SelectableBackground = (rippleRadius?: number) => ({\n type: 'ThemeAttrAndroid',\n // I added `attribute` prop to clone the implementation of RN and be able to use only 2 types\n attribute: 'selectableItemBackground',\n rippleRadius,\n });\n static SelectableBackgroundBorderless = (rippleRadius?: number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackgroundBorderless',\n rippleRadius,\n });\n static Ripple = (\n color: ColorValue,\n borderless: boolean,\n rippleRadius?: number\n ) => ({\n type: 'RippleAndroid',\n color,\n borderless,\n rippleRadius,\n });\n\n static canUseNativeForeground = () => Platform.Version >= 23;\n\n getExtraButtonProps() {\n const extraProps: TouchableNativeFeedbackExtraProps = {};\n const { background } = this.props;\n if (background) {\n // I changed type values to match those used in RN\n // TODO(TS): check if it works the same as previous implementation - looks like it works the same as RN component, so it should be ok\n if (background.type === 'RippleAndroid') {\n extraProps['borderless'] = background.borderless;\n extraProps['rippleColor'] = background.color;\n } else if (background.type === 'ThemeAttrAndroid') {\n extraProps['borderless'] =\n background.attribute === 'selectableItemBackgroundBorderless';\n }\n // I moved it from above since it should be available in all options\n extraProps['rippleRadius'] = background.rippleRadius;\n }\n extraProps['foreground'] = this.props.useForeground;\n return extraProps;\n }\n render() {\n const { style = {}, ...rest } = this.props;\n return (\n <GenericTouchable\n {...rest}\n style={style}\n extraButtonProps={this.getExtraButtonProps()}\n />\n );\n }\n}\n","export * from './GestureHandlerNative';\n//# sourceMappingURL=GestureHandler.android.js.map","export { default } from './MaskedViewNative';\n//# sourceMappingURL=MaskedView.android.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * TouchableItem provides an abstraction on top of TouchableNativeFeedback and\n * TouchableOpacity to handle platform differences.\n *\n * On Android, you can pass the props of TouchableNativeFeedback.\n * On other platforms, you can pass the props of TouchableOpacity.\n */\nimport * as React from 'react';\nimport { Platform, TouchableNativeFeedback, TouchableOpacity, View } from 'react-native';\nconst ANDROID_VERSION_LOLLIPOP = 21;\nexport default function TouchableItem({\n borderless = false,\n pressColor = 'rgba(0, 0, 0, .32)',\n style,\n children,\n ...rest\n}) {\n /*\n * TouchableNativeFeedback.Ripple causes a crash on old Android versions,\n * therefore only enable it on Android Lollipop and above.\n *\n * All touchables on Android should have the ripple effect according to\n * platform design guidelines.\n * We need to pass the background prop to specify a borderless ripple effect.\n */\n if (Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP) {\n return /*#__PURE__*/React.createElement(TouchableNativeFeedback, _extends({}, rest, {\n useForeground: TouchableNativeFeedback.canUseNativeForeground(),\n background: TouchableNativeFeedback.Ripple(pressColor, borderless)\n }), /*#__PURE__*/React.createElement(View, {\n style: style\n }, React.Children.only(children)));\n } else {\n return /*#__PURE__*/React.createElement(TouchableOpacity, _extends({\n style: style\n }, rest), children);\n }\n}\n//# sourceMappingURL=TouchableItem.js.map","/**\n * Copyright (c) Facebook, 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 * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport * as React from 'react';\nimport {\n findNodeHandle,\n NativeSyntheticEvent,\n processColor,\n UIManager,\n} from 'react-native';\nimport AndroidDialogPickerNativeComponent from './AndroidDialogPickerNativeComponent';\nimport AndroidDropdownPickerNativeComponent from './AndroidDropdownPickerNativeComponent';\n\nconst MODE_DROPDOWN = 'dropdown';\n\nimport type {TextStyleProp} from 'StyleSheet';\n\ntype PickerAndroidProps = $ReadOnly<{|\n children?: React.Node,\n style?: ?TextStyleProp,\n selectedValue?: ?(number | string),\n enabled?: ?boolean,\n mode?: ?('dialog' | 'dropdown'),\n onBlur?: (e: NativeSyntheticEvent<undefined>) => mixed,\n onFocus?: (e: NativeSyntheticEvent<undefined>) => mixed,\n onValueChange?: ?(itemValue: ?(string | number), itemIndex: number) => mixed,\n prompt?: ?string,\n testID?: string,\n dropdownIconColor?: string,\n numberOfLines?: ?number,\n|}>;\n\ntype PickerRef = React.ElementRef<\n | typeof AndroidDialogPickerNativeComponent\n | typeof AndroidDropdownPickerNativeComponent,\n>;\n\n/**\n * Not exposed as a public API - use <Picker> instead.\n */\nfunction PickerAndroid(props: PickerAndroidProps, ref: PickerRef): React.Node {\n const pickerRef = React.useRef(null);\n\n React.useImperativeHandle(ref, () => {\n const viewManagerConfig = UIManager.getViewManagerConfig(\n props.mode === MODE_DROPDOWN\n ? 'RNCAndroidDialogPicker'\n : 'RNCAndroidDropdownPicker',\n );\n return {\n blur: () => {\n if (!viewManagerConfig.Commands) {\n return;\n }\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(pickerRef.current),\n viewManagerConfig.Commands.blur,\n [],\n );\n },\n focus: () => {\n if (!viewManagerConfig.Commands) {\n return;\n }\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(pickerRef.current),\n viewManagerConfig.Commands.focus,\n [],\n );\n },\n };\n });\n\n const [items, selected] = React.useMemo(() => {\n // eslint-disable-next-line no-shadow\n let selected = 0;\n // eslint-disable-next-line no-shadow\n const items = React.Children.toArray(props.children).map((child, index) => {\n if (child === null) {\n return null;\n }\n if (child.props.value === props.selectedValue) {\n selected = index;\n }\n\n const {enabled = true} = child.props;\n\n const {color, label, style = {}} = child.props;\n\n const processedColor = processColor(color);\n\n return {\n color: color == null ? null : processedColor,\n label,\n enabled,\n style: {\n ...style,\n color: style.color ? processColor(style.color) : null,\n backgroundColor: style.backgroundColor\n ? processColor(style.backgroundColor)\n : null,\n },\n };\n });\n return [items, selected];\n }, [props.children, props.selectedValue]);\n\n const onSelect = React.useCallback(\n ({nativeEvent}: PickerItemSelectSyntheticEvent) => {\n const {position} = nativeEvent;\n const onValueChange = props.onValueChange;\n\n if (onValueChange != null) {\n if (position >= 0) {\n const children = React.Children.toArray(props.children).filter(\n (item) => item != null,\n );\n const value = children[position].props.value;\n if (props.selectedValue !== value) {\n onValueChange(value, position);\n }\n } else {\n onValueChange(null, position);\n }\n }\n\n // The picker is a controlled component. This means we expect the\n // on*Change handlers to be in charge of updating our\n // `selectedValue` prop. That way they can also\n // disallow/undo/mutate the selection of certain values. In other\n // words, the embedder of this component should be the source of\n // truth, not the native component.\n if (pickerRef.current && selected !== position) {\n // TODO: using setNativeProps is deprecated and will be unsupported once Fabric lands. Use codegen to generate native commands\n pickerRef.current.setNativeProps({\n selected,\n });\n }\n },\n [props.children, props.onValueChange, props.selectedValue, selected],\n );\n\n const Picker =\n props.mode === MODE_DROPDOWN\n ? AndroidDropdownPickerNativeComponent\n : AndroidDialogPickerNativeComponent;\n\n const rootProps = {\n accessibilityLabel: props.accessibilityLabel,\n enabled: props.enabled,\n items,\n onBlur: props.onBlur,\n onFocus: props.onFocus,\n onSelect,\n prompt: props.prompt,\n selected,\n style: props.style,\n dropdownIconColor: processColor(props.dropdownIconColor),\n dropdownIconRippleColor: processColor(props.dropdownIconRippleColor),\n testID: props.testID,\n numberOfLines: props.numberOfLines,\n };\n\n return <Picker ref={pickerRef} {...rootProps} />;\n}\n\nexport default React.forwardRef<PickerAndroidProps>(PickerAndroid);\n","/**\n * Copyright (c) Facebook, 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 * @format\n * @flow\n */\n\n'use strict';\n\nimport {requireNativeComponent} from 'react-native';\n\nimport type {TextStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {HostComponent} from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type {PickerAndroidChangeEvent, PickerItem} from './types';\n\ntype NativeProps = $ReadOnly<{|\n enabled?: ?boolean,\n items: $ReadOnlyArray<PickerItem>,\n mode?: ?('dialog' | 'dropdown'),\n onSelect?: (event: PickerAndroidChangeEvent) => void,\n selected: number,\n prompt?: ?string,\n testID?: string,\n style?: ?TextStyleProp,\n accessibilityLabel?: ?string,\n numberOfLines?: ?number,\n|}>;\n\ntype DialogPickerNativeType = HostComponent<NativeProps>;\n\nexport default ((requireNativeComponent(\n 'RNCAndroidDialogPicker',\n): any): DialogPickerNativeType);\n","/**\n * Copyright (c) Facebook, 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 * @format\n * @flow\n */\n\n'use strict';\n\nimport {requireNativeComponent} from 'react-native';\n\nimport type {TextStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {HostComponent} from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type {PickerAndroidChangeEvent, PickerItem} from './types';\n\ntype NativeProps = $ReadOnly<{|\n enabled?: ?boolean,\n items: $ReadOnlyArray<PickerItem>,\n mode?: ?('dialog' | 'dropdown'),\n onSelect?: (event: PickerAndroidChangeEvent) => void,\n selected: number,\n prompt?: ?string,\n testID?: string,\n style?: ?TextStyleProp,\n accessibilityLabel?: ?string,\n numberOfLines?: ?number,\n|}>;\n\ntype DropdownPickerNativeType = HostComponent<NativeProps>;\n\nexport default ((requireNativeComponent(\n 'RNCAndroidDropdownPicker',\n): any): DropdownPickerNativeType);\n","/**\n * @flow\n */\n\nimport * as React from 'react';\nimport UnimplementedView from './UnimplementedView';\n\nfunction PickerIOS(): React.Node {\n return <UnimplementedView />;\n}\n\n/**\n * Fallback for non-iOS platforms\n */\nPickerIOS.Item = UnimplementedView;\n\nexport default PickerIOS;\n"],"x_facebook_sources":[[{"names":["<global>","global.$RefreshReg$","global.$RefreshSig$","<anonymous>","clear","define","metroRequire","initializingModuleIds.slice.map$argument_0","shouldPrintRequireCycle","isIgnored","regExps.some$argument_0","modules.every$argument_0","metroImportDefault","metroImportAll","fallbackRequireContext","guardedLoadModule","unpackModuleId","packModuleId","registerSegment","moduleIds.forEach$argument_0","loadModuleImplementation","unknownModuleError","metroRequire.Systrace.beginEvent","metroRequire.Systrace.endEvent","metroRequire.getModules","createHotReloadingObject","hot.accept","hot.dispose","metroHotUpdateModule","topologicalSort$argument_1","topologicalSort$argument_2","setTimeout$argument_0","topologicalSort","traverseDependentNodes","dependentNodes.forEach$argument_0","roots.forEach$argument_0","runUpdatedModule","performFullRefresh","isReactRefreshBoundary","shouldInvalidateReactRefreshBoundary","getRefreshBoundarySignature","registerExportsForReactRefresh","requireSystrace","requireRefresh"],"mappings":"AAA;wBC8B,QD;wBEC,MC,cH;AIE;CJO;AKK;CL2C;AMC;aCuB,6DD;CNe;AQI;oBCM;mCCC,+BD,CD;uBGG,8BH;CRC;AYC;CZoB;AaE;CbkC;uBcM;CdS;AeE;Cfe;AgBG;ChBO;AiBE;CjBE;AkBI;sBCgB;KDI;ClBE;AoBC;8BnBoD;SmBE;CpBmD;AqBC;CrBQ;gBsBI,QtB;cuBC,QvB;4BwBG;GxBE;iCyBG;cCK;ODG;eEC;OFE;GzBG;+B4BE;QC+C;SD6C;QEC,gBF;yCG0G;SHI;G5BG;0BgCC;ICI;6BCc;ODE;KDG;kBGC;KHE;GhCE;2BoCC;GpC8D;6BqCC;GrCwC;+BsCG;GtC0B;6CuCC;GvCgB;oCwCG;GxCqB;uCyCC;GzCiB;wB0CU;G1CK;uB2CC;G3CK"}],[{"names":["<global>","<anonymous>","inspect","stylizeNoColor","arrayToHash","array.forEach$argument_0","formatValue","keys.map$argument_0","formatPrimitive","formatError","formatArray","keys.forEach$argument_0","formatProperty","str.split.map$argument_0","reduceToSingleString","output.reduce$argument_0","isArray","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","objectToString","hasOwnProperty","getNativeLogFunction","Array.prototype.map.call$argument_1","repeat","Array.apply.map$argument_0","consoleTablePolyfill","columns.forEach$argument_0","joinRow","row.map$argument_0","columnWidths.map$argument_0","groupFormat","consoleGroupPolyfill","consoleGroupCollapsedPolyfill","consoleGroupEndPolyfill","consoleAssertPolyfill","Object.keys.forEach$argument_0","methodName","forEach$argument_0","stub","global.console.assert"],"mappings":"AAA;iBCiB;ECwB;GDO;EEE;GFE;EGE;kBCG;KDE;GHG;EKE;wBC2F;ODS;GLM;EOE;GPgB;EQE;GRE;ESE;iBCkB;KDM;GTE;EWE;mBC4B;eDE;qBCQ;iBDE;GX0B;EaE;+BCE;KDI;Gbc;EeI;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;EoBE;GpBE;EqBE;GrBE;EsBE;GtBE;EuBE;GvBE;EwBE;GxBE;EyBE;GzBE;E0BE;G1BK;E2BE;G3BE;E4BE;G5BE;E6BE;G7BE;CDG;A+BmB;S9BC;yB+BM;S/BE;G8BmC;C/BC;AiCE;yCCC;GDE;CjCC;AmCE;kBCwB;GDQ;EEI;wBCC;KDG;GFG;oCIE;GJE;CnCc;AwCQ;CxCG;AyCE;CzCG;A0CE;C1CG;A2CE;C3CG;A4CE;C5CI;iC6CmC;8BCG;SDG;K7CE;gE+CK;8BDE;SCE;K/CE;EgDG,kBhD;IiDU;KjDI"}],[{"names":["<global>","onError","ErrorUtils.setGlobalHandler","ErrorUtils.getGlobalHandler","ErrorUtils.reportError","ErrorUtils.reportFatalError","ErrorUtils.applyWithGuard","ErrorUtils.applyWithGuardIfNeeded","ErrorUtils.inGuard","ErrorUtils.guard","guarded"],"mappings":"AAA;mCCqB;CDK;EEW;GFE;EGC;GHE;EIC;GJE;EKC;GLG;EMC;GNsB;EOC;GPe;EQC;GRE;ESC;ICY;KDQ;GTG"}],[{"names":["<global>","<anonymous>","entries","values"],"mappings":"AAA;CCW;qBCU;KDa;oBEQ;KFa;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["_interopRequireDefault","<global>"],"mappings":"AAA;CCI"}],[{"names":["<global>","registerRootComponent","AppRegistry.registerComponent$argument_1"],"mappings":"AAA;eCI;8CCO,wBD;CDqB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","Object.defineProperties$argument_1.deviceYearClass.get","Object.defineProperties$argument_1.installationId.get","Object.defineProperties$argument_1.__unsafeNoWarnManifest.get","Object.defineProperties$argument_1.__unsafeNoWarnManifest2.get","Object.defineProperties$argument_1.manifest.get","Object.defineProperties$argument_1.manifest2.get","Object.defineProperties$argument_1.expoConfig.get","Object.defineProperties$argument_1.__rawManifest_TEST.get","Object.defineProperties$argument_1.__rawManifest_TEST.set","Object.defineProperty$argument_2.get","isAppManifest","isManifest","getManifest"],"mappings":"AAA;QCmD;SDM;QEI;SFE;QGU;SHM;QII;SJM;QKI;SLM;QMI;SNM;QOI;SPY;QQI;SRE;QSC;STE;QUQ;SVM;AWI;CXE;AYC;CZE;AaC;CbiB"}],[{"names":["<global>","_defineProperty"],"mappings":"AAA;ACC;CDa"}],[{"names":["<global>","_toPropertyKey"],"mappings":"AAA;ACE;CDG"}],[{"names":["_typeof","<anonymous>","<global>"],"mappings":"AAA;yGCG;GDE,GC;GDE;CEC"}],[{"names":["<global>","_toPrimitive"],"mappings":"AAA;ACC;CDS"}],[{"names":["<global>","_objectWithoutProperties"],"mappings":"AAA;ACC;CDc"}],[{"names":["_objectWithoutPropertiesLoose","<global>"],"mappings":"AAA;CCW"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","module.exports.get__AccessibilityInfo","module.exports.get__ActivityIndicator","module.exports.get__Button","module.exports.get__DatePickerIOS","module.exports.get__DrawerLayoutAndroid","module.exports.get__FlatList","module.exports.get__Image","module.exports.get__ImageBackground","module.exports.get__InputAccessoryView","module.exports.get__KeyboardAvoidingView","module.exports.get__Modal","module.exports.get__Pressable","module.exports.get__ProgressBarAndroid","module.exports.get__ProgressViewIOS","module.exports.get__RefreshControl","module.exports.get__SafeAreaView","module.exports.get__ScrollView","module.exports.get__SectionList","module.exports.get__Slider","module.exports.get__StatusBar","module.exports.get__Switch","module.exports.get__Text","module.exports.get__TextInput","module.exports.get__Touchable","module.exports.get__TouchableHighlight","module.exports.get__TouchableNativeFeedback","module.exports.get__TouchableOpacity","module.exports.get__TouchableWithoutFeedback","module.exports.get__View","module.exports.get__VirtualizedList","module.exports.get__VirtualizedSectionList","module.exports.get__ActionSheetIOS","module.exports.get__Alert","module.exports.get__Animated","module.exports.get__Appearance","module.exports.get__AppRegistry","module.exports.get__AppState","module.exports.get__BackHandler","module.exports.get__Clipboard","module.exports.get__DeviceInfo","module.exports.get__DevSettings","module.exports.get__Dimensions","module.exports.get__Easing","module.exports.get__findNodeHandle","module.exports.get__I18nManager","module.exports.get__InteractionManager","module.exports.get__Keyboard","module.exports.get__LayoutAnimation","module.exports.get__Linking","module.exports.get__LogBox","module.exports.get__NativeDialogManagerAndroid","module.exports.get__NativeEventEmitter","module.exports.get__Networking","module.exports.get__PanResponder","module.exports.get__PermissionsAndroid","module.exports.get__PixelRatio","module.exports.get__PushNotificationIOS","module.exports.get__Settings","module.exports.get__Share","module.exports.get__StyleSheet","module.exports.get__Systrace","module.exports.get__ToastAndroid","module.exports.get__TurboModuleRegistry","module.exports.get__UIManager","module.exports.get__unstable_batchedUpdates","module.exports.get__useAnimatedValue","module.exports.get__useColorScheme","module.exports.get__useWindowDimensions","module.exports.get__UTFSequence","module.exports.get__Vibration","module.exports.get__YellowBox","module.exports.get__DeviceEventEmitter","module.exports.get__DynamicColorIOS","module.exports.get__NativeAppEventEmitter","module.exports.get__NativeModules","module.exports.get__Platform","module.exports.get__PlatformColor","module.exports.get__processColor","module.exports.get__requireNativeComponent","module.exports.get__RootTagContext","module.exports.get__unstable_enableLogBox","<anonymous>","module.exports.get__ColorPropType","module.exports.get__EdgeInsetsPropType","module.exports.get__PointPropType","module.exports.get__ViewPropTypes","Object.defineProperty$argument_2.get"],"mappings":"AAA;EC0G;GDG;EEC;GFE;EGC;GHE;EIE;GJQ;EKE;GLE;EMC;GNE;EOC;GPE;EQC;GRE;ESC;GTE;EUC;GVG;EWC;GXE;EYC;GZE;EaE;GbQ;EcE;GdQ;EeC;GfE;EgBC;GhBE;EiBC;GjBE;EkBC;GlBE;EmBC;GnBQ;EoBC;GpBE;EqBC;GrBE;EsBC;GtBE;EuBC;GvBE;EwBC;GxBE;EyBC;GzBE;E0BC;G1BE;E2BC;G3BE;E4BC;G5BE;E6BC;G7BE;E8BC;G9BE;E+BC;G/BE;EgCG;GhCE;EiCC;GjCE;EkCG;GlCG;EmCC;GnCE;EoCC;GpCE;EqCC;GrCE;EsCC;GtCE;EuCC;GvCQ;EwCC;GxCE;EyCC;GzCE;E0CC;G1CE;E2CC;G3CE;E4CC;G5CE;E6CC;G7CE;E8CC;G9CE;E+CC;G/CE;EgDC;GhDE;EiDC;GjDE;EkDC;GlDE;EmDC;GnDG;EoDC;GpDE;EqDC;GrDE;EsDC;GtDE;EuDC;GvDE;EwDC;GxDE;EyDC;GzDQ;E0DC;G1DE;E2DC;G3DE;E4DC;G5DE;E6DC;G7DE;E8DE;G9DE;E+DC;G/DE;EgEC;GhEE;EiEC;GjEM;EkEC;GlEE;EmEC;GnEE;EoEC;GpEE;EqEC;GrEE;EsEC;GtEE;EuEC;GvEE;EwEG;GxEE;EyEC;GzEG;E0EC;G1EE;E2EC;G3EE;E4EC;G5EE;E6EC;G7EG;E8EC;G9EE;E+EC;G/EI;EgFC;GhFE;EiFC;WCC;ODG;GjFC;EmFE;GnFS;EoFC;GpFS;EqFC;GrFS;EsFC;GtFS;IuFU;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFQ;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFS;KvFO;IuFQ;KvFO;IuFQ;KvFO;IuFQ;KvFO;IuFQ;KvFQ"}],[{"names":["<global>","invariant","format.replace$argument_1"],"mappings":"AAA;gBCoB;8BCkB,uCD;CDQ"}],[{"names":["<global>","warnOnce"],"mappings":"AAA;ACqB;CDQ"}],[{"names":["<global>","isBoldTextEnabled","Promise$argument_0","isGrayscaleEnabled","isInvertColorsEnabled","isReduceMotionEnabled","prefersCrossFadeTransitions","isReduceTransparencyEnabled","isScreenReaderEnabled","isAccessibilityServiceEnabled","addEventListener","remove","setAccessibilityFocus","sendAccessibilityEvent","announceForAccessibility","announceForAccessibilityWithOptions","getRecommendedTimeoutMillis"],"mappings":"AAA;ECsF;yBCI;ODS;GDE;EGU;yBDI;OCS;GHE;EIU;yBFI;OES;GJE;EKU;uBHC;KGiB;GLC;EMU;uBJC;KIgB;GNC;EOU;yBLI;OKS;GPE;EQU;uBNC;KMiB;GRC;ESY;uBPC;KOa;GTC;EUoC;SCO,iBD;GVG;EYO;GZE;EaK;GbU;EcO;GdM;EeQ;GfgB;EgBO;yBdE;OcS;GhBI"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","EventEmitter","addListener","registration.remove","emit","removeAllListeners","listenerCount","allocate"],"mappings":"AAA;eC8D;ECS;MCS;ODE;GDI;EGS;GHY;EIK;GJQ;EKK;GLG;CDC;AOE;CPc"}],[{"names":["<global>","_toConsumableArray"],"mappings":"AAA;ACI;CDE"}],[{"names":["<global>","_arrayWithoutHoles"],"mappings":"AAA;ACC;CDE"}],[{"names":["_arrayLikeToArray","<global>"],"mappings":"AAA;CCI"}],[{"names":["_iterableToArray","<global>"],"mappings":"AAA;CCE"}],[{"names":["<global>","_unsupportedIterableToArray"],"mappings":"AAA;ACC;CDO"}],[{"names":["_nonIterableSpread","<global>"],"mappings":"AAA;CCE"}],[{"names":["_classCallCheck","<global>"],"mappings":"AAA;CCI"}],[{"names":["<global>","_defineProperties","_createClass"],"mappings":"AAA;ACC;CDQ;AEC;CFO"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","renderElement","findHostInstance_DEPRECATED","findNodeHandle","dispatchCommand","sendAccessibilityEvent","unmountComponentAtNodeAndRemoveContainer","unstable_batchedUpdates","isProfilingRenderer"],"mappings":"AAA;OCe;CDqB;OEE;CFM;OGE;CHM;OIE;CJoB;OKE;CLQ;OMM;CNM;OOE;CPS;OQE;CRE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","module.exports.get__BatchedBridge","module.exports.get__ExceptionsManager","module.exports.get__Platform","module.exports.get__RCTEventEmitter","module.exports.get__ReactNativeViewConfigRegistry","module.exports.get__TextInputState","module.exports.get__UIManager","module.exports.get__deepDiffer","module.exports.get__deepFreezeAndThrowOnMutationInDev","module.exports.get__flattenStyle","module.exports.get__ReactFiberErrorDialog","module.exports.get__legacySendAccessibilityEvent","module.exports.get__RawEventEmitter","module.exports.get__CustomEvent"],"mappings":"AAA;EC6B;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE;EOC;GPE;EQC;GRE;ESC;GTI;EUC;GVE;EWC;GXE;EYC;GZE;EaC;GbE;EcC;GdE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","MessageQueue","constructor","spy","prototype.__spy","callFunctionReturnFlushedQueue","__guard$argument_0","invokeCallbackAndReturnFlushedQueue","flushedQueue","getEventLoopRunningTime","registerCallableModule","_lazyCallableModules.name","registerLazyCallableModule","getCallableModule","callNativeSyncHook","processCallbacks","_successCallbacks.forEach$argument_0","enqueueNativeCall","isValidArgument","replacer","createDebugLookup","setReactNativeMicrotasksCallback","__guard","__shouldPauseOnThrow","__callReactNativeMicrotasks","__callFunction","__invokeCallback"],"mappings":"AAA;ACwC;ECgB;GD4B;EEM;qCCE;ODM;GFM;EIE;iBCK;KDE;GJG;EME;iBDI;KCE;GNG;EOE;iBFC;KEE;GPK;EQE;GRE;ESE;sCCC,YD;GTC;EWE;sCDG;KCQ;GXC;EYE;GZG;EaE;GbkB;EcE;yCCe;WDK;Gd6B;EgBE;8BCiB;OD6B;uBEK;OFS;GhByC;EmBE;GnBS;EoBK;GpBE;EqBM;GrBU;EsBO;GtBM;EuBE;GvBM;EwBE;GxBiC;EyBE;GzB+C;CDC"}],[{"names":["<global>","isEnabled","setEnabled","beginEvent","endEvent","beginAsyncEvent","endAsyncEvent","counterEvent"],"mappings":"AAA;OCgC;CDI;OEQ,gDF;OGM;CHM;OIK;CJI;OKO;CLiB;OMM;CNe;OOK;CPO"}],[{"names":["<global>","deepFreezeAndThrowOnMutationInDev","throwOnImmutableMutation","identity"],"mappings":"AAA;AC6B;CDyC;AEI;CFS;AGE;CHE"}],[{"names":["<global>","createStringifySafeWithLimits","replacer","stringifySafe"],"mappings":"AAA;OCgB;ECiB;GDgD;SEE;GFgC;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","SyntheticError","unstable_setExceptionDecorator","preprocessException","reportException","handleException","reactConsoleErrorHandler","args.map$argument_0","installConsoleErrorReporter"],"mappings":"AAA;ACe;CDE;AEiB;CFI;AGE;CHY;AIM;CJ2D;AKe;CLmB;AMI;WCqD,2DD;CNc;AQM;CRa"}],[{"names":["<global>","_inherits"],"mappings":"AAA;ACC;CDe"}],[{"names":["_setPrototypeOf","<global>"],"mappings":"AAA;CCM"}],[{"names":["<global>","_possibleConstructorReturn"],"mappings":"AAA;ACE;CDO"}],[{"names":["_assertThisInitialized","<global>"],"mappings":"AAA;CCK"}],[{"names":["_getPrototypeOf","<global>"],"mappings":"AAA;CCK"}],[{"names":["<global>","_wrapNativeSuper","Wrapper"],"mappings":"AAA;ACI;ICW;KDE;CDY"}],[{"names":["_isNativeFunction","<global>"],"mappings":"AAA;CCE"}],[{"names":["<global>","_construct"],"mappings":"AAA;ACE;CDc"}],[{"names":["_isNativeReflectConstruct","Reflect.construct$argument_2","<global>"],"mappings":"AAA;kECK,cD;CEK"}],[{"names":["<global>","convertHermesStack","parseErrorStack","stacktraceParser.parse.map$argument_0"],"mappings":"AAA;ACiB;CDqB;AEE;6CCU;QDG;CFG"}],[{"names":["<global>","parseLine","parseHermesStack"],"mappings":"AAA;ACmE;CD+B;iBEE;CFoB"}],[{"names":["<global>","parse","lines.reduce$argument_0","parseChrome","parseWinjs","parseGecko","parseJSC","parseNode"],"mappings":"AAA;ACU;sBCE;GDQ;CDC;AGI;CH6B;AII;CJc;AKK;CLwB;AMI;CNc;AOI;CPc"}],[{"names":["<global>","ExceptionsManager.reportFatalException","ExceptionsManager.reportSoftException","ExceptionsManager.updateExceptionMessage","ExceptionsManager.dismissRedbox","ExceptionsManager.reportException"],"mappings":"AAA;EC8D;GDM;EEC;GFM;EGC;GHM;EIC;GJK;EKC;GLU"}],[{"names":["<global>","requireModule","get","getEnforcing"],"mappings":"AAA;ACkB;CDgB;OEE;CFE;OGE;CHQ"}],[{"names":["<global>","genModule","methods.forEach$argument_0","module.getConstants","loadModule","genMethod","promiseMethodWrapper","Promise$argument_0","BatchedBridge.enqueueNativeCall$argument_3","BatchedBridge.enqueueNativeCall$argument_4","nonPromiseMethodWrapper","arrayContains","updateErrorWithErrorData","forEach$argument_0","defineLazyObjectProperty$argument_2.get"],"mappings":"AAA;AC2B;oBC2B;KDW;0BEK,oCF;CDY;AIK;CJQ;AKE;SCG;yBCK;UCK,qBD;UEC;aFM;ODE;KDC;SKE;KLiC;CLK;AWE;CXE;AYE;CZO;Iac;eCc,qCD;KbG"}],[{"names":["<global>","_slicedToArray"],"mappings":"AAA;ACI;CDE"}],[{"names":["_arrayWithHoles","<global>"],"mappings":"AAA;CCE"}],[{"names":["_iterableToArrayLimit","<global>"],"mappings":"AAA;CC0B"}],[{"names":["_nonIterableRest","<global>"],"mappings":"AAA;CCE"}],[{"names":["<global>","defineLazyObjectProperty","getValue","setValue"],"mappings":"AAA;ACe;ECgB;GDc;EEC;GFS;CDQ"}],[{"names":["<global>","register","global.RN$registerCallableModule$argument_1"],"mappings":"AAA;ECe;0DCE,kBD;GDI"}],[{"names":["<global>","processEventTypes","exports.register","exports.get"],"mappings":"AAA;AC0C;CD+B;mBEO;CFc;cGO;CH2B"}],[{"names":["<global>","currentlyFocusedInput","currentlyFocusedField","focusInput","blurInput","focusField","blurField","focusTextInput","blurTextInput","registerInput","unregisterInput","isTextInput"],"mappings":"AAA;AC2C;CDE;AEM;CFQ;AGE;CHI;AIE;CJI;AKE;CLM;AME;CNM;AOO;CPgC;AQO;CRwB;ASE;CTY;AUE;CVW;AWE;CXY"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ECwuB,4BD"}],[{"names":["<global>","setRuntimeConfigProvider","get","ReactNativeViewConfigRegistry.register$argument_1","getWithFallback_DEPRECATED","FallbackNativeComponent","hasNativeViewConfig","unstable_hasStaticViewConfig"],"mappings":"AAA;OCiC;CDY;OEQ;+CCI;GDwC;CFI;OIW;kCCiB;GDE;CJG;AME;CNG;OOQ;CPK"}],[{"names":["<global>","getNativeComponentAttributes","attachDefaultEventTypes","merge","getDifferForType","getProcessorForType"],"mappings":"AAA;ACuB;CD2E;AEE;CFkB;AGG;CH0B;AIE;CJoB;AKE;CLsB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","processAspectRatio","aspectRatio.split.map$argument_0","matches.some$argument_0"],"mappings":"AAA;ACc;6CCe,aD;2CEa,4BF;CDkB"}],[{"names":["<global>","processColor"],"mappings":"AAA;ACqB;CDoC"}],[{"names":["<global>","normalizeColor"],"mappings":"AAA;ACiB;CDc"}],[{"names":["<global>","normalizeColor","hue2rgb","hslToRgb","hwbToRgb","call","callWithSlashSeparator","commaSeparatedCall","getMatchers","parse255","parse360","parse1","parsePercentage","normalizeKeyword"],"mappings":"AAA;ACc;CDgJ;AEE;CFiB;AGE;CHY;AIE;CJgB;AKK;CLE;AME;CNQ;AOE;CPE;AQI;CR2B;ASE;CTS;AUE;CVG;AWE;CXS;AYE;CZU;AaE;Cb4J"}],[{"names":["<global>","processFontVariant"],"mappings":"AAA;ACc;CDa"}],[{"names":["<global>","processTransform","_getKeyAndValueFromCSSTransform","_validateTransforms","transform.forEach$argument_0","_validateTransform"],"mappings":"AAA;ACuB;CD0B;yDEqB;CF6E;AGE;oBCC;GDU;CHC;AKE;CLiH"}],[{"names":["<global>","sizesDiffer"],"mappings":"AAA;oBCe;CDQ"}],[{"names":["<global>","getSourceCodeScriptURL","getDevServerURL","_coerceLocalScriptURL","getScriptURL","setCustomSourceTransformer","resolveAssetSource"],"mappings":"AAA;ACuB;CDY;AEE;CFc;AGE;CHc;AIE;CJK;AKE;CLI;AMM;CNmB"}],[{"names":["<global>","getScaledAssetPath","getAssetPathInDrawableFolder","AssetSourceResolver","constructor","isLoadedFromServer","isLoadedFromFileSystem","defaultAsset","assetServerURL","scaledAssetPath","scaledAssetURLNearBundle","resourceIdentifierWithoutScale","drawableFolderInBundle","fromSource"],"mappings":"AAA;ACmC;CDK;AEK;CFK;AGE;ECO;GDI;EEE;GFE;EGE;GHE;EIE;GJY;EKM;GLU;EMM;GNE;EOM;GPQ;EQQ;GRM;ESO;GTG;EUE;GVQ;CHI"}],[{"names":["<global>","PixelRatio","get","getFontScale","getPixelSizeForLayoutSize","roundToNearestPixel","startDetecting"],"mappings":"AAA;AC0D;ECyB;GDE;EEa;GFE;EGO;GHE;EIQ;GJG;EKG,0BL;CDC"}],[{"names":["<global>","Dimensions","get","set","addEventListener","RCTDeviceEventEmitter.addListener$argument_1"],"mappings":"AAA;AC2B;ECkB;GDG;EEQ;GFiC;EGU;GHU;CDC;IKU;KLE"}],[{"names":["<global>","getConstants"],"mappings":"AAA;EC+C;GDQ"}],[{"names":["<global>","pickScale","setUrlCacheBreaker","getUrlCacheBreaker"],"mappings":"AAA;OCe;CDe;OEE;CFE;OGE;CHW"}],[{"names":["<global>","getAndroidAssetSuffix","getAndroidResourceFolderName","getAndroidResourceIdentifier","getBasePath"],"mappings":"AAA;AC2B;CDM;AEa;CFmB;AGE;CHM;AIE;CJG"}],[{"names":["<global>","registerAsset","getAssetByID"],"mappings":"AAA;AC2B;CDI;AEE;CFE"}],[{"names":["<global>","getConstants"],"mappings":"AAA;ECwB;GDQ"}],[{"names":["<global>","processColorArray","processColorElement"],"mappings":"AAA;ACkB;CDI;AEE;CFQ"}],[{"names":["<global>","insetsDiffer"],"mappings":"AAA;qBC2B;CDU"}],[{"names":["<global>","matricesDiffer"],"mappings":"AAA;uBCqB;CD2B"}],[{"names":["<global>","pointsDiffer"],"mappings":"AAA;qBCoB;CDI"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","errorMessageForMethod","module.exports.getViewManagerConfig","module.exports.hasViewManagerConfig","module.exports.getConstants","module.exports.getConstantsForViewManager","module.exports.getDefaultEventTypes","module.exports.lazilyLoadView","module.exports.createView","module.exports.updateView","module.exports.focus","module.exports.blur","module.exports.findSubviewIn","module.exports.dispatchViewManagerCommand","module.exports.measure","module.exports.measureInWindow","module.exports.viewIsDescendantOf","module.exports.measureLayout","module.exports.measureLayoutRelativeToParent","module.exports.setJSResponder","module.exports.clearJSResponder","module.exports.configureNextLayoutAnimation","module.exports.removeSubviewsFromContainerWithID","module.exports.replaceExistingNonRootView","module.exports.setChildren","module.exports.manageChildren","module.exports.setLayoutAnimationEnabledExperimental","module.exports.sendAccessibilityEvent","module.exports.showPopupMenu","module.exports.dismissPopupMenu"],"mappings":"AAA;8BCgB;4DDG;wBEG;GFO;wBGC;GHE;gBIC;GJG;8BKC;GLG;wBMC;GNG;kBOC;GPG;cQC;+DRK;cSC;sDTC;SUC;iDVC;QWC;gDXC;iBYC;kEZU;8BaC;+EbI;WcC;4DdU;mBeC;oEfG;sBgBC;uEhBI;iBiBC;kEjBU;iCkBC;yElBU;kBmBC;0DnBC;oBoBC,cpB;gCqBC;wErBK;qCsBC;6EtBC;8BuBC;sEvBC;ewBC;uDxBC;kByBC;mEzBO;yC0BG;G1BI;0B2BG;kE3BC;iB4BC;kE5BK;oB6BC;4D7BC"}],[{"names":["<global>","unstable_hasComponent"],"mappings":"AAA;OCe;CDW"}],[{"names":["<global>","getConstants","getViewManagerConfig","UIManagerJS.createView","UIManagerJS.getConstants","UIManagerJS.getViewManagerConfig","UIManagerJS.hasViewManagerConfig","lazifyViewManagerConfig","defineLazyObjectProperty$argument_2.get","Object.keys.forEach$argument_0","NativeUIManager.getConstants.ViewManagerNames.forEach$argument_0"],"mappings":"AAA;ACyB;CDM;AEE;CF4C;EGO;GHa;EIC;GJE;EKC;GLE;EMC;GNE;AOU;WCK;2CCI;WDK;ODE;WCG;2CCK;WDK;ODE;CPG;sCSQ;GTE;0DUE;WFE,iEE;GVE;sCSI;aDM;SCO;GTG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","verifyComponentAttributeEquivalence","lefthandObjectDiff","compare","getConfigWithoutViewProps","Object.keys.filter$argument_0","Object.keys.filter.reduce$argument_0","stringifyViewConfig","JSON.stringify$argument_1"],"mappings":"AAA;eCsC;CDsB;AEI;ECG;GDkB;CFe;OIE;YCS,+CD;6BEC;KFG;CJC;OOE;ICG;KDK;CPG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","DynamicallyInjectedByGestureHandler","ConditionallyIgnoredEventHandlers","isIgnored"],"mappings":"AAA;OCkB;CDG;OEe;CFU;OGE;CHK"}],[{"names":["<global>","validate","stringifyValidationResult","differences.map$argument_0","accumulateDifferences","ifObject"],"mappings":"AAA;OC4C;CD+B;OEE;uBCQ;KDU;CFG;AIE;CJ0D;AKE;CLE"}],[{"names":["<global>","createViewConfig","composeIndexers"],"mappings":"AAA;OCoB;CDqB;AEE;CFO"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","A","B.isMounted","B.enqueueForceUpdate","B.enqueueReplaceState","B.enqueueSetState","E","E.prototype.setState","E.prototype.forceUpdate","F","G","M","N","O","escape","a.replace$argument_1","Q","R","R$argument_4","S","T","b.then$argument_0","b.then$argument_1","exports.Children.forEach","S$argument_1","exports.Children.count","exports.Children.toArray","exports.Children.only","exports.cloneElement","exports.createContext","exports.createFactory","exports.createRef","exports.forwardRef","exports.lazy","exports.memo","exports.startTransition","exports.unstable_act","exports.useCallback","exports.useContext","exports.useDebugValue","exports.useDeferredValue","exports.useEffect","exports.useId","exports.useImperativeHandle","exports.useInsertionEffect","exports.useLayoutEffect","exports.useMemo","exports.useReducer","exports.useRef","exports.useState","exports.useSyncExternalStore","exports.useTransition"],"mappings":"AAA;kXCS,yHD;iBEC,oBF,oBG,YH,qBI,YJ,iBK,YL,uBM,4EN;qBOC,4PP,yBQ,kER,CS,cT,wBU,4EV;AWE,8aX;AYC,6FC,kEC,yEC,wBD,Ed,agB,iGhB;AiBC,0TC,qBD;0ZjBC;AmBC,+DD,mCC,WC,8DC,qED,CE,qEF,uGpB;oJuBC,oBC,mCD,IvB,OyB,wBD,eC,WzB,S0B,uBF,qBE,M1B,M2B,mH3B;qB4BE;iH5BC,uB6B,kM7B,+C8B,mD9B,mB+B,gC/B;mBgCC,wChC,uCiC,uEjC,ckC,kElC,yBmC,+EnC,sBoC,oFpC;oBqCC,gDrC,oBsC,2CtC,uBuC,YvC,0BwC,iDxC,mByC,8CzC,e0C,oC1C,6B2C,4D3C;2B4CC,uD5C,yB6C,oD7C,iB8C,4C9C,oB+C,mD/C,gBgD,uChD,kBiD,yCjD,8BkD,6DlD;sBmDC,4CnD"}],[{"names":["<global>","codegenNativeCommands","options.supportedCommands.forEach$argument_0","commandObj.command"],"mappings":"AAA;ACgB;oCCG;0BCC;KDE;GDC;CDG"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICoC,4BD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","unstable_setLogListeners","deepDiffer"],"mappings":"AAA;ACoB;CDE;mBEK;CFsE"}],[{"names":["<global>","flattenStyle"],"mappings":"AAA;ACe;CDqB"}],[{"names":["<global>","showErrorDialog"],"mappings":"AAA;EC0B;GDgC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","CustomEvent","constructor"],"mappings":"AAA;ACoB;ECG;GDK;CDC"}],[{"names":["<global>","EventPolyfill","constructor","composedPath","preventDefault","initEvent","stopImmediatePropagation","stopPropagation","setSyntheticEvent"],"mappings":"AAA;ACkI;EC+B;GD8B;EEE;GFE;EGE;GHO;EIE;GJI;EKE;GLE;EME;GNK;EOE;GPE;CDC"}],[{"names":["<global>","invokeGuardedCallbackImpl","reporter.onError","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","executeDispatch","executeDirectDispatch","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","assign$argument_1.preventDefault","assign$argument_1.stopPropagation","assign$argument_1.persist","assign$argument_1.destructor","SyntheticEvent.Interface.currentTarget","SyntheticEvent.Interface.timeStamp","SyntheticEvent.extend","E","Class","createOrGetPooledEvent","releasePooledEvent","addEventPoolingTo","SyntheticEvent.extend$argument_0.touchHistory","isStartish","isMoveish","timestampForTouch","getTouchIdentifier","recordTouchStart","recordTouchMove","recordTouchEnd","ResponderTouchHistoryStore.instrument","ResponderTouchHistoryStore.recordTouchTrack","accumulate","accumulateInto","forEachAccumulated","changeResponder","getParent","traverseTwoPhase","getListener","accumulateDirectionalDispatches","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","accumulateTwoPhaseDispatchesSingle","ResponderEventPlugin._getResponder","ResponderEventPlugin.extractEvents","ResponderEventPlugin.injection.injectGlobalResponderHandler","recomputePluginOrdering","publishRegistrationName","getListeners","stateNode.canonical._eventListeners.mangledImperativeRegistrationName.forEach$argument_0","listenerFnWrapper","listeners.push$argument_0","accumulateListenersAndInstances","accumulateDirectionalDispatches$1","traverseTwoPhase$1","accumulateTwoPhaseDispatchesSingle$1","accumulateDirectDispatchesSingle$1","injectedNamesToPlugins$jscomp$inline_223.ReactNativeBridgeEventPlugin.extractEvents","getInstanceFromInstance","getFiberCurrentPropsFromNode","getNodeFromInstance","ResponderEventPlugin.injection.injectGlobalResponderHandler$argument_0.onChange","getIteratorFn","getComponentNameFromType","getComponentNameFromFiber","getNearestMountedFiber","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiber","findCurrentHostFiberImpl","mountSafeCallback_NOT_REALLY_SAFE","<anonymous>","defaultDiffer","restoreDeletedValuesInNestedArray","diffNestedProperty","addNestedProperty","clearNestedProperty","diffProperties","batchedUpdatesImpl","batchedUpdates","executeDispatchesAndReleaseTopLevel","dispatchEvent","batchedUpdates$argument_0","onCommitRoot","clz32Fallback","getHighestPriorityLanes","getNextLanes","computeExpirationTime","getLanesToRetrySynchronouslyOnError","claimNextTransitionLane","createLaneMap","markRootUpdated","markRootFinished","markRootEntangled","lanesToEventPriority","shim$1","ReactFabricHostComponent","_proto.blur","_proto.focus","_proto.measure","_proto.measureInWindow","_proto.measureLayout","_proto.setNativeProps","_proto.addEventListener_unstable","_proto.removeEventListener_unstable","optionsObj.filter$argument_0","createTextInstance","cloneHiddenInstance","describeComponentFrame","describeFunctionComponentFrame","createCursor","pop","push","getMaskedContext","isContextProvider","popContext","pushTopLevelContextObject","processChildContext","pushContextProvider","invalidateContextProvider","is","flushSyncCallbacks","popTreeContext","shallowEqual","describeFiber","resolveDefaultProps","resetContextDependencies","popProvider","scheduleContextWorkOnParentPath","prepareToReadContext","readContext","pushConcurrentUpdateQueue","enqueueConcurrentHookUpdate","markUpdateLaneFromFiberToRoot","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","entangleTransitions","enqueueCapturedUpdate","processUpdateQueue","commitUpdateQueue","applyDerivedStateFromProps","classComponentUpdater.isMounted","classComponentUpdater.enqueueSetState","classComponentUpdater.enqueueReplaceState","classComponentUpdater.enqueueForceUpdate","checkShouldComponentUpdate","constructClassInstance","callComponentWillReceiveProps","mountClassInstance","coerceRef","current","throwOnInvalidObjectType","resolveLazy","ChildReconciler","deleteChild","deleteRemainingChildren","mapRemainingChildren","useFiber","placeChild","placeSingleChild","updateTextNode","updateElement","updatePortal","updateFragment","createChild","updateSlot","updateFromMap","reconcileChildrenArray","oldFiber.forEach$argument_0","reconcileChildrenIterator","reconcileChildFibers","requiredContext","pushHostContainer","popHostContainer","pushHostContext","popHostContext","findFirstSuspended","resetWorkInProgressVersions","throwInvalidHookError","areHookInputsEqual","renderWithHooks","mountWorkInProgressHook","updateWorkInProgressHook","basicStateReducer","updateReducer","rerenderReducer","updateMutableSource","updateSyncExternalStore","pushStoreConsistencyCheck","updateStoreInstance","subscribeToStore","subscribe$argument_0","checkIfSnapshotChanged","forceStoreRerender","mountState","pushEffect","updateRef","mountEffectImpl","updateEffectImpl","mountEffect","updateEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","updateDeferredValueImpl","startTransition","updateId","dispatchReducerAction","dispatchSetState","isRenderPhaseUpdate","enqueueRenderPhaseUpdate","entangleTransitionUpdate","HooksDispatcherOnMount.useCallback","HooksDispatcherOnMount.useImperativeHandle","HooksDispatcherOnMount.useLayoutEffect","HooksDispatcherOnMount.useInsertionEffect","HooksDispatcherOnMount.useMemo","HooksDispatcherOnMount.useReducer","HooksDispatcherOnMount.useRef","HooksDispatcherOnMount.useDeferredValue","HooksDispatcherOnMount.useTransition","HooksDispatcherOnMount.useMutableSource","HooksDispatcherOnMount.useSyncExternalStore","HooksDispatcherOnMount.useId","HooksDispatcherOnUpdate.useState","HooksDispatcherOnUpdate.useDeferredValue","HooksDispatcherOnUpdate.useTransition","HooksDispatcherOnRerender.useState","HooksDispatcherOnRerender.useDeferredValue","HooksDispatcherOnRerender.useTransition","createCapturedValueAtFiber","createCapturedValue","logCapturedError","setTimeout$argument_0","createRootErrorUpdate","lane.callback","createClassErrorUpdate","lane.payload","attachPingListener","reconcileChildren","updateForwardRef","updateMemoComponent","updateSimpleMemoComponent","updateOffscreenComponent","markRef","updateFunctionComponent","updateClassComponent","finishClassComponent","pushHostRootContext","mountSuspenseOffscreenState","updateSuspenseComponent","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","updateDehydratedSuspenseComponent","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","updateSuspenseListComponent","resetSuspendedCurrentOnMountInLegacyMode","bailoutOnAlreadyFinishedWork","attemptEarlyBailoutIfNoScheduledUpdate","hadNoMutationsEffects","appendAllChildren","appendAllChildrenToContainer","updateHostContainer","updateHostComponent$1","updateHostText$1","cutOffTailIfNeeded","bubbleProperties","completeWork","unwindWork","safelyDetachRef","safelyCallDestroy","commitBeforeMutationEffects","commitHookEffectListUnmount","commitHookEffectListMount","detachFiberAfterEffects","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","attachSuspenseRetryListeners","wakeables.forEach$argument_0","recursivelyTraverseMutationEffects","commitMutationEffectsOnFiber","commitReconciliationEffects","commitLayoutEffects","requestEventTime","requestUpdateLane","scheduleUpdateOnFiber","ensureRootIsScheduled","performConcurrentWorkOnRoot","recoverFromConcurrentError","queueRecoverableErrors","isRenderConsistentWithExternalStores","markRootSuspended$1","performSyncWorkOnRoot","popRenderLanes","prepareFreshStack","handleError","pushDispatcher","renderDidSuspendDelayIfPossible","renderRootSync","workLoopSync","workLoopConcurrent","performUnitOfWork","completeUnitOfWork","commitRoot","commitRootImpl","scheduleCallback$1$argument_1","flushPassiveEffects","captureCommitPhaseErrorOnRoot","captureCommitPhaseError","pingSuspendedRoot","retryTimedOutBoundary","retryDehydratedSuspenseBoundary","resolveRetryWakeable","beginWork$1","scheduleCallback$1","FiberNode","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createFiberFromTypeAndProps","createFiberFromFragment","createFiberFromOffscreen","createFiberFromText","createFiberFromPortal","FiberRootNode","createPortal","findHostInstance","updateContainer","emptyFindFiberByHostInstance","findNodeHandle","onRecoverableError","devToolsConfig$jscomp$inline_938.rendererConfig.getInspectorDataForViewTag","internals$jscomp$inline_1180.findHostInstanceByFiber","exports.createPortal","exports.dispatchCommand","exports.findHostInstance_DEPRECATED","exports.render","exports.sendAccessibilityEvent","exports.stopSurface","updateContainer$argument_3","exports.unmountComponentAtNode"],"mappings":"AAA;ACkB;CDO;aEM;KFG;AGE;CHI;AIC;CJuB;AKK;CLK;AMC;CNa;AOE;CPE;AQC;CRE;ASC;CTyB;kBUE;GVQ;mBWC;GXO;WYC;GZE;caE;GbO;iBcK;GdE;aeI;GfE;wBgBI;ECC,eD;EEC;GFE;ChBW;AmBE;CnBY;AoBC;CpBO;AqBC;CrBI;gBsBE;GtBE;AuBE;CvBE;AwBC;CxBE;AyBW;CzBE;A0BC;C1BI;A2BC;C3B4B;A4BC;C5BW;A6BC;C7BW;gB8BG;K9BE;sB+BC;K/BgC;AgCG;ChCY;AiCC;CjCY;AkCC;ClCE;AmCG;CnCS;AoCyD;CpCI;AqCC;CrCI;AsCC;CtCc;AuCC;CvCe;AwCC;CxCgB;AyCC;CzCM;A0CC;C1CI;mB2CE;K3CE;mB4CE;K5C0Q;oC6CG;O7CE;A8CK;C9C4D;A+CC;C/CO;AgDI;cCsC;gCCK;SDgB;2BEE;aFS;KDG;ChDM;AoDO;CpDyB;AqDC;CrDQ;AsDC;CtDW;AuDC;CvDS;AwDC;CxDa;qByDc;OzDuC;A0D8B;C1DE;+B2DC;C3DE;sB4DE;C5DI;Y6DE;G7DsB;A8DuB;C9DM;A+DC;C/D8C;AgEC;ChEuD;AiEC;CjEa;AkEC;ClEG;AmEC;CnE2E;AoEC;CpEG;AqEC;CrEQ;AsEC;SCC;GDM;CtEC;AwEK;CxEQ;AyEC;CzEqC;A0EC;C1EqD;A2EC;C3EgB;A4EC;C5EgB;A6EC;C7EoF;A8EC;C9EE;A+EE;C/EQ;AgFE;ChFkB;AiFC;iBCM;GDoC;CjFC;AmFY;CnFU;AoFI;CpFG;AqFG;CrFgD;AsFC;CtFwC;AuFC;CvFwC;AwFC;CxFG;AyFC;CzFK;A0FC;C1FG;A2FC;C3FO;A4FC;C5FkB;A6FC;C7FS;A8FE;C9FS;A+FC;C/FI;gCuEuB;EyBC;GzBU;gB0BE;G1BE;iB2BC;G3BE;mB4BC;G5BO;2B6BC;G7BO;yB8BC;G9BiB;0B+BC,a/B;qCgCC;GhC0B;wCiCC;8CCO;ODK;GjCC;CvEE;A0GC;C1GiB;A2GG;C3GY;A4GC;C5GI;A6GC;C7GI;A8GI;C9GE;A+GC;C/GG;AgHC;ChHI;AiHK;CjHiB;AkHC;ClHG;AmHC;CnHG;AoHC;CpHO;AqHC;CrHc;AsHC;CtHS;AuHC;CvHkB;AwHC;CxHE;AyHK;CzHwB;A0HO;C1Ha;A2HG;C3HqB;A4HC;C5HqB;A6HC;C7HU;A8HK;C9HE;A+HC;C/HI;AgIC;ChIY;AiIC;CjIQ;AkIC;ClIkB;AmIE;CnII;AoIC;CpIO;AqIC;CrIY;AsIE;CtIQ;AuIC;CvIU;AwIC;CxIS;AyIC;CzIkB;A0IC;C1IS;A2IC;C3I4C;A4IC;C5I+H;A6IC;C7IqB;A8IE;C9Ie;a+IE;G/II;mBgJC;GhJW;uBiJC;GjJY;sBkJC;GlJW;AmJE;CnJe;AoJC;CpJyB;AqJC;CrJa;AsJC;CtJiC;AuJC;gBC+B;ODI;CvJgB;AyJC;CzJS;A0JC;C1JG;A2JC;ECC;GDO;EEC;GFM;EGC;GHO;EIC;GJK;EKC;GLc;EMC;GNK;EOC;GPU;EQC;GRmC;ESC;GTe;EUC;GVe;EWC;GX0D;EYC;GZgC;EaC;GbmD;EcC;uBCsF;ODE;GdE;EgBC;uBDuE;OCE;GhBE;EiBC;GjBqK;C3JE;A6KO;C7KM;A8KC;C9KM;A+KC;C/KI;AgLC;ChLiB;AiLC;CjLG;AkLE;ClLsB;AmLE;CnLI;AoLU;CpLI;AqLC;CrLK;AsLC;CtL2C;AuLC;CvLY;AwLC;CxL6B;AyLC;CzLE;A0LC;C1L6E;A2LC;C3LsB;A4LC,iC5L;A6LC;C7L+B;A8LC;C9LY;A+LC;C/LI;AgMC;mBCC;GDE;ChMC;AkMC;ClMS;AmMC;CnMG;AoMC;CpMmB;AqMC;CrMe;AsMC;CtME;AuMC;CvMS;AwMC;CxMc;AyMC;CzME;A0MC;C1ME;A2MC;C3ME;A4MC;C5ME;A6MC;MtIK;OsIE;MtIM;OsIE;C7ME;A8MC;C9MQ;A+MC,6B/M;AgNC;ChNY;AiNC;CjNa;AkNC;ClNY;AmNC;CnNa;AoNC;CpNE;AqNC;CrNkB;AsNC;CtNuC;AuNC;CvNM;AwNC;CxNO;AyNC;CzNQ;iB0NuB;K1NM;yB2NG;K3NQ;qB4NC;K5NE;wB6NC;K7NE;a8NC;K9NM;gB+NC;K/NmB;YgOC;KhOI;sBiOG;KjOE;mBkOC;KlOM;sBmOC,anO;0BoOC;KpOwB;WqOC;KrOO;csOc;KtOE;sBuOE;KvOG;mBwOC;KxOI;cyOiB;KzOE;sB0OE;K1OK;mB2OC;K3OI;A4OM;C5OiB;A6OC;C7OO;A8OQ;eCU;KDE;C9OE;AgPE;kBCK;GDG;ChPE;AkPC;mBCM;KDE;oBDC;KCE;qBDK;KCU;ClPE;AoPC;CpPc;AqPG;CrPU;AsPC;CtP4B;AuPC;CvPoD;AwPC;CxPgC;AyPC;CzPiD;A0PC;C1PO;A2PC;C3P8B;A4PC;C5PsM;A6PC;C7PuC;A8PC;C9PW;A+PE;C/PE;AgQC;ChQmI;AiQC;CjQS;AkQC;ClQkB;AmQC;CnQ4J;AoQC;CpQK;AqQC;CrQuB;AsQC;CtQsF;AuQC;CvQM;AwQC;CxQoB;AyQC;CzQyE;A0QC;C1QS;oB2QK;C3QoC;A4QC;C5QoC;sB6QC;C7QU;wB8QC;C9QwC;mB+QC;C/QY;AgRC;ChRuB;AiRC;CjRuB;AkRC;ClRoU;AmRC;CnRqD;AoRG;CpRU;AqRC;CrRM;AsRE;CtR2D;AuRC;CvRmB;AwRC;CxRa;AyRC;CzRe;A0RC;C1RQ;A2RC;C3RmG;A4RC;sBCO;KDI;C5RE;A8RC;C9RkB;A+RC;C/R+E;AgSC;ChSI;AiSC;CjSoH;AkS+B;ClSM;AmSC;CnSyB;AoSC;CpSoB;AqSC;CrSsE;AsSC;CtSoL;AuSC;CvSU;AwSC;CxSO;AySC;CzSiC;A0SC;C1SW;A2SC;C3S8B;A4SC;C5SG;A6SC;C7SuE;A8SC;C9SiL;A+SC;C/SI;AgTC;ChTW;AiTC;CjTwB;AkTC;ClTE;AmTC;CnTG;AoTC;CpTK;AqTC;CrTsC;AsTC;CtTiB;AuTC;uCC8B;KDG;CvTsD;AyTC;CzTgJ;A0TC;C1TQ;A2TC;C3T6C;A4TC;C5Te;A6TC;C7TY;A8TC;C9TK;A+TC;C/TkB;cgUE;ChUob;AiUC;CjUE;AkUC;ClUa;AmUC;CnUE;AoUC;CpUG;AqUC;CrUS;AsUC;CtUmC;AuUC;CvUyE;AwUC;CxUI;AyUC;CzUM;A0UC;C1UI;A2UC;C3Uc;A4UC;C5UmB;A6UC;C7UU;A8UC;C9UY;A+UC;C/U4D;AgVC;ChVE;AiVC;CjVY;AkVC;ClVE;qB8EC;C9EW;kCmVQ;OnVI;sCuEC;OvEI;2BoVkB;GpVG;uBqVwB;CrVO;0BsVC;CtVW;sCuVC;CvVW;iBwVG;CxVmC;iCyVC;CzVU;sB0VC;sCCG;KDE;C1VC;iC4VC;C5VE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","global.performance.now"],"mappings":"AAA;2BCqB;GDG"}],[{"names":["<global>","handleError"],"mappings":"AAA;sBCqB;GDO"}],[{"names":["<global>","polyfillGlobal$argument_1"],"mappings":"AAA;4BCoC,2BD"}],[{"names":["<global>","polyfillObjectProperty","polyfillGlobal"],"mappings":"AAA;AC2B;CDsB;AEE;CFE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","valuePromise","Promise.resolve","Promise$argument_0","iterableToArray","Promise.all","res","val.then$argument_0","p.then$argument_0","onSettledFulfill","onSettledReject","mapAllSettled","Promise.allSettled","Promise.reject","Promise.race","iterableToArray.forEach$argument_0","Promise.prototype._catch","getAggregateError","promiseAny","resolveOnce","rejectionCheck","promises.forEach$argument_0"],"mappings":"AAA;ACiB;CDK;kBEC;yBCiB;ODE;CFI;sBIE;CJU;cKE;qBFG;IGG;mBCQ;WDE;mBEM;aFE;KHS;GEI;CLC;ASE;CTE;AUC;CVE;AWC;CXY;qBYC;CZE;iBaE;qBVC;GUE;CbC;ecE;qBXC;oCYC;KZE;GWC;CdC;6BgBI;ChBE;AiBE;CjBW;ckBE;qBfC;IgBK;KhBK;IiBE;KjBM;uBkBK;OlBE;GeE;ClBC"}],[{"names":["<global>","noop","getThen","tryCallOne","tryCallTwo","Promise","Promise.prototype.then","safeThen","self.constructor$argument_0","handle","handleResolved","setImmediate$argument_0","resolve","reject","finale","Handler","doResolve","tryCallTwo$argument_1","tryCallTwo$argument_2"],"mappings":"AAA;ACI,kBD;AEqB;CFO;AGE;CHO;AIC;CJO;AKI;CLa;yBMK;CNO;AOE;8BCC;GDI;CPC;ASC;CTsB;AUE;eCC;GDgB;CVC;AYC;CZgC;AaE;CbO;AcC;CdW;AeE;CfI;AgBQ;2BCE;GDI,EE;GFI;ChBK"}],[{"names":["<global>","Promise.prototype._finally","then$argument_0","Promise.resolve.then$argument_0","then$argument_1"],"mappings":"AAA;4BCK;mBCC;qCCC;KDE;GDC,EG;qCDC;KCE;GHC;CDC"}],[{"names":["<global>","hasNativeConstructor$argument_0","polyfillGlobal$argument_1"],"mappings":"AAA;4CCwB,eD;uCEU;GFQ"}],[{"names":["<global>","isNativeFunction","hasNativeConstructor"],"mappings":"AAA;ACiB;CDE;AEM;CFG"}],[{"names":["<global>","<anonymous>","define","wrap","tryCatch","Generator","GeneratorFunction","GeneratorFunctionPrototype","define$argument_2","defineIteratorMethods","forEach$argument_0","exports.isGeneratorFunction","exports.mark","exports.awrap","AsyncIterator","invoke","PromiseImpl.resolve.then$argument_0","PromiseImpl.resolve.then$argument_1","enqueue","callInvokeWithMethodAndArg","PromiseImpl$argument_0","exports.async","iter.next.then$argument_0","makeInvokeMethod","maybeInvokeDelegate","pushTryEntry","resetTryEntry","Context","exports.keys","next","values","doneResult","Context.prototype.reset","Context.prototype.stop","Context.prototype.dispatchException","handle","Context.prototype.abrupt","Context.prototype.complete","Context.prototype.finish","Context.prototype._catch","Context.prototype.delegateYield"],"mappings":"AAA;eCO;ECY;GDQ;aCK;KDE;EEG;GFW;EGa;GHM;EIe,uBJ;EKC,+BL;EMC,wCN;4COK;GPE;EQ6B;wCCC;gCFC;OEE;KDC;GRC;gCUE;GVQ;iBWE;GXS;kBYM;GZE;EaE;ICC;yDCU;WDE,EE;WFE;+CCG;SDM,EE;SFI;KDE;III;MCC;+BCC;SDE;ODC;KJqB;GbK;uDOG;GPE;kBoBM;yBCU;SDE;GpBC;EsBE;WRG;KQwE;GtBC;EuBM;GvB8E;6BOa;GPE;yBOE;GPE;EwBE;GxBa;EyBE;GzBK;E0BE;G1BO;iB2BE;WCU;KDe;G3BC;E6BE;2BDY;SCa;G7BQ;E8BG;G9BE;W+BK;K/BwB;UgCE;KhCU;uBiCE;MCM;ODa;KjCuC;YmCE;KnCgC;coCE;KpCiB;YqCE;KrCS;asCE;KtCgB;mBuCE;KvCc;CDS"}],[{"names":["<global>","defineLazyTimer","polyfillGlobal$argument_1"],"mappings":"AAA;0BCmC;yBCW,wCD;GDC;IEoB,oDF;IEI,sDF;MES,4DF;MEI,4DF;mCEW,uCF;IEK,mDF"}],[{"names":["<global>","_getFreeIndex","_allocateCallback","_callTimer","callback$argument_0.timeRemaining","_callReactNativeMicrotasksPass","_clearIndex","_freeCallback","setTimeout","_allocateCallback$argument_0","setInterval","queueReactNativeMicrotask","requestAnimationFrame","requestIdleCallback","<anonymous>","setTimeout$argument_0","cancelIdleCallback","clearTimeout","clearInterval","clearReactNativeMicrotask","cancelAnimationFrame","callTimers","callIdleCallbacks","errors.forEach$argument_0","callReactNativeMicrotasks","emitTimeDriftWarning","createTimer","deleteTimer","setSendIdleEvents"],"mappings":"AAA;ACgD;CDM;AEE;CFO;AGO;uBC6C;SDQ;CHc;AKM;CLwB;AME;CNI;AOE;CPmB;cQY;MCM,iCD;GRK;eUM;MDM,iCC;GVK;6BWU;MFE,iCE;GXK;yBYK;GZI;uBaO;UCW;WDO;oDEO;OFU;GbI;sBgBE;GhBgB;gBiBE;GjBE;iBkBE;GlBE;6BmBE;GnBM;wBoBE;GpBE;cqBM;aPkB;aOE;GrBO;qBsBE;mBCsB;0BRC;OQE,ID;GtBE;EwBM;mBDG;0BRC;OQE,IC;GxBE;EyBK;GzBM;A0BG;C1BQ;A2BE;C3BG;A4BE;C5BG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","setImmediate","global.queueMicrotask$argument_0","clearImmediate"],"mappings":"AAA;ACuB;wBCmB;GDO;CDG;AGK;CHE"}],[{"names":["<global>","queueMicrotask","then._catch$argument_0","setTimeout$argument_0"],"mappings":"AAA;eCqB;WCa;iBCE;ODE,ID;CDE"}],[{"names":["<global>","polyfillGlobal$argument_1"],"mappings":"AAA;iCCoB,0CD;2BCC,oCD;wBCE,uCD;0BCC,yCD;0BCC,yCD;2BCC,0CD;4BCC,uCD;uBCC,6BD;uBCC,6BD;6BCC,mCD;sBCC,gCD;kCCC,4CD;ECG,uED;ECI,mED"}],[{"names":["<global>","XMLHttpRequestEventTarget","XMLHttpRequest","setInterceptor","constructor","_reset","get__responseType","set__responseType","get__responseText","get__response","__didCreateRequest","__didUploadProgress","__didReceiveResponse","__didReceiveData","__didReceiveIncrementalData","__didReceiveDataProgress","__didCompleteResponse","_clearSubscriptions","forEach$argument_0","getAllResponseHeaders","sort$argument_0","sortedHeaders.map$argument_0","getResponseHeader","setRequestHeader","setTrackingName","setPerformanceLogger","open","send","RCTNetworking.addListener$argument_1","doSend","abort","setResponseHeaders","Object.keys.reduce$argument_0","setReadyState","addEventListener"],"mappings":"AAA;ACgF;CDQ;AEK;ECqD;GDE;EEE;GFG;EGE;GHkB;EIE;GJE;EKE;GL2B;EME;GNW;EOE;GP8C;EQG;GRU;ESG;GTa;EUE;GV0B;EWE;GXU;EYE;GZoB;EaE;Gbc;EcG;Gd8B;EeE;wCCC;KDI;GfE;EiBE;6DC8B;KDQ;aEK;SFE;GjBG;EoBE;GpBG;EqBE;GrBK;EsBK;GtBG;EuBK;GvBG;EwBE;GxBgB;EyBE;sDCY;yCDC;6DCI;0CDC;yDCI;sCDC;oECI;iDDC;iECI;8CDC;8DCI;2CDC;mBEY;KF8B;GzBM;E4BE;G5BmB;E6BE;OCK;KDG;G7BC;E+BE;G/BiB;EgCG;GhCS;CFC"}],[{"names":["<global>","_get"],"mappings":"AAA;ACC;CDe"}],[{"names":["<global>","_superPropBase"],"mappings":"AAA;ACC;CDM"}],[{"names":["<global>","uuidv4","xxxxxxxxXxxx4xxxYxxxXxxxxxxxxxxx.replace$argument_1","createBlobCollector","BlobManager","createFromParts","parts.map$argument_0","items.reduce$argument_0","createFromOptions","release","addNetworkingHandler","addWebSocketHandler","removeWebSocketHandler","sendOverSocket"],"mappings":"AAA;ACyB;iECC;GDI;CDC;AGS;CHM;AIK;ECS;4BCO;KDoB;8BEC;KFM;GDW;EIM;GJe;EKK;GLQ;EMM;GNI;EOM;GPI;EQM;GRI;ESK;GTI;CJC"}],[{"names":["<global>","getConstants","addNetworkingHandler","addWebSocketHandler","removeWebSocketHandler","sendOverSocket","createFromParts","release"],"mappings":"AAA;IC+B;KDK;IEC;KFE;IGC;KHE;IIC;KJE;IKC;KLE;IMC;KNE;IOC;KPE"}],[{"names":["<global>","Blob","constructor","set__data","get__data","slice","close","get__size","get__type"],"mappings":"AAA;ACmD;ECQ;GDG;EEQ;GFE;EGG;GHM;EIE;GJyB;EKc;GLI;EMM;GNE;EOO;GPE;CDC"}],[{"names":["<global>","register","unregister","has"],"mappings":"AAA;iBCY;CDM;mBEE;CFO;YGE;CHE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","PerformanceLogger","PerformanceLogger#addTimespan","PerformanceLogger#append","PerformanceLogger#clear","PerformanceLogger#clearCompleted","PerformanceLogger#close","PerformanceLogger#currentTimestamp","PerformanceLogger#getExtras","PerformanceLogger#getPoints","PerformanceLogger#getPointExtras","PerformanceLogger#getTimespans","PerformanceLogger#hasTimespan","PerformanceLogger#isClosed","PerformanceLogger#logEverything","PerformanceLogger#markPoint","PerformanceLogger#removeExtra","PerformanceLogger#setExtra","PerformanceLogger#startTimespan","PerformanceLogger#stopTimespan","createPerformanceLogger"],"mappings":"AAA;AC4D;ECO;GD8B;EEE;GFW;EGE;GHO;EIE;GJW;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbmB;EcE;GdwB;EeE;GfI;EgBE;GhBkB;EiBE;GjBiC;EkBE;GlB2C;CDC;eoBO;CpBE"}],[{"names":["<global>","infoLog"],"mappings":"AAA;ACe;CDE"}],[{"names":["<global>","convertRequestBody"],"mappings":"AAA;ACwB;CDgB"}],[{"names":["<global>","binaryToBase64"],"mappings":"AAA;ACc;CDc"}],[{"names":["<global>","getLens","byteLength","_byteLength","toByteArray","tripletToBase64","encodeChunk","fromByteArray"],"mappings":"AAA;ACqB;CDiB;AEG;CFK;AGE;CHE;AIE;CJ4C;AKE;CLK;AME;CNW;AOE;CP+B"}],[{"names":["<global>","FormData","constructor","append","getAll","_parts.filter$argument_0","_parts.filter.map$argument_0","getParts","_parts.map$argument_0"],"mappings":"AAA;ACkD;ECG;GDE;EEE;GFO;EGE;cCE,wBD;WEC,oBF;GHC;EME;2BCC;KDoB;GNC;CDC"}],[{"names":["<global>","pd","setCancelFlag","Event","Event.prototype.get__type","Event.prototype.get__target","Event.prototype.get__currentTarget","Event.prototype.composedPath","Event.prototype.get__NONE","Event.prototype.get__CAPTURING_PHASE","Event.prototype.get__AT_TARGET","Event.prototype.get__BUBBLING_PHASE","Event.prototype.get__eventPhase","Event.prototype.stopPropagation","Event.prototype.stopImmediatePropagation","Event.prototype.get__bubbles","Event.prototype.get__cancelable","Event.prototype.preventDefault","Event.prototype.get__defaultPrevented","Event.prototype.get__composed","Event.prototype.get__timeStamp","Event.prototype.get__srcElement","Event.prototype.get__cancelBubble","Event.prototype.set__cancelBubble","Event.prototype.get__returnValue","Event.prototype.set__returnValue","Event.prototype.initEvent","defineRedirectDescriptor","get","set","defineCallDescriptor","value","defineWrapper","CustomEvent","getWrapper","wrapEvent","isStopped","setEventPhase","setCurrentTarget","setPassiveListener","isObject","getListeners","defineEventAttributeDescriptor","defineEventAttribute","defineCustomEventTarget","CustomEventTarget","EventTarget","EventTarget.prototype.addEventListener","EventTarget.prototype.removeEventListener","EventTarget.prototype.dispatchEvent"],"mappings":"AAA;AC2C;CDQ;AEM;CFqB;AGY;CHwB;IIQ;KJE;IKM;KLE;IMM;KNE;IOK;KPM;IQM;KRE;ISM;KTE;IUM;KVE;IWM;KXE;IYM;KZE;IaM;KbO;IcM;KdQ;IeM;KfE;IgBM;KhBE;IiBM;KjBE;IkBM;KlBE;ImBM;KnBE;IoBM;KpBE;IqBO;KrBE;IsBO;KtBE;IuBC;KvBU;IwBO;KxBE;IyBC;KzBI;I0BS;K1BE;A2BwB;QCE;SDE;QEC;SFE;C3BI;A8BQ;QCE;SDG;C9BI;AgCS;ICO;KDE;ChCuB;AkCQ;ClCW;AmCS;CnCG;AoCQ;CpCE;AqCS;CrCE;AsCS;CtCE;AuCS;CvCE;AwC4B;CxCE;AyCQ;CzCQ;A0CQ;QdE;ScU;QbE;SayC;C1CI;A2CQ;C3CM;A4CQ;ICE;KDE;C5Ce;A8Ce;C9CkB;I+CW;K/C6C;IgDS;KhD+B;IiDO;KjDoE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","<anonymous>","isDataView","normalizeName","normalizeValue","iteratorFor","iterator.next","iterator.@@iterator","Headers","headers.forEach$argument_0","Object.getOwnPropertyNames.forEach$argument_0","Headers.prototype.append","Headers.prototype._delete","Headers.prototype.get","Headers.prototype.has","Headers.prototype.set","Headers.prototype.forEach","Headers.prototype.keys","forEach$argument_0","Headers.prototype.values","Headers.prototype.entries","consumed","fileReaderReady","Promise$argument_0","reader.onload","reader.onerror","readBlobAsArrayBuffer","readBlobAsText","readArrayBufferAsText","bufferClone","Body","_initBody","blob","arrayBuffer","text","formData","json","normalizeMethod","Request","Request.prototype.clone","decode","body.trim.split.forEach$argument_0","parseHeaders","preProcessedHeaders.split.map$argument_0","preProcessedHeaders.split.map.forEach$argument_0","Response","Response.prototype.clone","Response.error","Response.redirect","exports.DOMException","fetch","abortXhr","xhr.onload","setTimeout$argument_0","xhr.onerror","xhr.ontimeout","xhr.onabort","fixUrl","request.headers.forEach$argument_0","xhr.onreadystatechange"],"mappings":"AAA,CC;CDI,QC;ECyB;GDE;EEsB;GFQ;EGE;GHK;EIG;YCE;ODG;kCEI;OFE;GJI;EOE;sBCI;ODE;sBCE;ODE;kDEE;OFE;GPE;6BUE;GVK;gCWE;GXE;0BYE;GZG;0BaE;GbE;0BcE;GdE;8BeE;GfM;2BgBE;iBCE;KDE;GhBE;6BkBE;iBDE;KCE;GlBE;8BmBE;iBFE;KEE;GnBE;EoBM;GpBK;EqBE;uBCC;sBCC;ODE;uBEC;OFE;KDC;GrBC;EyBE;GzBK;E0BE;G1BK;E2BE;G3BQ;E4BE;G5BQ;E6BE;qBCG;KD0C;kBEG;OFe;yBGE;OHmB;gBIG;KJe;sBKG;OLE;gBMG;KNE;G7BG;EoCK;GpCG;EqCE;GrCwD;4BsCE;GtCE;EuCE;eCK;ODO;GvCE;EyCE;WCU;ODE;eEC;OFO;GzCE;E4CI;G5Ce;6B6CI;G7CO;mB8CE;G9CI;sB+CI;G/CM;2BgDM;KhDK;EiDK;uB3BC;M4BS;O5BE;mB6BE;mBCQ;SDE;O7BC;oB+BE;mBDC;SCE;O/BC;sBgCE;mBFC;SEE;OhCC;oBiCE;mBHC;SGE;OjCC;MkCE;OlCM;yDbuB;SaE;gCmCE;SnCE;iCoCM;SpCK;K2BI;GjDC;CDkB"}],[{"names":["<global>","WebSocket","constructor","get__binaryType","set__binaryType","close","send","ping","_close","_unregisterEvents","_subscriptions.forEach$argument_0","_registerEvents","_eventEmitter.addListener$argument_1"],"mappings":"AAA;ACsE;EC2B;GDmD;EEE;GFE;EGE;GHgB;EIE;GJO;EKE;GLyB;EME;GNM;EOE;GPS;EQE;gCCC,eD;GRE;EUE;yDCE;ODc;sDCC;ODO;wDCC;ODc;wDCC;ODmB;GVE;CDC"}],[{"names":["<global>","NativeEventEmitter","constructor","addListener","remove","emit","removeAllListeners","listenerCount"],"mappings":"AAA;eCsC;ECK;GD6B;EEE;cCa;ODO;GFE;EIE;GJO;EKE;GLS;EME;GNE;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","WebSocketEvent","constructor"],"mappings":"AAA;ACmB;ECC;GDG;CDC"}],[{"names":["<global>","File","constructor","get__name","get__lastModified"],"mappings":"AAA;ACoB;ECI;GDY;EEK;GFG;EGK;GHE;CDC"}],[{"names":["<global>","FileReader","constructor","_reset","_setReadyState","readAsArrayBuffer","readAsDataURL","NativeFileReaderModule.readAsDataURL.then$argument_0","NativeFileReaderModule.readAsDataURL.then$argument_1","readAsText","NativeFileReaderModule.readAsText.then$argument_0","NativeFileReaderModule.readAsText.then$argument_1","abort","get__readyState","get__error","get__result"],"mappings":"AAA;ACoC;ECc;GDG;EEE;GFI;EGE;GHa;EIE;GJE;EKE;MCU;ODM;MEC;OFM;GLE;EQE;MCU;ODM;MEC;OFM;GRE;EWE;GXS;EYE;GZE;EaE;GbE;EcE;GdE;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","URLSearchParams","URLSearchParams#constructor","Object.keys.forEach$argument_0","URLSearchParams#append","URLSearchParams#_delete","URLSearchParams#get","URLSearchParams#getAll","URLSearchParams#has","URLSearchParams#set","URLSearchParams#sort","URLSearchParams#@@iterator","URLSearchParams#toString","_searchParams.reduce$argument_0","validateBaseUrl","URL","createObjectURL","revokeObjectURL","constructor","get__hash","get__host","get__hostname","get__href","get__origin","get__password","get__pathname","get__port","get__protocol","get__search","get__searchParams","toJSON","toString","get__username"],"mappings":"AAA;OCuD;ECG;kCCE,oCD;GDE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUI;GVE;EWE;qCCK;KDQ;GXC;CDC;AcE;CdK;OeE;ECI;GDK;EEE;GFE;EGG;GH2B;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbE;EcE;GdK;EeE;GfE;EgBE;GhBO;EiBE;GjBE;CfC"}],[{"names":["<global>","AbortSignal","AbortSignal#constructor","AbortSignal#get__aborted","createAbortSignal","abortSignal","AbortController","AbortController#constructor","AbortController#get__signal","AbortController#abort","getSignal"],"mappings":"AAA;ACc;ICI;KDG;IEI;KFM;CDC;AIK;CJK;AKI;CLM;AMqB;ICI;KDE;IEI;KFE;IGI;KHE;CNC;AUQ;CVM"}],[{"names":["<global>","global.alert"],"mappings":"AAA;iBCiB;GDI"}],[{"names":["<global>","Alert","alert","onAction","onError","prompt","callbackOrButtons.forEach$argument_0","RCTAlertManager.alertWithArgs$argument_1"],"mappings":"AAA;ACyC;ECC;uBCuD;ODY;sBEC,oDF;GDG;EIE;kCCkB;SDe;QEgB;SFG;GJG;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","polyfillObjectProperty$argument_2"],"mappings":"AAA;6CCoB,mBD"}],[{"names":["<global>","registerModule","registerModule$argument_1"],"mappings":"AAA;mBCiB;oEDc;2BEG,wCF;6BEE,kCF;8BEE,2CF;mCEC;4CFC;yBEE,oCF;EEG,8DF;2CEE;qDFC;0CEE;iDFC;8BEI,uCF;8BEE,+CF"}],[{"names":["<global>","captureHeap"],"mappings":"AAA;eCa;GDY"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","poke"],"mappings":"AAA;QCa;GDsB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","logIfNoNativeHook","logToConsole","setWarningHandler"],"mappings":"AAA;EC0B;GDU;EEG;GFQ;EGE;GHE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","setup","enable","disable","registerBundle","log"],"mappings":"AAA;ECiB,UD;EEC;GFK;EGC,YH;EIC,mBJ;EKC,QL"}],[{"names":["<global>","__fetchSegment","SegmentFetcher.fetchSegment$argument_2","__getSegment","SegmentFetcher.getSegment$argument_2"],"mappings":"AAA;ACoB;ICc;KDc;CDE;AGI;ICmB;KDe;CHE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","componentProviderInstrumentationHook","setWrapperComponentProvider","enableArchitectureIndicator","registerConfig","config.forEach$argument_0","registerComponent","runnables.appKey.run","registerRunnable","registerSection","getAppKeys","getSectionKeys","getSections","getRunnable","getRegistry","setComponentProviderInstrumentationHook","runApplication","BugReporting.addSource$argument_1","setSurfaceProps","unmountApplicationComponentAtRootTag","registerHeadlessTask","registerCancellableHeadlessTask$argument_2","<anonymous>","registerCancellableHeadlessTask","startHeadlessTask","taskProvider.then$argument_0","taskProvider.then._catch$argument_0","NativeHeadlessJsTaskSupport.notifyTaskRetry.then$argument_0","cancelHeadlessTask","registerComponent$argument_1","NoOp"],"mappings":"AAA;EC+D,6CD;EEW;GFE;EGE;GHE;EIE;mBCC;KDgB;GJC;EMO;WCQ;ODoB;GNM;EQE;GRG;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZI;EaE;GbE;EcE;GdK;EeE;GfI;EgBO;QCa,SD;GhBa;EkBK;QDc,SC;GlBY;EmBO;GnBE;EoBO;gECE,MC;KFE;GpBC;EuBO;GvBY;EwBO;YCU;ODI;aEC;YCQ;aDI;OFG;GxBC;E4BO;G5BM;4C6BS,qB7B;M6BI;QCC;S9BE"}],[{"names":["<global>","defaultExtras","addFileSource$argument_1","BugReporting","_maybeInit","addSource","addFileSource","_addSource","remove","collectExtraData"],"mappings":"AAA;ACuB;oDCC;gCDC;CDE;AGQ;ECM;GDmB;EEU;GFK;EGU;GHK;EIE;cCa;ODE;GJE;EMQ;GNmB;CHC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","dumpReactTree","getReactTree"],"mappings":"AAA;ACyB;CDM;AEE;CFiB"}],[{"names":["<global>","setActiveScene","_listeners.forEach$argument_0","getActiveScene","addActiveSceneChangedListener","remove","_listeners.filter$argument_0"],"mappings":"AAA;ECmB;uBCE,kCD;GDC;EGE;GHE;EIE;cCM;uCCC,iCD;ODC;GJE"}],[{"names":["<global>","coerceDisplayMode"],"mappings":"AAA;OCoB;CDS"}],[{"names":["<global>","HeadlessJsTaskError"],"mappings":"AAA;eCU,0CD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","renderApplication"],"mappings":"AAA;eC6B;CDyE"}],[{"names":["<global>","usePerformanceLogger"],"mappings":"AAA;OC4B;CDE"}],[{"names":["<global>","AppContainer","componentDidMount","RCTDeviceEventEmitter.addListener$argument_1","Inspector.props.onRequestRerenderApp","setState$argument_0","setState$argument_1","componentWillUnmount","render","View.props.ref"],"mappings":"AAA;ACsC;ECY;UCK;sCCK;oBCE,+BD;oBEC,wCF;iBDE;WDI;GDY;EME;GNI;EOE;aCgB;SDE;GP4B;CDC"}],[{"names":["<global>","React.forwardRef$argument_0"],"mappings":"AAA;EC+B;GDqF"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getAccessibilityRoleFromRole"],"mappings":"AAA;OCkB;CDuI"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;gDCmF,4BD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","q"],"mappings":"AAA;ACU,4TD"}],[{"names":["<global>","module.exports.compose","module.exports.setStyleAttributePreprocessor","module.exports.create"],"mappings":"AAA;ECgR;GDS;EEoD;GFyB;EGK;GHY"}],[{"names":["<global>","createRootTag"],"mappings":"AAA;OCwB;CDE"}],[{"names":["<global>","getCachedComponentWithDisplayName","ComponentWithDisplayName"],"mappings":"AAA;eCmB;+BCM;uDDE;CDO"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","f","h","k","g","exports.unstable_now","G","H","J","M","R","S","I","K","D$argument_0","exports.unstable_cancelCallback","exports.unstable_continueExecution","exports.unstable_forceFrameRate","exports.unstable_getCurrentPriorityLevel","exports.unstable_getFirstCallbackNode","exports.unstable_next","exports.unstable_pauseExecution","exports.unstable_requestPaint","exports.unstable_runWithPriority","exports.unstable_scheduleCallback","exports.unstable_wrapCallback","<anonymous>"],"mappings":"AAA;aCS,uHC,4CC,4RH;AIC,uEJ,8GK,0BL,gDK,4BL;4KMC,qJC,qGP;AQC,2aR;ASC,qDC,yHV,iCW,gBX,uGW,+BX,QW,kBX,CY,gCC,oBC,qCD,Ib;8OeC,4Bf,oCgB,6BhB;gCiBC,kLjB,0CkB,oBlB,uCmB,uBnB,uBoB,6GpB,iCqB,YrB;8BsBC,YtB,kCuB,qHvB;kCwBC,kcxB;6DyBC,2BC,uED,CzB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","invokeGuardedCallbackImpl","reporter.onError","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","executeDispatch","executeDirectDispatch","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","assign$argument_1.preventDefault","assign$argument_1.stopPropagation","assign$argument_1.persist","assign$argument_1.destructor","SyntheticEvent.Interface.currentTarget","SyntheticEvent.Interface.timeStamp","SyntheticEvent.extend","E","Class","createOrGetPooledEvent","releasePooledEvent","addEventPoolingTo","SyntheticEvent.extend$argument_0.touchHistory","isStartish","isMoveish","timestampForTouch","getTouchIdentifier","recordTouchStart","recordTouchMove","recordTouchEnd","ResponderTouchHistoryStore.instrument","ResponderTouchHistoryStore.recordTouchTrack","accumulate","accumulateInto","forEachAccumulated","changeResponder","getParent","traverseTwoPhase","getListener","accumulateDirectionalDispatches","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","accumulateTwoPhaseDispatchesSingle","ResponderEventPlugin._getResponder","ResponderEventPlugin.extractEvents","ResponderEventPlugin.injection.injectGlobalResponderHandler","recomputePluginOrdering","publishRegistrationName","getListeners","stateNode.canonical._eventListeners.mangledImperativeRegistrationName.forEach$argument_0","listenerFnWrapper","listeners.push$argument_0","accumulateListenersAndInstances","accumulateDirectionalDispatches$1","traverseTwoPhase$1","accumulateTwoPhaseDispatchesSingle$1","accumulateDirectDispatchesSingle$1","injectedNamesToPlugins$jscomp$inline_229.ReactNativeBridgeEventPlugin.extractEvents","getInstanceFromTag","batchedUpdatesImpl","batchedUpdates","executeDispatchesAndReleaseTopLevel","_receiveRootNodeIDEvent","batchedUpdates$argument_0","ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveEvent","ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveTouches","getFiberCurrentPropsFromNode","getNodeFromInstance","ResponderEventPlugin.injection.injectGlobalResponderHandler$argument_0.onChange","getIteratorFn","getComponentNameFromType","getComponentNameFromFiber","getNearestMountedFiber","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiber","findCurrentHostFiberImpl","defaultDiffer","restoreDeletedValuesInNestedArray","diffNestedProperty","addNestedProperty","clearNestedProperty","diffProperties","mountSafeCallback_NOT_REALLY_SAFE","<anonymous>","ReactNativeFiberHostComponent","_proto.blur","_proto.focus","_proto.measure","_proto.measureInWindow","_proto.measureLayout","_proto.setNativeProps","onCommitRoot","clz32Fallback","getHighestPriorityLanes","getNextLanes","computeExpirationTime","getLanesToRetrySynchronouslyOnError","claimNextTransitionLane","createLaneMap","markRootUpdated","markRootFinished","markRootEntangled","lanesToEventPriority","shim","allocateTag","recursivelyUncacheFiberNode","finalizeInitialChildren","parentInstance._children.map$argument_0","describeComponentFrame","describeFunctionComponentFrame","createCursor","pop","push","getMaskedContext","isContextProvider","popContext","pushTopLevelContextObject","processChildContext","pushContextProvider","invalidateContextProvider","is","flushSyncCallbacks","popTreeContext","shallowEqual","describeFiber","getStackByFiberInDevAndProd","resolveDefaultProps","resetContextDependencies","popProvider","scheduleContextWorkOnParentPath","prepareToReadContext","readContext","pushConcurrentUpdateQueue","enqueueConcurrentHookUpdate","markUpdateLaneFromFiberToRoot","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","entangleTransitions","enqueueCapturedUpdate","processUpdateQueue","commitUpdateQueue","applyDerivedStateFromProps","classComponentUpdater.isMounted","classComponentUpdater.enqueueSetState","classComponentUpdater.enqueueReplaceState","classComponentUpdater.enqueueForceUpdate","checkShouldComponentUpdate","constructClassInstance","callComponentWillReceiveProps","mountClassInstance","coerceRef","current","throwOnInvalidObjectType","resolveLazy","ChildReconciler","deleteChild","deleteRemainingChildren","mapRemainingChildren","useFiber","placeChild","placeSingleChild","updateTextNode","updateElement","updatePortal","updateFragment","createChild","updateSlot","updateFromMap","reconcileChildrenArray","oldFiber.forEach$argument_0","reconcileChildrenIterator","reconcileChildFibers","requiredContext","pushHostContainer","popHostContainer","pushHostContext","popHostContext","findFirstSuspended","resetWorkInProgressVersions","throwInvalidHookError","areHookInputsEqual","renderWithHooks","mountWorkInProgressHook","updateWorkInProgressHook","basicStateReducer","updateReducer","rerenderReducer","updateMutableSource","updateSyncExternalStore","pushStoreConsistencyCheck","updateStoreInstance","subscribeToStore","subscribe$argument_0","checkIfSnapshotChanged","forceStoreRerender","mountState","pushEffect","updateRef","mountEffectImpl","updateEffectImpl","mountEffect","updateEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","updateDeferredValueImpl","startTransition","updateId","dispatchReducerAction","dispatchSetState","isRenderPhaseUpdate","enqueueRenderPhaseUpdate","entangleTransitionUpdate","HooksDispatcherOnMount.useCallback","HooksDispatcherOnMount.useImperativeHandle","HooksDispatcherOnMount.useLayoutEffect","HooksDispatcherOnMount.useInsertionEffect","HooksDispatcherOnMount.useMemo","HooksDispatcherOnMount.useReducer","HooksDispatcherOnMount.useRef","HooksDispatcherOnMount.useDeferredValue","HooksDispatcherOnMount.useTransition","HooksDispatcherOnMount.useMutableSource","HooksDispatcherOnMount.useSyncExternalStore","HooksDispatcherOnMount.useId","HooksDispatcherOnUpdate.useState","HooksDispatcherOnUpdate.useDeferredValue","HooksDispatcherOnUpdate.useTransition","HooksDispatcherOnRerender.useState","HooksDispatcherOnRerender.useDeferredValue","HooksDispatcherOnRerender.useTransition","createCapturedValueAtFiber","createCapturedValue","logCapturedError","setTimeout$argument_0","createRootErrorUpdate","lane.callback","createClassErrorUpdate","lane.payload","attachPingListener","reconcileChildren","updateForwardRef","updateMemoComponent","updateSimpleMemoComponent","updateOffscreenComponent","markRef","updateFunctionComponent","updateClassComponent","finishClassComponent","pushHostRootContext","mountSuspenseOffscreenState","updateSuspenseComponent","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","updateDehydratedSuspenseComponent","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","updateSuspenseListComponent","resetSuspendedCurrentOnMountInLegacyMode","bailoutOnAlreadyFinishedWork","attemptEarlyBailoutIfNoScheduledUpdate","appendAllChildren","updateHostContainer","updateHostComponent$1","updateHostText$1","cutOffTailIfNeeded","bubbleProperties","completeWork","unwindWork","safelyDetachRef","safelyCallDestroy","commitBeforeMutationEffects","commitHookEffectListUnmount","commitHookEffectListMount","detachFiberAfterEffects","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","insertOrAppendPlacementNode","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","attachSuspenseRetryListeners","wakeables.forEach$argument_0","recursivelyTraverseMutationEffects","commitMutationEffectsOnFiber","commitReconciliationEffects","commitLayoutEffects","requestEventTime","requestUpdateLane","scheduleUpdateOnFiber","ensureRootIsScheduled","performConcurrentWorkOnRoot","recoverFromConcurrentError","queueRecoverableErrors","isRenderConsistentWithExternalStores","markRootSuspended$1","performSyncWorkOnRoot","popRenderLanes","prepareFreshStack","handleError","pushDispatcher","renderDidSuspendDelayIfPossible","renderRootSync","workLoopSync","workLoopConcurrent","performUnitOfWork","completeUnitOfWork","commitRoot","commitRootImpl","scheduleCallback$1$argument_1","flushPassiveEffects","captureCommitPhaseErrorOnRoot","captureCommitPhaseError","pingSuspendedRoot","retryTimedOutBoundary","retryDehydratedSuspenseBoundary","resolveRetryWakeable","beginWork$1","scheduleCallback$1","FiberNode","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createFiberFromTypeAndProps","createFiberFromFragment","createFiberFromOffscreen","createFiberFromText","createFiberFromPortal","FiberRootNode","createPortal","findHostInstance","updateContainer","emptyFindFiberByHostInstance","findNodeHandle","onRecoverableError","unmountComponentAtNode","updateContainer$argument_3","devToolsConfig$jscomp$inline_979.rendererConfig.getInspectorDataForViewTag","internals$jscomp$inline_1247.findHostInstanceByFiber","exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.computeComponentStackForErrorReporting","exports.createPortal","exports.dispatchCommand","exports.findHostInstance_DEPRECATED","exports.render","exports.sendAccessibilityEvent","exports.unmountComponentAtNodeAndRemoveContainer"],"mappings":"AAA;ACkB;CDO;aEM;KFG;AGE;CHI;AIC;CJuB;AKK;CLK;AMC;CNa;AOE;CPE;AQC;CRE;ASC;CTyB;kBUE;GVQ;mBWC;GXO;WYC;GZE;caE;GbO;iBcK;GdE;aeI;GfE;wBgBI;ECC,eD;EEC;GFE;ChBW;AmBE;CnBY;AoBC;CpBO;AqBC;CrBI;gBsBE;GtBE;AuBE;CvBE;AwBC;CxBE;AyBW;CzBE;A0BC;C1BI;A2BC;C3B4B;A4BC;C5BW;A6BC;C7BW;gB8BG;K9BE;sB+BC;K/BgC;AgCG;ChCY;AiCC;CjCY;AkCC;ClCE;AmCG;CnCS;AoCyD;CpCI;AqCC;CrCI;AsCC;CtCc;AuCC;CvCe;AwCC;CxCgB;AyCC;CzCM;A0CC;C1CI;mB2CE;K3CE;mB4CE;K5C0Q;oC6CG;O7CE;A8CK;C9C4D;A+CC;C/CO;AgDI;cCsC;gCCK;SDgB;2BEE;aFS;KDG;ChDM;AoDO;CpDyB;AqDC;CrDQ;AsDC;CtDW;AuDC;CvDS;AwDC;CxDa;qByDc;OzDuC;A0DgC;C1DE;A2DC;C3DE;A4DE;C5DQ;A6DE;C7DkB;A8DE;iBCK;GDqC;C9DC;gBgEE;GhEE;kBiEC;GjE+B;+BkEE;ClEE;sBmEE;CnEM;YoEE;GpEO;AqEuB;CrEM;AsEC;CtE8C;AuEC;CvEuD;AwEC;CxEa;AyEC;CzEG;A0EC;C1E2E;A2EC;C3EG;A4EC;C5EQ;A6EK;C7EQ;A8EC;C9EqC;A+EC;C/EqD;AgFC;ChFgB;AiFC;CjFgB;AkFC;ClFoF;AmFC;SCC;GDM;CnFC;qCoFC;ICC;KDI;kBEE;KFE;mBGC;KHE;qBIC;KJK;6BKC;KLK;2BMC;KNa;4BOC;KPa;GpFE;A4FY;C5FU;A6FI;C7FG;A8FG;C9FgD;A+FC;C/FwC;AgGC;ChGwC;AiGC;CjGG;AkGC;ClGK;AmGC;CnGG;AoGC;CpGO;AqGC;CrGkB;AsGC;CtGS;AuGE;CvGS;AwGC;CxGI;AyGK;CzGK;A0GC;C1GS;A2GC;gDCE;GDE;C3GM;A6GG;C7GI;A8GC;C9GI;A+GI;C/GE;AgHC;ChHG;AiHC;CjHI;AkHK;ClHiB;AmHC;CnHG;AoHC;CpHG;AqHC;CrHO;AsHC;CtHc;AuHC;CvHS;AwHC;CxHkB;AyHC;CzHE;A0HK;C1HwB;A2HO;C3Ha;A4HG;C5HqB;A6HC;C7HqB;A8HC;C9HW;A+HC;C/HU;AgIK;ChIE;AiIC;CjII;AkIC;ClIY;AmIC;CnIQ;AoIC;CpIkB;AqIE;CrII;AsIC;CtIO;AuIC;CvIY;AwIE;CxIQ;AyIC;CzIU;A0IC;C1IS;A2IC;C3IkB;A4IC;C5IS;A6IC;C7I4C;A8IC;C9I+H;A+IC;C/IqB;AgJE;ChJe;aiJE;GjJI;mBkJC;GlJW;uBmJC;GnJY;sBoJC;GpJW;AqJE;CrJe;AsJC;CtJyB;AuJC;CvJa;AwJC;CxJiC;AyJC;gBC+B;ODI;CzJgB;A2JC;C3JS;A4JC;C5JG;A6JC;ECC;GDO;EEC;GFM;EGC;GHO;EIC;GJK;EKC;GLc;EMC;GNK;EOC;GPU;EQC;GRmC;ESC;GTe;EUC;GVe;EWC;GX0D;EYC;GZgC;EaC;GbmD;EcC;uBCsF;ODE;GdE;EgBC;uBDuE;OCE;GhBE;EiBC;GjBqK;C7JE;A+KO;C/KM;AgLC;ChLM;AiLC;CjLI;AkLC;ClLiB;AmLC;CnLG;AoLE;CpLsB;AqLE;CrLI;AsLU;CtLI;AuLC;CvLK;AwLC;CxL2C;AyLC;CzLY;A0LC;C1L6B;A2LC;C3LE;A4LC;C5L6E;A6LC;C7LsB;A8LC,iC9L;A+LC;C/L+B;AgMC;ChMY;AiMC;CjMI;AkMC;mBCC;GDE;ClMC;AoMC;CpMS;AqMC;CrMG;AsMC;CtMmB;AuMC;CvMe;AwMC;CxME;AyMC;CzMS;A0MC;C1Mc;A2MC;C3ME;A4MC;C5ME;A6MC;C7ME;A8MC;C9ME;A+MC;M3HK;O2HE;M3HM;O2HE;C/ME;AgNC;ChNQ;AiNC,6BjN;AkNC;ClNY;AmNC;CnNa;AoNC;CpNY;AqNC;CrNa;AsNC;CtNE;AuNC;CvNkB;AwNC;CxNuC;AyNC;CzNM;A0NC;C1NO;A2NC;C3NQ;iB4NuB;K5NM;yB6NG;K7NQ;qB8NC;K9NE;wB+NC;K/NE;agOC;KhOM;gBiOC;KjOmB;YkOC;KlOI;sBmOG;KnOE;mBoOC;KpOM;sBqOC,arO;0BsOC;KtOwB;WuOC;KvOO;cwOc;KxOE;sByOE;KzOG;mB0OC;K1OI;c2OiB;K3OE;sB4OE;K5OK;mB6OC;K7OI;A8OM;C9OO;A+OC;C/OO;AgPQ;eCU;KDE;ChPE;AkPE;kBCK;GDG;ClPE;AoPC;mBCM;KDE;oBDC;KCE;qBDK;KCU;CpPE;AsPC;CtPc;AuPG;CvPU;AwPC;CxP4B;AyPC;CzPoD;A0PC;C1PgC;A2PC;C3PiD;A4PC;C5PO;A6PC;C7P8B;A8PC;C9PsM;A+PC;C/PuC;AgQC;ChQW;AiQE;CjQE;AkQC;ClQmI;AmQC;CnQS;AoQC;CpQkB;AqQC;CrQ4J;AsQC;CtQK;AuQC;CvQuB;AwQC;CxQsF;AyQC;CzQM;A0QC;C1QoB;A2QC;C3QyE;oB4QK;C5QgB;sB6QC,a7Q;wB8QC;C9QK;mB+QC;C/QE;AgRC;ChRuB;AiRC;CjRuB;AkRC;ClR0U;AmRC;CnRqD;AoRG;CpRU;AqRC;CrRM;AsRE;CtR2D;AuRC;CvRmB;AwRC;CxRa;AyRC;CzRe;A0RC;C1RE;A2RC;C3RkB;A4RC;C5RmB;A6RC;C7R2D;A8RG;C9RQ;A+RC;C/R0I;AgSC;sBCO;KDI;ChSE;AkSC;ClS4C;AmSC;CnSqN;AoSC;CpS6C;AqSC;CrSgH;AsS+B;CtSM;AuSC;CvSY;AwSC;CxSoB;AySC;CzSsE;A0SC;C1SoL;A2SC;C3SU;A4SC;C5SO;A6SC;C7SiC;A8SC;C9SW;A+SC;C/S8B;AgTC;ChTG;AiTC;CjTuE;AkTC;ClTiL;AmTC;CnTI;AoTC;CpTW;AqTC;CrTwB;AsTC;CtTE;AuTC;CvTG;AwTC;CxTK;AyTC;CzTsC;A0TC;C1TiB;A2TC;uCC8B;KDG;C3TsD;A6TC;C7TgJ;A8TC;C9TQ;A+TC;C/T6C;AgUC;ChUe;AiUC;CjUY;AkUC;ClUK;AmUC;CnUkB;coUE;CpUob;AqUC;CrUE;AsUC;CtUa;AuUC;CvUE;AwUC;CxUG;AyUC;CzUS;A0UC;C1UmC;A2UC;C3UyE;A4UC;C5UI;A6UC;C7UM;A8UC;C9UI;A+UC;C/Uc;AgVC;ChVmB;AiVC;CjVU;AkVC;ClVY;AmVC;CnV4D;AoVC;CpVE;AqVC;CrVY;AsVC;CtVE;AuVC;sCCG;KDE;CvVC;qB2DC;C3DW;kCyVQ;OzVI;sCoFC;OpFI;2B0VkB;G1VG;0C2VyB;G3VI;uB4VE;C5VO;0B6VC;C7VW;sC8VC;C9VW;iB+VG;C/V4B;iCgWC;ChWU;mDiWE;CjWG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","ActivityIndicator"],"mappings":"AAA;0BC+D;CD2D"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","codegenNativeComponent"],"mappings":"AAA;ACiC;CDuC"}],[{"names":["<global>","requireNativeComponent","createReactNativeComponentClass$argument_1"],"mappings":"AAA;+BC0B;qDCC;iDDC;4BDC"}],[{"names":["<global>","createReactNativeComponentClass"],"mappings":"AAA;wCC4B;CDK"}],[{"names":["<global>","Button","render"],"mappings":"AAA;AC2R;ECC;GDwG;CDC"}],[{"names":["<global>","React.forwardRef$argument_0","useMemo$argument_0","onPressIn","onPressOut","onResponderGrant","onResponderMove","onResponderRelease","onResponderTerminate","useLazyInitialization"],"mappings":"AAA;qBCiC;IC2D;YCO;aDG;YEC;aFG;cDK;ICiB;YGI;aHK;YIC;aJK;YKC;aLK;YMC;aNK;WDK;CD4G;ASe;CTM"}],[{"names":["<global>","PressabilityDebugView","isEnabled","setEnabled"],"mappings":"AAA;OCqC;CDgC;OEI;CFK;OGE;CHI"}],[{"names":["<global>","createSquare","normalizeRect"],"mappings":"AAA;OCmB;CDE;OEE;CFE"}],[{"names":["<global>","usePressability","useEffect$argument_0","<anonymous>"],"mappings":"AAA;eCqB;YCW;GDI;YCI;aCE;ODE;GDE;CDG"}],[{"names":["<global>","isActiveSignal","isActivationSignal","isPressInSignal","isTerminalSignal","Pressability","constructor","configure","reset","getEventHandlers","_createEventHandlers","focusEventHandlers.onBlur","focusEventHandlers.onFocus","responderEventHandlers.onStartShouldSetResponder","responderEventHandlers.onResponderGrant","setTimeout$argument_0","responderEventHandlers.onResponderMove","responderEventHandlers.onResponderRelease","responderEventHandlers.onResponderTerminate","responderEventHandlers.onResponderTerminationRequest","responderEventHandlers.onClick","responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig","hoverPointerEvents.onPointerEnter","hoverPointerEvents.onPointerLeave","onMouseEnter","onMouseLeave","_receiveSignal","PressabilityPerformanceEventEmitter.emitEvent$argument_0","_performTransitionSideEffects","_activate","_deactivate","_measureResponderRegion","_measureCallback","_isTouchWithinResponderRegion","_handleLongPress","_shouldLongPressCancelPress","_cancelHoverInDelayTimeout","_cancelHoverOutDelayTimeout","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","normalizeDelay","getTouchFromPressEvent","convertPointerEventToMouseEvent"],"mappings":"AAA;uBCkQ;6CDE;2BEE;wCFE;wBGE;6CHG;yBIE;qEJC;eKwG;ECuB;GDE;EEE;GFE;EGK;GHU;EIK;GJK;EKE;cCE;ODK;eEC;OFK;iCGI;OHS;wBIE;+CCW;WDE;iDCU;SDE;OJC;uBME;ONiC;0BOE;OPE;4BQE;ORE;qCSE;OTS;eUE;OVK;QWO,kBX;4CYY;qDPO;eOE;SZK;4CaG;wDRQ;iBQE;SbM;4BcY;6DTW;uBSE;edM;4BeE;6DVW;uBUE;efM;GLQ;EqBM;oDCM;ODK;GrBqB;EuBM;GvB4D;EwBE;GxBQ;EyBE;gDfe;SeE;GzBM;E0BE;G1BU;qB2BE;G3BiB;E4BE;G5B4C;E6BE;G7BO;E8BE;G9BK;E+BE;G/BK;EgCE;GhCK;EiCE;GjCK;EkCE;GlCK;EmCE;GnCK;CLC;AyCE;CzCM;+B0CE;C1CU;A2CE;C3CY"}],[{"names":["<global>","playTouchSound"],"mappings":"AAA;kBCa;GDI"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","isLayoutAnimationEnabled","shouldEmitW3CPointerEvents","shouldPressibilityUseW3CPointerEventsForHover","animatedShouldDebounceQueueFlush","animatedShouldUseSingleOp","enableCppRenderSystem","removeListenersOnDetach"],"mappings":"AAA;4BCkD,UD;8BEC,WF;iDGC,WH;oCIC,WJ;6BKC,WL;yBMC,WN;2BOC,WP"}],[{"names":["<global>","enableHover","disableHover","isHoverEnabled"],"mappings":"AAA;wBCiC;KDK;yBEE;KFK;OGQ;CHE"}],[{"names":["<global>","PressabilityPerformanceEventEmitter","constructor","addListener","removeListener","emitEvent","_listeners.forEach$argument_0"],"mappings":"AAA;ACmB;ECG,gBD;EEE;GFE;EGE;GHK;EIE;4BCM,2BD;GJC;CDC"}],[{"names":["<global>","createReactNativeComponentClass$argument_1"],"mappings":"AAA;8CCuE;oCDC;yDCM;+CDC"}],[{"names":["<global>","module.exports.get__ColorPropType","module.exports.get__EdgeInsetsPropType","module.exports.get__ImagePropTypes","module.exports.get__PointPropType","module.exports.get__TextInputPropTypes","module.exports.get__TextPropTypes","module.exports.get__ViewPropTypes"],"mappings":"AAA;ECa;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE;EOC;GPE"}],[{"names":["<global>","colorPropType"],"mappings":"AAA;sBCgB;CD0D"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","emptyFunction","emptyFunctionWithReset","module.exports","shim","getShim"],"mappings":"AAA;ACW,2BD;AEC,oCF;iBGG;ECC;GDY;EEE;GFE;CHgC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","DeprecatedStyleSheetPropType","<anonymous>","flattenStyle"],"mappings":"AAA;ACa;SCE;GDQ;CDC;AGE;CHmB"}],[{"names":["<global>","deprecatedCreateStrictShapeTypeChecker","checkType","chainedCheckType"],"mappings":"AAA;ACa;ECC;GDqD;EEC;GFE;CDG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","TouchableNativeFeedback","SelectableBackground","SelectableBackgroundBorderless","Ripple","canUseNativeForeground","_createPressabilityConfig","onPressIn","onPressMove","onPressOut","_dispatchPressedStateChange","_dispatchHotspotUpdate","render","componentDidUpdate","componentWillUnmount","<anonymous>"],"mappings":"AAA;ACiG;QCS;IDI;QEU;IFI;QGgB;GHY;iDIK;uDJC;EKM;iBCkB;ODQ;mBEC;OFI;kBGC;OHO;GLE;ESE;GTY;EUE;GViB;EWE;GX+F;EYE;GZE;EaE;GbE;CDC;MeM;iDfG;MeG,4Cf"}],[{"names":["<global>","TouchableOpacity","_createPressabilityConfig","onBlur","onFocus","onPressIn","onPressOut","_setOpacityTo","_opacityActive","_opacityInactive","_getChildStyleOpacityWithDefault","render","componentDidUpdate","componentWillUnmount","React.forwardRef$argument_0"],"mappings":"AAA;ACmI;ECM;cCa;ODO;eEC;OFO;iBGG;OHS;kBIC;OJK;GDE;EMK;GNO;EOE;GPE;EQE;GRE;ESE;GTG;EUE;GVqF;EWE;GXU;EYE;GZE;CDC;oCcE;CdE"}],[{"names":["<global>","default.get__FlatList","default.get__Image","default.get__ScrollView","default.get__SectionList","default.get__Text","default.get__View"],"mappings":"AAA;EC4B;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE"}],[{"names":["<global>","add","subtract","divide","multiply","modulo","diffClamp","_combineCallbacks","<anonymous>","maybeVectorAnim","spring","start","stop","reset","_startNativeLoop","_isUsingNativeDriver","timing","decay","sequence","onComplete","animations.forEach$argument_0","parallel","result.start","cb","result.stop","result.reset","result._startNativeLoop","result._isUsingNativeDriver","delay","stagger","animations.map$argument_0","loop","restart","forkEvent","unforkEvent","event"],"mappings":"AAA;YCiD;CDK;iBEE;CFK;eGE;CHK;iBIE;CJK;eKE;CLE;kBME;CNM;0BOE;WCK;KDG;CPI;wBSE;CTgD;eUE;gBCI;GDsB;aCG;ODE;YEE;OFE;aGE;OHE;wBIE;OJG;4BKE;OLE;CVG;egBE;gBLI;GKsB;aLI;OKE;YJE;OIE;aHE;OGE;wBFE;OEG;4BDE;OCE;ChBG;ciBE;gBNI;GMU;aNI;OME;YLE;OKE;aJE;OIE;wBHE;OGG;4BFE;OEE;CjBG;iBkBE;WPK;yBQC;ORc;KOO;UNE;KMI;WLE;yBOC;OPI;KKE;sBJE;KII;0BHE;KGE;ClBE;iBqBO;WCU;yBFM;mBGC;SHY;OEO;KDC;UGE;yBJC;OIG;KHC;WIE;yBLC;OKI;KJC;sBKE;KLI;0BME;KNE;CrBI;c4BE;C5BQ;gB6BE;mBCK;KDE;C7BE;a+BQ;WpBQ;sBqBC;OrBY;KoBU;UnBE;KmBG;WlBE;KkBI;sBjBE;KiBI;0BhBE;KgBE;C/BE;AiCE;WzBU;KyBG;CjCE;AkCE;ClCO;cmCE;CnCU"}],[{"names":["<global>","attachNativeEvent","traverse","eventMappings.forEach$argument_0","detach","validateMapping","validate","argMapping.forEach$argument_0","AnimatedEvent","constructor","__addListener","__removeListener","_listeners.filter$argument_0","__attach","__detach","__getHandler","<anonymous>","_argMapping.forEach$argument_0","_callListeners","_listeners.forEach$argument_0"],"mappings":"AAA;OC8B;mBCU;GDgB;0BEY;KFM;IGI;8BDE;SCO;KHE;CDE;AKE;mBCC;GDwC;qBEM;GFE;CLC;OQE;ECO;GDc;EEE;GFE;EGE;6CCC,iCD;GHC;EKE;GLY;EME;GNO;EOE;eCI;SDM;WCO;uBdM;OcqB;+BCC;ODE;KDG;GPC;mBUE;4BCC,6BD;GVC;CRC"}],[{"names":["<global>","<anonymous>","apis.reduce$argument_0","API.getValue","API.setWaitingForIdentifier","API.unsetWaitingForIdentifier","API.disableQueue","API.flushQueue","API.queueOperation","queue.push$argument_0","API.createAnimatedNode","API.updateAnimatedNodeConfig","API.startListeningToAnimatedNodeValue","API.stopListeningToAnimatedNodeValue","API.connectAnimatedNodes","API.disconnectAnimatedNodes","API.startAnimatingNode","API.stopAnimation","API.setAnimatedNodeValue","API.setAnimatedNodeOffset","API.flattenAnimatedNodeOffset","API.extractAnimatedNodeOffset","API.connectAnimatedNodeToView","API.disconnectAnimatedNodeFromView","API.restoreDefaultValues","API.dropAnimatedNode","API.addAnimatedEventToView","API.removeAnimatedEventFromView","setupGlobalEventEmitterListeners","RCTDeviceEventEmitter.addListener$argument_1","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","isSupportedColorStyleProp","isSupportedStyleProp","isSupportedTransformProp","isSupportedInterpolationParam","validateTransform","configs.forEach$argument_0","validateStyles","validateInterpolation","generateNewNodeTag","generateNewAnimationId","assertNativeAnimatedModule","shouldUseNativeDriver","transformDataType","default.get__nativeEventEmitter"],"mappings":"AAA;MC6D;6CCwB;ODK;KDC;YGQ;GHc;2BIC;GJS;6BKC;GLO;gBMC;GNU;cOC;GPmC;kBQC;iBCe,iBD;GRI;sBUC;GVG;4BWC;GXQ;qCYC;GZG;oCaC;GbG;wBcC;GdG;2BeC;GfM;sBgBC;GhB2B;iBiBC;GjBG;wBkBC;GlBG;yBmBC;GnBG;6BoBC;GpBG;6BqBC;GrBG;6BsBC;GtBG;kCuBC;GvBU;wBwBC;GxBM;oByBC;GzBG;0B0BC;G1BY;E2BC;G3BY;A4BG;ICG;KDQ;MCK;ODQ;C5BE;A8BmE;C9BG;A+BE;C/BG;AgCE;ChCG;AiCE;CjCE;AkCE;ClCE;AmCE;CnCE;AoCE;CpCE;AqCE;kBCgB;GDM;CrCC;AuCE;CvCQ;AwCE;CxCU;AyCE;CzCE;A0CE;C1CE;A2CE;C3CE;A4CI;C5C2B;A6CE;C7Ca;E8CqB;G9CS"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","_flush","findAnimatedStyles","animatedStyles.forEach$argument_0","_executeAsAnimatedBatch","AnimatedValue","constructor","__detach","NativeAnimatedAPI.getValue$argument_1","__getValue","setValue","_executeAsAnimatedBatch$argument_1","setOffset","flattenOffset","extractOffset","stopAnimation","resetAnimation","__onAnimatedValueUpdateReceived","interpolate","animate","animation.start$argument_1","animation.start$argument_2","stopTracking","track","_updateValue","__getNativeConfig"],"mappings":"AAA;ACkD;ECE;GDS;yBEG,uCF;CDC;AIO;CJI;eKU;ECQ;GDW;EEE;wDCE;ODE;GFI;EIE;GJE;EKQ;gECU;4EDC;GLG;EOS;GPK;EQQ;GRM;ESQ;GTM;EUS;GVW;EWO;GXS;EYE;GZE;EaM;GbI;EcQ;MCU;ODI;MEC;OFM;GdI;EiBK;GjBG;EkBK;GlBK;EmBE;GnBU;EoBE;GpBM;CLC"}],[{"names":["<global>","runAfterInteractions","Promise$argument_0","cancel","createInteractionHandle","clearInteractionHandle","setDeadline","_scheduleUpdate","_processUpdate","_addInteractionSet.forEach$argument_0","_deleteInteractionSet.forEach$argument_0"],"mappings":"AAA;ECwF;gCCS;KDU;cEI;OFE;GDE;EIK;GJM;EKK;GLM;EMU;GNE;AOc;CPQ;AQK;6BCI,qCD;gCEC,wCF;CR2B"}],[{"names":["<global>","TaskQueue","constructor","enqueue","enqueueTasks","tasks.forEach$argument_0","cancelTasks","_queueStack.map$argument_0","queue.tasks.filter$argument_0","_queueStack.map.filter$argument_0","hasTasksToProcess","processNext","_getCurrentQueue","_genPromise","task.gen.then$argument_0","task.gen.then._catch$argument_0","setTimeout$argument_0"],"mappings":"AAA;AC2C;ECQ;GDG;EEO;GFE;EGE;kBCC,0BD;GHC;EKE;WCG;kCCE,0CD;QDC;cGC,mDH;GLC;ESY;GTE;EUK;GV0B;EWS;GXkB;EYE;YCY;ODQ;aEC;mBCC;SDG;OFC;GZC;CDC"}],[{"names":["<global>","linear","createInterpolation","<anonymous>","interpolate","colorToRgba","createInterpolationFromStringOutputRange","outputRange._.match.map$argument_0","outputRange.forEach$argument_0","value.match.forEach$argument_0","outputRange._.replace$argument_1","isRgbOrRgba","checkPattern","findRange","checkValidInputRange","checkInfiniteRange","AnimatedInterpolation","constructor","__makeNative","__getValue","__attach","__detach","__transformDataType","__getNativeConfig"],"mappings":"AAA;eCiC,gBD;AEM;SC0C;GDiB;CFC;AIE;CJkE;AKE;CLc;AMY;kECkB,QD;sBEC;0CCG;KDE;GFC;SCQ;KDK;SHM;oDOK;KPM;GGC;CNC;AWE;CXE;AYE;CZQ;AaE;CbQ;AcE;CdO;AeE;CfW;egBE;ECY;GDK;EEE;GFG;EGE;GHO;EZE;GYI;EIE;GJE;EKE;GLG;EME;GNE;EOE;GPe;ChBC"}],[{"names":["<global>","AnimatedWithChildren","constructor","__makeNative","__addChild","__removeChild","__getChildren","__callListeners"],"mappings":"AAA;eCiB;ECG;GDG;EEE;GFY;EGE;GHa;EIE;GJgB;EKE;GLE;EME;GNU;CDC"}],[{"names":["<global>","AnimatedNode","__attach","__detach","__getValue","__getAnimatedValue","__addChild","__removeChild","__getChildren","constructor","__makeNative","addListener","removeListener","removeAllListeners","hasListeners","_startListeningToNativeValueUpdates","NativeAnimatedHelper.nativeEventEmitter.addListener$argument_1","__onAnimatedValueUpdateReceived","__callListeners","_stopListeningForNativeValueUpdates","__getNativeTag","__getNativeConfig","toJSON","__getPlatformConfig","__setPlatformConfig"],"mappings":"AAA;eC0B;ECI,mBD;EEC;GFQ;EGC,oBH;EIC;GJE;EKC,kCL;EMC,qCN;EOC;GPE;EQO;GRE;ESE;GTS;EUS;GVO;EWQ;GXK;EYO;GZK;EaE;GbE;EcE;QCiB;SDK;GdE;EgBE;GhBE;EiBE;GjBI;EkBE;GlBQ;EmBE;GnBqB;EoBC;GpBI;EqBC;GrBE;EsBE;GtBE;EuBC;GvBE;CDC"}],[{"names":["<global>","AnimatedValueXY","constructor","setValue","setOffset","flattenOffset","extractOffset","__getValue","resetAnimation","stopAnimation","addListener","jointCallback","removeListener","removeAllListeners","getLayout","getTranslateTransform","__attach","__detach","__makeNative"],"mappings":"AAA;eCmC;ECY;GD0B;EEQ;GFG;EGS;GHG;EIQ;GJG;EKQ;GLG;EME;GNS;EOO;GPU;EQS;GRU;ESW;0BCE;KDE;GTM;EWQ;GXI;EYO;GZI;EaO;GbK;EcO;GdE;EeE;GfI;EgBE;GhBI;EiBE;GjBI;CDC"}],[{"names":["<global>","DecayAnimation","constructor","__getNativeAnimationConfig","start","onUpdate","stop"],"mappings":"AAA;eCqC;ECW;GDQ;EEE;GFc;EGE;GHmB;EIE;GJoB;EKE;GLK;CDC"}],[{"names":["<global>","Animation","start","stop","__getNativeAnimationConfig","__debouncedOnEnd","__startNativeAnimation"],"mappings":"AAA;eCiC;ECM;YDM;EEC;GFI;EGC;GHI;EIE;GJI;EKC;GLwB;CDC"}],[{"names":["<global>","SpringAnimation","constructor","__getNativeAnimationConfig","start","getInternalState","onUpdate","stop"],"mappings":"AAA;eCiF;ECuB;GD+D;EEE;GF0B;EGE;GHuC;EIE;GJM;EKuB;GL6F;EME;GNM;CDC"}],[{"names":["<global>","processColor","isRgbaValue","isRgbaAnimatedValue","AnimatedColor","constructor","setValue","setOffset","flattenOffset","extractOffset","addListener","jointCallback","removeListener","removeAllListeners","stopAnimation","resetAnimation","__getValue","__attach","__detach","__makeNative","__getNativeConfig"],"mappings":"AAA;ACmD;CDoC;AEE;CFQ;AGE;CHQ;eIE;ECiB;GDmC;EEM;GFuC;EGO;GHK;EIM;GJK;EKM;GLK;EMS;0BCE;KDE;GNQ;EQM;GRM;ESK;GTM;EUO;GVM;EWK;GXM;EYE;GZM;EaE;GbM;EcE;GdM;EeE;GfM;EgBE;GhBS;CJC"}],[{"names":["<global>","stiffnessFromOrigamiValue","dampingFromOrigamiValue","fromOrigamiTensionAndFriction","fromBouncinessAndSpeed","normalize","projectNormal","linearInterpolation","quadraticOutInterpolation","b3Friction1","b3Friction2","b3Friction3","b3Nobounce"],"mappings":"AAA;ACkB;CDE;AEE;CFE;OGE;CHQ;OIE;ECI;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPO;EQE;GRQ;CJgB"}],[{"names":["<global>","easeInOut","TimingAnimation","constructor","__getNativeAnimationConfig","start","onUpdate","stop"],"mappings":"AAA;ACmD;CDM;eEE;ECa;GDU;EEE;GFe;EGE;GHoC;EIE;GJuB;EKE;GLM;CFC"}],[{"names":["<global>","step0","step1","linear","ease","quad","cubic","poly","<anonymous>","sin","circle","exp","elastic","back","bounce","bezier","_in","out","inOut"],"mappings":"AAA;EC+D;GDE;EEK;GFE;EGQ;GHE;EIQ;GJK;EKQ;GLE;EMQ;GNE;EOQ;WCC,6BD;GPC;ESO;GTE;EUO;GVE;EWO;GXE;EYY;WJE,mEI;GZC;EaQ;WLC,8BK;GbC;EcO;GdiB;EeS;GfQ;EgBK;GhBE;EiBK;WTC,sBS;GjBC;EkBO;WVC;KUK;GlBC"}],[{"names":["<global>","A","B","C","calcBezier","getSlope","binarySubdivide","newtonRaphsonIterate","bezier","getTForX","BezierEasing"],"mappings":"AAA;AC6B;CDE;AEC;CFE;AGC;CHE;AIG;CJE;AKG;CLE;AME;CNyB;AOE;CPgB;eQE;ECoB;GDkC;SEE;GFY;CRC"}],[{"names":["<global>","createAnimatedComponent","AnimatedComponent","AnimatedComponent#_attachNativeEvents","_eventDetachers.push$argument_0","AnimatedComponent#_detachNativeEvents","_eventDetachers.forEach$argument_0","AnimatedComponent#_isFabric","AnimatedComponent#_waitForUpdate","AnimatedComponent#_markUpdateComplete","AnimatedComponent#_animatedPropsCallback","AnimatedComponent#_attachProps","setAndForwardRef$argument_0.getForwardedRef","setAndForwardRef$argument_0.setLocalRef","AnimatedComponent#render","AnimatedComponent#UNSAFE_componentWillMount","AnimatedComponent#componentDidMount","AnimatedComponent#UNSAFE_componentWillReceiveProps","AnimatedComponent#componentDidUpdate","AnimatedComponent#componentWillUnmount","AnimatedComponentWrapper"],"mappings":"AAA;ACuC;ECU;ICU;oCCW,wCD;KDG;IGE;mCCC,kBD;KHE;gBKE;KLmC;qBME;KNM;0BOE;KPM;6BQQ;KR2B;ISE;KTqB;uBUG,6BV;mBWC;OXG;IYG;KZmB;IaE;KbG;IcE;KdS;IeE;KfG;IgBE;KhBS;IiBE;KjBM;GDC;0BmBE;GnBO;CDC"}],[{"names":["<global>","setAndForwardRef","forwardRef"],"mappings":"AAA;ACkD;SCI;GDa;CDC"}],[{"names":["<global>","inject","recordAndRetrieve"],"mappings":"AAA;OCwB;CDa;OEK;CFK"}],[{"names":["<global>","AnimatedProps","constructor","__getValue","__getAnimatedValue","__attach","__detach","update","__makeNative","setNativeView","__connectAnimatedView","__disconnectAnimatedView","__restoreDefaultValues","__getNativeConfig"],"mappings":"AAA;eCqB;ECK;GDU;EEE;GFc;EGE;GHS;EIE;GJO;EKE;GLW;EME;GNE;EOE;GPmB;EQE;GRQ;ESE;GTW;EUE;GVW;EWE;GXQ;EYE;GZa;CDC"}],[{"names":["<global>","AnimatedStyle","constructor","_walkStyleAndGetValues","__getValue","_walkStyleAndGetAnimatedValues","__getAnimatedValue","__attach","__detach","__makeNative","__getNativeConfig"],"mappings":"AAA;eCoB;ECG;GDU;EEG;GFc;EGE;GHE;EIG;GJY;EKE;GLE;EME;GNO;EOE;GPQ;EQE;GRQ;ESE;GTgB;CDC"}],[{"names":["<global>","AnimatedTransform","constructor","__makeNative","_transforms.forEach$argument_0","__getValue","_get$argument_0","__getAnimatedValue","__attach","__detach","__getNativeConfig","_get","_transforms.map$argument_0","value.map$argument_0"],"mappings":"AAA;eCkB;ECG;GDG;EEE;6BCC;KDO;GFE;EIE;qBCC,yCD;GJC;EME;qBDC,iDC;GNC;EOE;6BJC;KIO;GPC;EQE;6BLC;KKO;GRE;ESE;6BNG;KMiB;GTO;EUE;gCCC;kCCO;WDM;KDe;GVC;CDC"}],[{"names":["<global>","AnimatedAddition","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["<global>","AnimatedDiffClamp","constructor","__makeNative","interpolate","__getValue","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCmB;ECO;GDO;EEE;GFG;EGE;GHI;EIE;GJM;EKE;GLE;EME;GNG;EOE;GPO;CDC"}],[{"names":["<global>","AnimatedDivision","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECK;GDO;EEE;GFI;EGE;GHc;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["<global>","AnimatedModulo","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCmB;ECI;GDI;EEE;GFG;EGE;GHI;EIE;GJI;EKE;GLE;EME;GNG;EOE;GPM;CDC"}],[{"names":["<global>","AnimatedMultiplication","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKC;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["<global>","AnimatedSubtraction","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["<global>","AnimatedTracking","constructor","__makeNative","__getValue","__attach","__detach","update","__getNativeConfig"],"mappings":"AAA;eCmB;ECQ;GDgB;EEE;GFK;EGE;GHE;EIE;GJW;EKE;GLG;EME;GNQ;EOE;GPc;CDC"}],[{"names":["<global>","mockAnimationStart","<anonymous>","emptyAnimation.start","emptyAnimation.stop","emptyAnimation.reset","emptyAnimation._startNativeLoop","emptyAnimation._isUsingNativeDriver","mockCompositeAnimation","mockAnimationStart$argument_0","animations.forEach$argument_0","spring","timing","decay","sequence","parallel","delay","stagger","loop"],"mappings":"AAA;ACsC;SCG;GDmB;CDC;SGY,QH;QIC,QJ;SKC,QL;oBMC,QN;wBOC;GPE;+BQG;4BCI;uBCC,8BD;GDE;ERC;eWE;8BFO;KEG;CXE;eYE;8BHO;KGG;CZE;caE;CbK;iBcE;CdI;iBeG;CfK;cgBE;ChBE;gBiBE;CjBK;akBQ;ClBM"}],[{"names":["<global>","React.forwardRef$argument_0"],"mappings":"AAA;mDCmB;CDE"}],[{"names":["<global>","removeClippedSubviewsOrDefault","numColumnsOrDefault","FlatList","scrollToEnd","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","flashScrollIndicators","getScrollResponder","getNativeScrollRef","getScrollableNode","setNativeProps","constructor","props.viewabilityConfigCallbackPairs.map$argument_0","componentDidUpdate","_captureRef","_checkProps","_getItem","_getItemCount","_keyExtractor","items.map$argument_0","_pushMultiColumnViewable","v.item.forEach$argument_0","_createOnViewableItemsChanged","<anonymous>","info.viewableItems.forEach$argument_0","info.changed.forEach$argument_0","_renderer","render","renderProp","item.map$argument_0"],"mappings":"AAA;AC4J;CDE;AEG;CFE;AGqI;ECK;GDI;EEU;GFU;EGQ;GHU;EIO;GJI;EKO;GLI;EMO;GNI;EOK;GPI;EQK;GRQ;ESE;GTI;EUE;GVI;EWE;sDCK;UDK;GXY;EaG;GbqB;gBcK;GdE;EeG;Gf6B;agBG;GhBe;kBiBE;GjBO;kBkBE;aCY;4EDC;GlBO;EoBE;mBCG;KDI;GpBC;EsBE;WCQ;qCCU;2DDC;+BEE,8CF;KDM;GtBC;c0BE;mBCU;KDY;uBEE;sBCS;aDU;KFM;G1BK;E2BK;G3BgC;CHC"}],[{"names":["<global>","horizontalOrDefault","initialNumToRenderOrDefault","maxToRenderPerBatchOrDefault","onEndReachedThresholdOrDefault","scrollEventThrottleOrDefault","windowSizeOrDefault","findLastWhere","VirtualizedList","scrollToEnd","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","_nestedChildLists.forEach$argument_0","_viewabilityTuples.forEach$argument_0","flashScrollIndicators","getScrollResponder","getScrollableNode","getScrollRef","setNativeProps","_getCellKey","_getScrollMetrics","hasMore","_getOutermostParentListRef","_registerAsNestedChild","_unregisterAsNestedChild","constructor","props.viewabilityConfigCallbackPairs.map$argument_0","_createRenderMask","_initialRenderRegion","_ensureClosestStickyHeader","_adjustCellsAroundViewport","_findFirstChildWithMore","_nestedChildLists.anyInCell$argument_1","componentDidMount","componentWillUnmount","getDerivedStateFromProps","_pushCells","CellRenderer.props.onCellFocusCapture","CellRenderer.props.ref","_constrainToItemCount","_onUpdateSeparators","keys.forEach$argument_0","_isNestedWithSameOrientation","_getSpacerKey","_keyExtractor","render","React.cloneElement$argument_1.onLayout","findLastWhere$argument_1","ScrollView.Context.Consumer.props.children","componentDidUpdate","_captureScrollRef","_computeBlankness","_defaultRenderScrollComponent","_onCellLayout","_onCellFocusCapture","setState$argument_0","_onCellUnmount","_triggerRemeasureForChildListsInCell","_nestedChildLists.forEachInCell$argument_1","measureLayoutRelativeToContainingList","_scrollRef.measureLayout$argument_1","_scrollRef.measureLayout$argument_2","_onLayout","_onLayoutEmpty","_getFooterCellKey","_onLayoutFooter","_onLayoutHeader","_renderDebugOverlay","framesInLayout.map$argument_0","_selectLength","_selectOffset","_maybeCallOnEndReached","_onContentSizeChange","_convertParentScrollMetrics","_onScroll","_scheduleCellsToRenderUpdate","_onScrollBeginDrag","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_createViewToken","_getOffsetApprox","__getFrameMetricsApprox","_getFrameMetrics","_getNonViewportRenderRegions","_updateViewableItems"],"mappings":"AAA;AC8E;CDE;AEG;CFE;AGG;CHE;AIG;CJE;AKG;CLE;AMG;CNE;AOE;CPW;eQ+B;ECO;GD8B;EEG;GFqE;EGI;GHgB;EIY;GJqB;EKE;mCCC;KDE;oCEC;KFE;GLE;EQE;GRM;ESO;GTI;EUE;GVM;EWE;GXQ;EYE;GZI;EaE;GbE;sBcG;GdE;EeE;GfE;+BgBG;GhBM;2BiBE;GjBQ;6BkBE;GlBI;EmBI;QC0B;UDG;GnBuB;EqBE;GrB0C;EsBE;GtBY;EuBE;GvBc;EwBE;GxBsF;EyBE;0DCK;6BDC;GzBQ;E2BE;G3BO;E4BE;oCrBK;KqBE;G5BE;E6BE;G7BiB;E8BE;8BCiD,kCD;eEE;WFE;G9BM;EiCE;GjCe;wBkCE;iBCC;KDG;GlCC;EoCE;GpCM;kBqCE;mCrCC;EsCE;GtCqB;EuCE;sBCsE;aDK;sDEc,eF;WGyI;WHkB;GvCc;E2CE;sCpCK;OoCE;G3Ce;sB4CgD;G5CE;E6CE;G7CM;kC8CI;G9CoC;kB+CE;G/CiC;EgDE;kBCQ;KDK;GhDC;mBkDE;GlDK;EmDE;kDCC;KDE;GnDC;EqDE;QCW;2ChDoB;agDE;SDE;QEC;SFK;GrDQ;cwDE;GxDa;mByDE;GzDE;E0DE;G1DE;oB2DE;G3DG;oB4DE;G5DE;E6DG;4BC6B;SDY;G7DuB;E+DE;G/DU;EgEE;GhEQ;EiEE;GjE8B;yBkEE;GlEsB;gCmEK;GnEkB;coEE;mC9DC;K8DE;GpEiE;EqEE;GrEiD;uBsEE;mChEC;KgEE;oC/DC;K+DE;GtEG;qBuEE;mCjEC;KiEE;GvEO;2BwEE;mClEC;KkEE;GxEE;yByEE;mCnEC;KmEE;GzEI;yB0EE;kBzBC;KyBoB;G1EC;qB2EE;G3Ec;qB4EM;G5EW;M6ES;G7EoB;qB8EE;G9E0B;iC+EE;G/EyD;EgFE;oCzEI;KyEU;GhFC;CRC"}],[{"names":["<global>","RefreshControl","componentDidMount","componentDidUpdate","render","_onRefresh","_setNativeRef"],"mappings":"AAA;AC2H;ECO;GDE;EEE;GFuB;EGE;GHqB;eIE;GJQ;kBKE;GLO;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","ScrollView","constructor","componentDidMount","componentDidUpdate","componentWillUnmount","setAndForwardRef$argument_0.getForwardedRef","setAndForwardRef$argument_0.setLocalRef","getScrollResponder","getScrollableNode","getInnerViewNode","getInnerViewRef","getNativeScrollRef","scrollTo","scrollToEnd","flashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","scrollResponderZoomTo","_textInputFocusError","_inputMeasureAndScrollToKeyboard","scrollTextInputIntoVisibleRect","setTimeout$argument_0","_getKeyForIndex","_updateAnimatedNodeAttachment","_setStickyHeaderRef","_onStickyHeaderLayout","_handleScroll","_handleLayout","_handleContentOnLayout","scrollResponderKeyboardWillShow","scrollResponderKeyboardWillHide","scrollResponderKeyboardDidShow","scrollResponderKeyboardDidHide","_handleMomentumScrollBegin","_handleMomentumScrollEnd","_handleScrollBeginDrag","_handleScrollEndDrag","_isAnimating","_handleResponderGrant","_handleResponderReject","_handleResponderRelease","_handleResponderTerminationRequest","_handleScrollShouldSetResponder","_handleStartShouldSetResponder","_handleStartShouldSetResponderCapture","_keyboardIsDismissible","_softKeyboardIsDetached","_keyboardEventsAreUnreliable","_handleTouchEnd","_handleTouchCancel","_handleTouchStart","_handleTouchMove","render","filter$argument_0","childArray.map$argument_0","StickyHeaderComponent.props.ref","StickyHeaderComponent.props.onLayout","Wrapper"],"mappings":"AAA;AC4sB;ECG;GDO;EEkC;GFiC;EGE;GHY;EIE;GJiB;qBKG,8BL;iBMC;KNyB;kDOS;GPG;qCQE;GRE;oCSE;GTE;0DUE;GVE;sEWE;GXE;cYwB;GZ8B;gEaU;GbS;sCcO;GdK;cegB;Gf4B;cgBiB;GhBwB;EiBE;GjBE;ckBiB;2CCG;KDkB;iBEO;OFE;GlBI;EqBE;GrBG;EsBE;GtBe;EuBE;GvBS;EwBE;GxBwB;kByBE;GzBkB;kB0BE;G1BO;2B2BE;G3BI;qBKM,6BL;iBMC;KNE;gE4BgC;G5BK;gE6BE;G7BK;+D8BE;G9BK;+D+BE;G/BK;yDgCK;GhCG;uDiCK;GjCI;qDkCS;GlCW;mDmCK;GnCc;gCoCO;GpCQ;mDqCK;GrCI;uCsCY,QtC;qDuCK;GvC4B;sDwCiB;GxCE;mDyCK;GzCM;+D0C2B;G1CiB;sE2Ca;G3CgD;0C4CK;G5CmB;2C6CO;G7CE;gD8CE;G9CI;6C+CO;G/CuB;gDgDO;GhDG;+CiDa;GjDG;8CkDa;GlDE;EmDE;QCa,0CD;gCEuB;mBCW,yCD;wBEI,sDF;OFW;GnDuI;CDC;AyDsB;CzDE"}],[{"names":["<global>","setGlobalOptions","setContext","beginScroll","endScroll"],"mappings":"AAA;oBCmC;GDmB;cEM;GFE;EGM;GHE;EIM;GJE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","splitLayoutProps"],"mappings":"AAA;eCY;CD0D"}],[{"names":["<global>","dismissKeyboard"],"mappings":"AAA;ACgB;CDE"}],[{"names":["<global>","Keyboard","constructor","addListener$argument_1","addListener","removeAllListeners","dismiss","isVisible","metrics","scheduleLayoutAnimation"],"mappings":"AAA;ACyG;ECU;wCCC;KDE;wCCC;KDE;GDC;EG0B;GHM;EIO;GJE;EKK;GLE;EMK;GNE;EOK;GPE;EQM;GRW;CDC"}],[{"names":["<global>","setEnabled","configureNext","onAnimationComplete","<anonymous>","create","checkConfig"],"mappings":"AAA;ACiC;CDE;AEU;8BCmB;GDO;QEc,cF;6BEW,cF;QEE,cF;CFG;AKE;CLW;EMqE;GNE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC4D,4BD"}],[{"names":["<global>","processDecelerationRate"],"mappings":"AAA;ACY;CDe"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC4B,4BD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICgK,4BD"}],[{"names":["<global>","ScrollViewStickyHeader","callbackRef","ref.setNextHeaderY","useMemo$argument_0","useState$argument_0","useEffect$argument_0","animatedValueListener","setTimeout$argument_0","<anonymous>","_onLayout"],"mappings":"AAA;qBC0C;sBCiB;yBCI;KDE;GDK;IGM;cHgB;IIK;KJY;YKM;GLI;IMiB;kCCW;ODI;KNC;YKI;WGsF;KHO;GLC;oBSE;GTU;CDkC"}],[{"names":["<global>","useMergeRefs","<anonymous>"],"mappings":"AAA;eC0B;ICI;KDU;CDG"}],[{"names":["<global>","Batchinator","constructor","dispose","schedule","setTimeout$argument_0","InteractionManager.runAfterInteractions$argument_0","_taskHandle.cancel"],"mappings":"AAA;ACoC;ECI;GDG;EEO;GFQ;EGC;qCCI;iECC;ODK;KDC;gCGC,iCH;GHC;CDC"}],[{"names":["<global>","clamp"],"mappings":"AAA;ACY;CDQ"}],[{"names":["<global>","CellRenderMask","constructor","enumerateRegions","addCells","numCells","equals","_regions.every$argument_0","_findRegion"],"mappings":"AAA;OCkB;ECI;GDmB;EEE;GFE;EGE;GHqE;EIE;GJE;EKE;QCK;wDDG;GLG;EOE;GPkB;CDC"}],[{"names":["<global>","ChildListCollection","add","remove","forEach","forEachInCell","anyInCell","size"],"mappings":"AAA;eCY;ECI;GDW;EEE;GFY;EGE;GHM;EIE;GJK;EKE;GLQ;EME;GNE;CDC"}],[{"names":["<global>","Info","FillRateHelper","addListener","remove","_listeners.filter$argument_0","setSampleRate","setMinSampleCount","constructor","activate","deactivateAndFlush","_listeners.forEach$argument_0","computeBlankness","enabled","_resetData"],"mappings":"AAA;ACgB;CDW;AEuB;ECQ;cCS;uCCC,iCD;ODC;GDE;EIE;GJE;EKE;GLE;EME;GNM;EOE;GPK;EQE;uBCuC,0BD;GRE;EUE;GVmG;EWE;GXE;EYE;GZK;CFC"}],[{"names":["<global>","StateSafePureComponent","constructor","setState","setState$argument_0","_installSetStateHooks","Object.defineProperty$argument_2.get","Object.defineProperty$argument_2.set"],"mappings":"AAA;eCsB;ECM;GDG;EEE;qBCK;ODW;GFI;EIE;MCK;ODM;MEC;OFE;MCG;ODM;MEC;OFE;GJE;CDC"}],[{"names":["<global>","ViewabilityHelper","constructor","dispose","computeViewableItems","onUpdate","_viewableIndices.every$argument_0","setTimeout$argument_0","resetViewableIndices","recordInteraction","_onUpdateSync","viewableIndicesToCheck.filter$argument_0","viewableIndicesToCheck.map$argument_0","_isViewable","_getPixelsVisible","_isEntirelyVisible"],"mappings":"AAA;AC4E;ECO;GDI;EEK;GFK;EGK;GHuE;EIM;kCCiD,oCD;2CEQ;OFW;GJa;EOK;GPE;EQK;GRE;ESE;2DCe;wCDC;iCEI;OFG;GTsB;CDC;AaE;CbgB;AcE;CdO;AeE;CfM"}],[{"names":["<global>","CellRenderer","CellRenderer.getDerivedStateFromProps","CellRenderer#_separators.highlight","CellRenderer#_separators.unhighlight","CellRenderer#_separators.updateProps","CellRenderer#updateSeparatorProps","setState$argument_0","CellRenderer#componentWillUnmount","CellRenderer#_onLayout","CellRenderer#_renderElement","CellRenderer#render"],"mappings":"AAA;eCiE;ECW;GDU;eEM;KFK;iBGC;KHK;iBIC;KJS;EKG;kBCC;MDE;GLC;EOE;GPE;cQE;GRO;ESE;GTuC;EUE;GVqE;CDC"}],[{"names":["<global>","VirtualizedListContextResetter","VirtualizedListContextProvider","useMemo$argument_0","VirtualizedListCellContextProvider"],"mappings":"AAA;OC+C;CDU;OEK;ICS;MDO;CFc;OIK;IDU,8DC;CJQ"}],[{"names":["<global>","elementsThatOverlapOffsets","newRangeCount","computeWindowedRenderLimits","keyExtractor"],"mappings":"AAA;OCmB;CD4C;OEQ;CFqB;OGQ;CHmJ;OIE;CJQ"}],[{"names":["<global>","ponyfill","isEqual","areInputsEqual","memoizeOne","memoized"],"mappings":"AAA;ICG;KDE;AEC;CFQ;AGC;CHU;AIE;ICM;KDa;CJE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["asyncGeneratorStep","<global>","_asyncToGenerator","<anonymous>","Promise$argument_0","_next","_throw"],"mappings":"AAA;CCa;ACC;SCC;uBCG;MCE;ODE;MEC;OFE;KDE;GDC;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICoJ,4BD"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC+C,4BD"}],[{"names":["<global>","getImageSourcesFromImageProps","srcSetList.forEach$argument_0"],"mappings":"AAA;OCqB;uBCqB;KDe;CDsB"}],[{"names":["<global>","convertObjectFitToResizeMode"],"mappings":"AAA;OCY;CDQ"}],[{"names":["<global>","React.forwardRef$argument_0","useMemo$argument_0"],"mappings":"AAA;mBCgC;GD4B;ECG;cCW;ODM;GDuC"}],[{"names":["<global>","useAnimatedProps","useReducer$argument_0","useMemo$argument_0","AnimatedProps$argument_1","refEffect","onUpdateRef.current","<anonymous>","reduceAnimatedProps","useAnimatedPropsLifecycle","useEffect$argument_0","useLayoutEffect$argument_0","getEventTarget","isFabricInstance","hasFabricHandle"],"mappings":"AAA;eCgC;sDCG,kBD;IEQ,+BC,6BD,CF;IImB;4BCM;ODsB;aEa;OFM;KJC;CDM;AQE;CRS;ASS;YCI;GDK;kBEE;WJE;KIE;GFC;kBEE;WJS;KIO;GFC;CTC;AYE;CZM;AaG;Cbc;AcG;CdG"}],[{"names":["<global>","useRefEffect","<anonymous>"],"mappings":"AAA;eC4B;ICK;KDQ;CDG"}],[{"names":["<global>","React.forwardRef$argument_0"],"mappings":"AAA;sDCmB;CDE"}],[{"names":["<global>","SectionList","scrollToLocation","recordInteraction","flashScrollIndicators","getScrollResponder","getScrollableNode","setNativeProps","render","VirtualizedSectionList.props.getItemCount","VirtualizedSectionList.props.getItem","_captureRef"],"mappings":"AAA;eC6K;ECe;GDI;EEO;GFG;EGO;GHG;EIK;GJK;EKE;GLK;EME;GNK;EOE;sBCY,qBD;iBEC,8BF;GPG;gBUK;GVE;CDC"}],[{"names":["<global>","VirtualizedSectionList","scrollToLocation","getListRef","render","VirtualizedList.props.getItem","VirtualizedList.props.getItemCount","_getItem","_keyExtractor","_subExtractor","_convertViewable","_onViewableItemsChanged","_renderItem","<anonymous>","_updatePropsFor","_updateHighlightFor","_setUpdateHighlightFor","_setUpdatePropsFor","_getSeparatorComponent","_captureRef","ItemWithSeparator","React.useEffect$argument_0","separators.highlight","separators.unhighlight","separators.updateProps"],"mappings":"AAA;ACgI;ECG;GDuB;EEE;GFE;EGE;iBCsC;oDDC;sBEE,eF;GHS;EME;GN0B;kBOG;GPG;EQE;GRsD;qBSE;GToB;4BUE;GViB;IWG;ICE;KZiD;oBaE;GbK;wBcE;GdK;2BeE;GfS;uBgBE;GhBM;EiBE;GjBsB;gBkBK;GlBE;CDC;AoBgC;kBCqC;WRI;KQG;GDC;eEQ;KFM;iBGC;KHM;iBIC;KJc;CpB6B"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","ImageBackground","setNativeProps","_captureRef","render"],"mappings":"AAA;AC8C;ECC;GDM;gBEI;GFS;EGE;GHwC;CDC"}],[{"names":["<global>","InputAccessoryView","render"],"mappings":"AAA;ACuF;ECC;GDkB;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","KeyboardAvoidingView","constructor","_relativeKeyboardHeight","_onKeyboardChange","_onLayout","_updateBottomIfNecessary","componentDidMount","componentWillUnmount","_subscriptions.forEach$argument_0","render"],"mappings":"AAA;AC6D;ECO;GDI;EEE;GF+B;sBGE;GHG;cIE;GJe;6BKE;GLwB;EME;GNW;EOE;gCCC;KDE;GPC;ESE;GT0E;CDC"}],[{"names":["<global>","confirmProps","Modal","constructor","componentDidMount","ModalEventEmitter.addListener$argument_1","componentWillUnmount","componentDidUpdate","render","RCTModalHostView.props.onDismiss","_shouldSetResponder"],"mappings":"AAA;ACiK;CDY;AEE;ECW;GDM;EEE;QCK;SDI;GFG;EIE;GJI;EKE;GLI;EME;mBCkC;SDI;GNqB;EQG;GRE;CFC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getI18nManagerConstants","module.exports.getConstants","module.exports.allowRTL","module.exports.forceRTL","module.exports.swapLeftAndRightInRTL"],"mappings":"AAA;ACkB;CDW;gBEG;GFM;YGE;GHM;YIE;GJM;yBKE;GLM"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","Pressable","useImperativeHandle$argument_1","useMemo$argument_0","onPressIn","onPressOut","usePressState"],"mappings":"AAA;AC0M;oCCmC,qBD;IE2C;MCc;ODQ;MEE;OFQ;MFC;CDkC;AME;CNG"}],[{"names":["<global>","useAndroidRippleForView","useMemo$argument_0","onPressIn","onPressMove","onPressOut"],"mappings":"AAA;eCuC;iBCa;QCwB;SDU;QEC;SFS;QGC;SHK;GDI;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","Slider","<anonymous>","SliderNativeComponent.props.onResponderTerminationRequest","SliderNativeComponent.props.onStartShouldSetResponder"],"mappings":"AAA;eCyM;MCiB;ODS;MCI;ODE;qCEkB,WF;iCGE,UH;CDQ"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","mergePropsStack","propsStack.reduce$argument_0","createStackEntry","StatusBar","setHidden","setBarStyle","setNetworkActivityIndicatorVisible","setBackgroundColor","setTranslucent","pushStackEntry","popStackEntry","replaceStackEntry","componentDidMount","componentWillUnmount","componentDidUpdate","_updatePropsStack","setImmediate$argument_0","render"],"mappings":"AAA;AC8G;ICK;KDO;CDG;AGM;CH6B;AIgE;EC0C;GDQ;EEO;GFQ;EGM;GHS;EIO;GJqB;EKM;GLO;EMQ;GNK;EOO;GPM;EQQ;GRQ;ESI;GTM;EUE;GVI;EWE;GXK;6BYK;8CCG;KDqE;GZC;EcE;GdE;CJC"}],[{"names":["<global>","NativeStatusBarManager.getConstants","NativeStatusBarManager.setColor","NativeStatusBarManager.setTranslucent","NativeStatusBarManager.setStyle","NativeStatusBarManager.setHidden"],"mappings":"AAA;ECmC;GDQ;EEE;GFE;EGE;GHE;EIO;GJE;EKE;GLE"}],[{"names":["<global>","NativeStatusBarManager.getConstants","NativeStatusBarManager.getHeight","NativeStatusBarManager.setNetworkActivityIndicatorVisible","NativeStatusBarManager.addListener","NativeStatusBarManager.removeListeners","NativeStatusBarManager.setStyle","NativeStatusBarManager.setHidden"],"mappings":"AAA;EC2C;GDQ;EEG;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EMQ;GNE;EOK;GPE"}],[{"names":["<global>","returnsFalse","returnsTrue","Switch","handleChange","React.useLayoutEffect$argument_0"],"mappings":"AAA;qBCwF,WD;oBEC,UF;qBGiD;uBCuB;GDI;wBEE;GFiB;CHmE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","emptyFunctionThatReturnsTrue","InternalTextInput","useLayoutEffect$argument_0","<anonymous>","clear","setSelection","isFocused","getNativeRef","setAndForwardRef$argument_0.getForwardedRef","setAndForwardRef$argument_0.setLocalRef","_onChange","_onChangeSync","_onSelectionChange","_onFocus","_onBlur","_onScroll","React.useMemo$argument_0","onPress","TextInput"],"mappings":"AAA;qCCg8B,UD;AEiH;kBCyD;GD+B;kBCY;aCM;ODM;GDE;EGE;GHU;EIE;GJU;EKG;GLE;EME;GNE;qBOG,wBP;iBQC;KR+B;oBSG;GTiB;wBUE;GVkB;6BWE;GXa;mBYE;GZK;kBaE;GbK;oBcE;GdE;IekC;eCC;ODM;MfK;CFmI;qBmBuF;CnB0D"}],[{"names":["<global>","nullthrows"],"mappings":"AAA;ACE;CDO"}],[{"names":["<global>","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICwC,4BD"}],[{"names":["<global>","extractSingleTouch","TouchableMixin.componentDidMount","TouchableMixin.componentWillUnmount","TouchableMixin.touchableGetInitialState","TouchableMixin.touchableHandleResponderTerminationRequest","TouchableMixin.touchableHandleStartShouldSetResponder","TouchableMixin.touchableLongPressCancelsPress","TouchableMixin.touchableHandleResponderGrant","TouchableMixin.touchableHandleResponderRelease","TouchableMixin.touchableHandleResponderTerminate","TouchableMixin.touchableHandleResponderMove","TouchableMixin.touchableHandleFocus","TouchableMixin.touchableHandleBlur","TouchableMixin._remeasureMetricsOnActivation","TouchableMixin._handleQueryLayout","TouchableMixin._handleDelay","TouchableMixin._handleLongDelay","TouchableMixin._receiveSignal","TouchableMixin._cancelLongPressDelayTimeout","TouchableMixin._isHighlight","TouchableMixin._savePressInLocation","TouchableMixin._getDistanceBetweenPoints","TouchableMixin._performSideEffectsForTransition","TouchableMixin._startHighlight","TouchableMixin._endHighlight","setTimeout$argument_0","renderDebugView"],"mappings":"AAA;2BCuB;CDsB;qBEyU;GFI;wBGO;GHI;4BIS;GJM;8CKQ;GLE;0CMO;GNE;kCOK;GPE;iCQS;GRoC;mCSO;GTG;qCUO;GVG;gCWO;GX2E;wBYY;GZE;uBaY;GbE;iCcgF;GdW;sBeI;GfwB;gBgBI;GhBG;oBiBI;GjBS;kBkBY;GlBqC;gCmBI;GnBG;gBoBE;GpBK;wBqBI;GrBO;6BsBE;GtBS;oCuBe;GvB2D;mBwBI;GxBG;iByBI;+CCM;SDE;GzBK;mB2BwB;G3BY"}],[{"names":["<global>","BoundingDimensions","prototype.destructor","getPooledFromElement"],"mappings":"AAA;ACqB;CDG;0CEE;CFG;0CGM;CHK"}],[{"names":["<global>","oneArgumentPooler","twoArgumentPooler","threeArgumentPooler","fourArgumentPooler","standardReleaser","addPoolingTo"],"mappings":"AAA;0BCsB;CDS;0BEI;CFS;4BGI;CHS;2BII;CJS;yBKM;CLU;qBMgB;CNoB"}],[{"names":["<global>","Position","prototype.destructor"],"mappings":"AAA;ACsB;CDG;gCEE;CFG"}],[{"names":["<global>","TouchableHighlight","_createPressabilityConfig","onBlur","onFocus","onPress","setTimeout$argument_0","onPressIn","onPressOut","_createExtraStyles","_showUnderlay","_hideUnderlay","_hasPressHandler","render","componentDidMount","componentDidUpdate","componentWillUnmount","React.forwardRef$argument_0"],"mappings":"AAA;AC2J;ECU;cCc;ODO;eEC;OFO;eGE;yCCM;WDE;OHK;iBKC;OLS;kBMC;ONO;GDE;EQE;GRU;ESE;GTQ;EUE;GVc;EWE;GXO;EYE;GZmF;EaE;GbE;EcE;GdE;EeE;GfM;CDC;oCiBE;CjBE"}],[{"names":["<global>","TouchableWithoutFeedback","render","componentDidUpdate","componentWillUnmount","createPressabilityConfig"],"mappings":"AAA;ACqH;ECK;GD8D;EEE;GFE;EGE;GHE;CDC;AKE;CLwB"}],[{"names":["<global>","showActionSheetWithOptions","showShareActionSheetWithOptions","dismissActionSheet"],"mappings":"AAA;ECyC;GDwD;EEyB;GFuB;sBGE;GHK"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","nativeEventEmitter.addListener$argument_1","module.exports.getColorScheme","module.exports.addChangeListener"],"mappings":"AAA;ICwC;KDS;EEe;GFqB;EGK;GHE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","AppState","constructor","emitter.addListener$argument_1","NativeAppState.getCurrentAppState$argument_0","addEventListener"],"mappings":"AAA;ACqC;ECM;+CCsB;ODG;wCEM;OFO;GDE;EIQ;wDFY;SEE;0DFS;SEO;GJG;CDC"}],[{"names":["<global>","logError"],"mappings":"AAA;iBCiB;CDO"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","module.exports.getString","module.exports.setString"],"mappings":"AAA;ECwB;GDE;EEU;GFE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","addMenuItem","reload","onFastRefresh","emitter.addListener$argument_1"],"mappings":"AAA;ECqB,yDD;EEC,gCF;EGC,wBH;ICgB;6DGY;OHI;KDE;IEC;KFM;IGC;KHE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","Linking","constructor","addEventListener","openURL","canOpenURL","openSettings","getInitialURL","InteractionManager.runAfterInteractions.then$argument_0","sendIntent","Promise$argument_0","_validateURL"],"mappings":"AAA;AC8B;ECC;GDE;EEQ;GFM;EGO;GHO;EIO;GJO;EKO;GLM;EMQ;uDCE;yDDC;GNG;EQS;yBCW,qDD;GRE;EUE;GVM;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","install","console.error","console.warn","RCTLog.setWarningHandler$argument_0","uninstall","isInstalled","ignoreLogs","ignoreAllLogs","clearAllLogs","addLog","addException","isRCTLogAdviceWarning","isWarningModuleWarning","registerWarning","registerError"],"mappings":"AAA;IC8C;wBCmB;SDE;uBEE;SFE;+BGU;OHE;KDC;IKE;KLa;IME;KNE;IOE;KPE;IQE;KRE;ISE;KTE;IUE;KVI;IWE;KXI;gCYG;GZI;iCaE;GbE;0BcE;Gd0B;wBeI;GfqD;ICG;KDE;IKE;KLE;IME;KNE;IOE;KPE;IQE;KRE;ISE;KTE;IUE;KVE;IWE;KXE"}],[{"names":["<global>","_initializeGestureState","_updateGestureStateOnMove","create","panHandlers.onStartShouldSetResponder","panHandlers.onMoveShouldSetResponder","panHandlers.onStartShouldSetResponderCapture","panHandlers.onMoveShouldSetResponderCapture","panHandlers.onResponderGrant","panHandlers.onResponderReject","panHandlers.onResponderRelease","panHandlers.onResponderStart","panHandlers.onResponderMove","panHandlers.onResponderEnd","panHandlers.onResponderTerminate","panHandlers.onResponderTerminationRequest","getInteractionHandle","clearInteractionHandle"],"mappings":"AAA;ECqS;GDY;EE0B;GFoC;EGkC;MCsB;ODI;MEC;OFI;MGC;OHW;MIE;OJe;MKE;OLgB;MME;ONO;MOE;OPQ;MQE;ORM;MSE;OTgB;MUE;OVS;MWE;OXQ;MYE;OZI;MaI;ObE;GHE;AiBG;CjBa"}],[{"names":["<global>","centroidDimension","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY"],"mappings":"AAA;qBC0B;GDuD;yCEE;GFU;yCGE;GHU;0CIE;GJU;0CKE;GLU;oBME;GNO;oBOE;GPO"}],[{"names":["<global>","PermissionsAndroid","checkPermission","check","requestPermission","request","Promise$argument_0","NativeDialogManagerAndroid.showAlert$argument_1","NativeDialogManagerAndroid.showAlert$argument_2","requestMultiple"],"mappings":"AAA;ACwF;EC4D;GDiB;EEQ;GFc;EGgB;GHgB;EIQ;2BCuB;YCU,kDD;YEC;6EFC;SDE;GJI;EQS;GRgB;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","PushNotificationIOS","presentLocalNotification","scheduleLocalNotification","cancelAllLocalNotifications","removeAllDeliveredNotifications","getDeliveredNotifications","removeDeliveredNotifications","setApplicationIconBadgeNumber","getApplicationIconBadgeNumber","cancelLocalNotifications","getScheduledLocalNotifications","addEventListener","PushNotificationEmitter.addListener$argument_1","removeEventListener","requestPermissions","abandonPermissions","checkPermissions","getInitialNotification","NativePushNotificationManagerIOS.getInitialNotification.then$argument_0","getAuthorizationStatus","constructor","Object.keys.forEach$argument_0","finish","getMessage","getSound","getCategory","getAlert","getContentAvailable","getBadgeCount","getData","getThreadID"],"mappings":"AAA;ACmG;ECuB;GDM;EEO;GFM;EGO;GHM;EIO;GJM;EKO;GLQ;EMO;GNM;EOO;GPM;EQO;GRM;ESO;GTM;EUO;GVM;EWQ;QCe;SDE;QCK;SDE;QCK;SDE;QCK;SDE;GXI;EaQ;GbiB;EcU;Gd8B;EeO;GfM;EgBQ;GhBO;EiBQ;MCM;ODE;GjBE;EmBK;GnBS;EoBQ;uCCW;ODY;GpBS;EsBQ;GtBkB;EuBK;GvBG;EwBO;GxBE;EyBO;GzBE;E0BO;G1BE;E2BO;G3BE;E4BO;G5BE;E6BO;G7BE;E8BO;G9BE;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","Share","share","NativeShareModule.share.then$argument_0","Promise$argument_0","NativeActionSheetManager.showShareActionSheetWithOptions$argument_1","NativeActionSheetManager.showShareActionSheetWithOptions$argument_2"],"mappings":"AAA;ACqC;ECqC;QCkC;UDG;yBEG;UCwB,sBD;UEC;WFY;OFE;GDI;CDY"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","useAnimatedValue"],"mappings":"AAA;eCe;CDS"}],[{"names":["<global>","useColorScheme","useSyncExternalStore$argument_0","<anonymous>","useSyncExternalStore$argument_1"],"mappings":"AAA;eCiB;ICE;aCE,qCD;KDC;IGC,iCH;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","h","q","n$argument_0","m$argument_0","a$argument_0","r"],"mappings":"AAA;oCCS,+DD,iHE,mFC,uDD,YE,sCC,6BD,EF,oBF;AMC,2FN"}],[{"names":["<global>","useWindowDimensions","useState$argument_0","useEffect$argument_0","handleChange","<anonymous>"],"mappings":"AAA;eCiB;+CCG,8BD;YEC;ICC;KDa;WEM;KFE;GFC;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","vibrateByPattern","setTimeout$argument_0","vibrateScheduler","vibrate","cancel"],"mappings":"AAA;ACyB;aCc,iDD;CDC;AGE;IDoB,0DC;CHG;WIQ;GJwB;UKM;GLM"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","YellowBox","YellowBox.ignoreWarnings","YellowBox.install","YellowBox.uninstall","YellowBox#render"],"mappings":"AAA;cCqB;ICC;KDM;IEE;KFK;IGE;KHK;IIE;KJE;GDC;cCE;ICC;KDE;IEE;KFE;IGE;KHE;IIE;KJE;GDC"}],[{"names":["<global>","EventEmitter","constructor","nativeModule.addListener","nativeModule.removeListeners","addListener","subscription.remove","removeAllListeners","removeSubscription","emit"],"mappings":"AAA;OCG;ICI;uCCM,mHD;2CEC,uHF;KDI;IIC;oBCQ;aDE;KJG;IMC;KNa;IOC;8BFiB,SE;KPI;IQC;KRE;CDC"}],[{"names":["<global>","Object.keys.forEach$argument_0","NativeProxy.exportedMethodsKey.moduleName.forEach$argument_0","moduleName.methodInfo.name","moduleName.addListener","moduleName.removeListeners"],"mappings":"AAA;yDCW;4DCI;8DCC;aDY;SDC;yDGY,4FH;6DIC,gGJ;yDGM,SH;6DIC,SJ;KDE"}],[{"names":["<global>","requireCachedNativeComponent","requireNativeViewManager","React.forwardRef$argument_0","omit","pick","propNames.reduce$argument_0"],"mappings":"AAA;ACW;CDQ;OEI;oDCa;KDI;CFG;AIC;CJM;AKC;4BCC;KDK;CLC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","CodedError","constructor"],"mappings":"AAA;OCK;ICG;KDG;CDC"}],[{"names":["<global>","UnavailabilityError","constructor"],"mappings":"AAA;OCO;ICC;KDE;CDC"}],[{"names":["<global>","eventEmitter.addListener$argument_1"],"mappings":"AAA;6CCO;KDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","deprecate","prependLibrary","codeFromLibrary"],"mappings":"AAA;eCM;CD2B;AEC;CFE;AGM;CHG"}],[{"names":["<global>","<anonymous>","indexOrEnd","split","tryParse","validate","compareVersions","validateOperator","compareVersions.validate","compareVersions.compare"],"mappings":"AAA;CCC;CDS,OC;ECI;GDE;EEE;GFM;EGE;GHE;EIE;GJO;EKE;GLiC;EMkB;GNO;6BOE;GPE;4BQE;GRQ;CDG"}],[{"names":["<global>","requireNativeModule"],"mappings":"AAA;OCU;CDQ"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA;CCC;CDa"}],[{"names":["<global>","usePermission","getPermission","requestPermission","runMethods","didMount","<anonymous>","createPermissionHook"],"mappings":"AAA;ACM;sCCI;KDK;0CEC;KFK;cGC;KHK;cIE;eCE;SDE;KJC;CDE;OOK;WDC,4CC;CPC"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA;CCE;CDa;CCG;CDI;CCO;CDI"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","_setShouldThrowAnErrorOutsideOfExpo","shouldThrowAnErrorOutsideOfExpo"],"mappings":"AAA;OCI;CDE;OEI;CFE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getDevServer"],"mappings":"AAA;AC2B;CDa"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","setCustomSourceTransformer$argument_0"],"mappings":"AAA;+BCK;KDc"}],[{"names":["<global>","Asset","constructor","loadAsync","moduleIds.map$argument_0","fromModule","fromMetadata","fromURI","downloadAsync","Promise$argument_0","_downloadCallbacks.forEach$argument_0"],"mappings":"AAA;OCa;ICmD;KDyB;IEa;yCCE,wDD;KFC;IIQ;KJgC;IKE;KLkB;IME;KNqB;IOU;8BCK;aDE;4CEkB,0BF;4CEG,yBF;KPQ;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","selectAssetSource","meta.scales.findIndex$argument_0","resolveUri"],"mappings":"AAA;OCc;wCCQ,kBD;CD2C;OGM;CHY"}],[{"names":["<global>","assertPath","normalizeStringPosix","_format","resolve","normalize","isAbsolute","join","relative","_makeLong","dirname","basename","extname","format","parse"],"mappings":"AAA;AC0B;CDI;AEG;CF+D;AGE;CHU;WII;GJ0C;aKE;GLgB;cME;GNG;QOE;GPiB;YQE;GRwF;aSE;GTE;WUE;GVuB;YWE;GXqE;WYE;GZ+C;UaE;GbK;ScE;Gd0E"}],[{"names":["<global>","trimLeft","sanitize","lolcation","isSpecial","extractProtocol","resolve","Url","set","toString"],"mappings":"AAA;ACmB;CDE;EEiB;GFE;AG8B;CHgC;AIS;CJS;AKkB;CLiD;AMU;CN0B;AOgB;CPuK;AQe;CR8F;ASS;CTmD"}],[{"names":["<global>","required"],"mappings":"AAA;iBCW;CD0B"}],[{"names":["<global>","decode","encode","querystring","querystringify"],"mappings":"AAA;ACY;CDM;AES;CFM;AGS;CHsB;AIU;CJqC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getLocalAssets","getManifest","getManifest2","downloadAsync","_downloadAsyncManagedEnv","_downloadAsyncUnmanagedEnv"],"mappings":"AAA;OCoB;CDE;OEC;CFE;OGC;CHE;OIM;CJK;AKK;CLiB;AMM;CNY"}],[{"names":["<global>","<anonymous>","safeAdd","bitRotateLeft","md5cmn","md5ff","md5gg","md5hh","md5ii","binlMD5","binl2rstr","rstr2binl","rstrMD5","rstrHMACMD5","rstr2hex","str2rstrUTF8","rawMD5","hexMD5","rawHMACMD5","hexHMACMD5","md5","define$argument_0"],"mappings":"AAA;ECuB;ECW;GDI;EES;GFE;EGa;GHE;EIa;GJE;EKa;GLE;EMa;GNE;EOa;GPE;EQS;GR+F;ESQ;GTQ;EUS;GVY;EWQ;GXE;EYS;GZgB;EaQ;GbU;EcQ;GdE;EeQ;GfE;EgBO;GhBE;EiBQ;GjBE;EkBQ;GlBE;EmBY;GnBW;WoBG;KpBE;CDM"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","normalizeEndingSlash","getInfoAsync","readAsStringAsync","getContentUriAsync","writeAsStringAsync","deleteAsync","deleteLegacyDocumentDirectoryAndroid","moveAsync","copyAsync","makeDirectoryAsync","readDirectoryAsync","getFreeDiskStorageAsync","getTotalDiskCapacityAsync","downloadAsync","uploadAsync","createDownloadResumable","createUploadTask","isUploadProgressData","FileSystemCancellableNetworkTask","FileSystemCancellableNetworkTask#cancelAsync","FileSystemCancellableNetworkTask#isTaskCancelled","FileSystemCancellableNetworkTask#get__uuid","FileSystemCancellableNetworkTask#addSubscription","emitter.addListener$argument_1","data.get__totalByteSent","FileSystemCancellableNetworkTask#removeSubscription","UploadTask","UploadTask#constructor","UploadTask#getEventName","UploadTask#getCallback","UploadTask#uploadAsync","DownloadResumable","DownloadResumable#constructor","DownloadResumable#get__fileUri","DownloadResumable#getEventName","DownloadResumable#getCallback","DownloadResumable#downloadAsync","DownloadResumable#pauseAsync","DownloadResumable#resumeAsync","DownloadResumable#savable","<anonymous>","getUriForDirectoryInRoot","requestDirectoryPermissionsAsync","createFileAsync"],"mappings":"AAA;ACU;CDK;OEsB;CFK;OGO;CHK;OIkB;CJU;OKQ;CLK;OMM;CNK;OOC;CPM;OQK;CRK;OSM;CTK;OUM;CVK;OWM;CXK;OYM;CZK;OaM;CbK;OcsB;CdQ;Oe6B;CfU;OgBiB;ChBE;OiBC;CjBE;AkBC;ClBE;OmBC;ICM;KDO;IEC;KFM;IGC;KHE;IIC;0ECI;4BCO;6BDG;SDO;KJC;IOC;KPM;CnBC;O2BC;ICK;KDa;IEC;KFE;IGC;KHE;IIE;KJW;C3BC;OgCC;ICM;KDO;IEC;KFE;IGC;KHE;IIC;KJE;IKK;KLS;IMM;KNoB;IOK;KPS;IQK;KRO;ChCC;CyCwF;ICO;KDE;IES;KFK;I9BO;K8BK;I/BQ;K+BK;IGS;KHK;CzCsB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","v1"],"mappings":"AAA;ACgB;CD0F"}],[{"names":["<global>","whatwgRNG","mathRNG"],"mappings":"AAA;mBCc;GDG;mBEQ;GFO"}],[{"names":["<global>","bytesToUuid"],"mappings":"AAA;ACS;CDc"}],[{"names":["<global>","v4"],"mappings":"AAA;ACG;CDuB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","platformModule.get__name","platformModule.get__documentDirectory","platformModule.get__cacheDirectory","platformModule.get__bundledAssets","platformModule.get__bundleDirectory","platformModule.addListener","platformModule.removeListeners"],"mappings":"AAA;ICC;KDE;IEC;KFE;IGC;KHE;IIC;KJE;IKC;KLE;IMC,0BN;IOC,0BP"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA;CCK;CDY;CCE;CDU;CCM;CDS"}],[{"names":["<global>","getFilename","getFileExtension","getManifestBaseUrl"],"mappings":"AAA;OCC;CDG;OEC;CFK;OGY;CHe"}],[{"names":["<global>","isImageType","getImageInfoAsync","Promise$argument_0","img.onload"],"mappings":"AAA;OCG;CDE;OEC;uBCI;qBCG;SDM;KDE;CFC"}],[{"names":["<global>","getLocalAssetUri"],"mappings":"AAA;OCU;CDuB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","useAssets","useEffect$argument_0"],"mappings":"AAA;OCuB;cCG;KDE;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","processFontFamily","isLoaded","isLoading","loadAsync","names.map$argument_0","loadFontInNamespaceAsync","<anonymous>","unloadAllAsync","unloadAsync","unloadFontInNamespaceAsync"],"mappings":"AAA;OCgB;CDkB;OEQ;CFE;OGQ;CHE;OIc;oCCO,uDD;CJI;AMC;gCCe;KDQ;CNE;OQK;CRW;OSU;oCJU,yDI;CTI;AUC;CVgB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA;CCY;CD8B"}],[{"names":["<global>","fontFamilyNeedsScoping","getAssetForSource","loadSingleFontAsync","getNativeFontName"],"mappings":"AAA;OCO;CDK;OEC;CFiB;OGC;CHU;OIC;CJO"}],[{"names":["<global>","useFonts","useEffect$argument_0","loadAsync.then$argument_0"],"mappings":"AAA;OCoB;cCG;kBCE,qBD;KDE;CDE"}],[{"names":["<global>","customizeUnavailableMessage","customizeModuleIsMissingMessage","customizeError","errorHandler","createErrorHandler","<anonymous>","disableErrorHandling"],"mappings":"AAA;ACE;CDE;AEC;CFI;AGC;CHS;AIC;CJK;OKC;WCC;KDM;CLC;OOC;CPE"}],[{"names":["<global>","createRoot"],"mappings":"AAA;OCE;CDE"}],[{"names":["<global>","createStackNavigator$argument_0.Splash.navigationOptions","createStackNavigator$argument_0.RecapTrueFalse.navigationOptions","createStackNavigator$argument_0.Recap.navigationOptions","createStackNavigator$argument_0.Results.navigationOptions","createStackNavigator$argument_0.ResultsTrueFalse.navigationOptions","createStackNavigator$argument_0.Info.navigationOptions","createStackNavigator$argument_0.Dictionary.navigationOptions","createStackNavigator$argument_0.QuizIndex.navigationOptions","createStackNavigator$argument_0.Quiz.navigationOptions","createStackNavigator$argument_0.TrueFalse.navigationOptions","createStackNavigator$argument_0.Exam.navigationOptions","createStackNavigator$argument_0.Setup.navigationOptions"],"mappings":"AAA;uBCqB;MDE;uBEI;MFE;uBGI;MHE;uBII;MJE;uBKI;MLE;uBMI;MNE;uBOI;MPE;uBQI;MRE;uBSI;MTE;uBUI;MVQ;uBWI;MXE;uBYI;MZE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","initialize","maybeInitializeFabric"],"mappings":"AAA;OCM;CDE;OEI;CFK"}],[{"names":["<global>","isStateChangeEvent","isTouchEvent","onGestureHandlerEvent","startListening","stopListening"],"mappings":"AAA;AC0B;CDK;AEE;CFI;OGE;CHyF;OIE;CJY;OKE;CLU"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getNextHandlerTag","registerHandler","registerOldGestureHandler","unregisterHandler","findHandler","findOldGestureHandler","findHandlerByTestID"],"mappings":"AAA;OCW;CDE;OEE;CFS;OGE;CHK;OIE;CJK;OKE;CLE;OME;CNE;OOE;CPM"}],[{"names":["<global>","toArray","withPrevAndCurrent","currentArr.forEach$argument_0","hasProperty","isJestEnv","tagMessage","isFabric","shouldUseCodegenNativeComponent","isRemoteDebuggingEnabled"],"mappings":"AAA;OCQ;CDM;OEM;qBCO;GDK;CFE;OIG;CJE;OKE;CLG;OME;CNE;OOI;CPG;OQE;CRG;OSE;CTI"}],[{"names":["<global>","GestureStateManager.create","begin","activate","fail","end"],"mappings":"AAA;ECqB;aCG;ODO;gBEE;OFO;YGE;OHO;WIE;OJO;GDE"}],[{"names":["<global>","Reanimated.setGestureState"],"mappings":"AAA;iCCwC;KDO"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","listener","dummyListener","hasAnimatedNodes","value.some$argument_0","Object.keys.some$argument_0","flattenArray","_flattenArray","arr.forEach$argument_0","onlyAnimatedStyles","styles.filter$argument_0","isSameAnimatedStyle","has","createAnimatedComponent","AnimatedComponent","AnimatedComponent#constructor","AnimatedComponent#componentWillUnmount","AnimatedComponent#componentDidMount","AnimatedComponent#_getEventViewRef","AnimatedComponent#_attachNativeEvents","AnimatedComponent#_detachNativeEvents","AnimatedComponent#_detachStyles","AnimatedComponent#_reattachNativeEvents","AnimatedComponent#_animatedPropsCallback","AnimatedComponent#_attachProps","AnimatedComponent#_updateFromNative","AnimatedComponent#_attachPropUpdater","AnimatedComponent#_attachAnimatedStyles","styles.some$argument_0","styles.forEach$argument_0","AnimatedComponent#_detachPropUpdater","AnimatedComponent#componentDidUpdate","setAndForwardRef$argument_0.getForwardedRef","setAndForwardRef$argument_0.setLocalRef","runOnUI$argument_0","AnimatedComponent#_filterNonAnimatedStyle","AnimatedComponent#_filterNonAnimatedProps","styles.map$argument_0","Object.keys.forEach$argument_0","value.current.eventNames.forEach$argument_0","AnimatedComponent#render","React.forwardRef$argument_0"],"mappings":"AAA;ACqD;CDG;AEE;CFG;AGE;sBCK,gCD;mCEG;+DFC;CHI;AMG;wBCM;gBCC;KDM;GDC;CNG;ASE;uBCC,iCD;CTC;AWE;CXO;YYI;CZY;eamD;ECW;ICe;KDO;IEE;KFM;IGE;KHY;IIE;KJM;IKE;KLqB;IME;KNc;IOE;KPe;IQE;KR0D;6BSO;KTc;IUE;KVoB;IWE;KXQ;IYE;KZM;IaE;0CCkD;mDDC;qBES;OFe;KbmB;IgBE;KhBM;IiBE;KjBU;uBkBG;SlBG;mBmBC;kBCmC;WDG;OnBM;IqBG;KrBa;IsBE;wDCS;WDc;4DES;aFG;6CGa;aHM;KtBe;I0BE;K1BiB;GDC;qC4BM;G5BO;CbC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","default.disconnectNodeFromView","default.attachEvent","default.detachEvent","default.createNode","default.dropNode","default.configureProps","default.disconnectNodes","default.addListener","default.removeListeners","default.removeAllListeners","default.animateNextTransition"],"mappings":"AAA;ECC;GDE;EEC;GFM;EGC;GHM;EIC;GJK;EKC;GLE;EMC;GNK;EOC;GPE;EQC;GRE;ESC;GTE;EUC;GVE;EWC;GXI"}],[{"names":["<global>","isJest","isChromeDebugger","isWeb","shouldBeUseWeb","nativeShouldBeMock"],"mappings":"AAA;OCE;CDE;OEE;CFE;OGE;CHE;OIE;CJE;OKE;CLE"}],[{"names":["<global>","sanitizeArgMapping","getNode","traverse","proxyHandler.get","proxyHandler.set","AnimatedEvent","constructor","toString","attachEvent","__onEvaluate","detachEvent","createAnimatedEvent"],"mappings":"AAA;ACU;kBCM;GDS;mBEE;GFc;WGa;OHQ;WIC;OJM;CDY;eME;ECC;GDI;EEE;GFE;EGO;GHO;EIE;GJE;EKE;GLQ;CNC;OYE;CZE"}],[{"names":["<global>","getCallID","setCallID","sanitizeConfig","runPropUpdates","findAndUpdateNodes","AnimatedNode","constructor","inputNodes.filter$argument_0","toString","__attach","__detach","__getValue","__forceUpdateCache","__dangerouslyRescheduleEvaluate","__markUpdated","__nativeInitialize","__nativeTearDown","isNativelyInitialized","__onEvaluate","__getProps","__getChildren","__addChild","__removeChild","_connectAnimatedView","_disconnectAnimatedView"],"mappings":"AAA;OCU;CDE;OEE;CFE;AGE;CHyB;AIE;6BCE;GDqB;CJQ;eMK;ECM;sCCK,sCD;GDC;EGE;GHE;EIE;GJU;EKE;GLU;EME;GNQ;EOE;GPG;EQE;GRG;ESE;GTK;EUE;GVK;EWE;GXK;EYE;GZE;EaE;GbE;EcE;GdE;EeE;GfE;EgBE;GhBY;EiBE;GjBe;EkBE;GlBM;EmBE;GnBE;CNC"}],[{"names":["<global>","AnimatedValue","setValue","toString","interpolate"],"mappings":"AAA;eCS;ECC;GDkB;EEE;GFE;EGE;GHE;CDC"}],[{"names":["<global>","AnimatedSet","constructor","toString","__onEvaluate","createAnimatedSet"],"mappings":"AAA;ACK;ECI;GDa;EEE;GFE;EGE;GHI;CDC;OKE;CLE"}],[{"names":["<global>","val"],"mappings":"AAA,OC;CDE"}],[{"names":["<global>","AnimatedBlock","constructor","array.every$argument_0","toString","__onEvaluate","_array.forEach$argument_0","createAnimatedBlock","nodify","adapt","v.map$argument_0"],"mappings":"AAA;ACK;ECG;kBCE,kCD;GDK;EGE;GHE;EIE;wBCE;KDE;GJE;CDC;OOE;CPE;AQE;CRW;OSE;8BCE,qBD;CTE"}],[{"names":["<global>","sanitizeValue","initializeConstantValues","forEach$argument_0","InternalAnimatedValue","valueForConstant","constructor","__detach","ReanimatedModule.getValue$argument_1","__detachAnimation","__attachAnimation","__onEvaluate","setValue","_updateValue"],"mappings":"AAA;ACK;CDI;AEI;4BCI;8DDC;CFE;eIM;ECC;GDK;EEE;GFM;EGE;UCK,wCD;GHQ;EKE;GLK;EME;GNG;EOE;GPK;EQG;GRG;ESE;GTG;CJC"}],[{"names":["<global>","proc$argument_0","interpolateInternalSingle","interpolateInternal","checkNonDecreasing","checkMinElements","checkValidNumbers","convertToRadians","interpolate"],"mappings":"AAA;2CCgB;CDgB;AEE;CFM;AGE;CHS;AIQ;CJY;AKE;CLO;AME;CNY;AOE;CPQ;eQE;CR6C"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","reduce","<anonymous>","input.reduce$argument_0","reduceFrom","infix","single","reduce$argument_0","single$argument_0","reduceFrom$argument_0","infix$argument_0","AnimatedOperator","constructor","input.every$argument_0","toString","__onEvaluate","createAnimatedOperator"],"mappings":"AAA;ACM;SCC,wBC,4BD,CD;CDC;AIE;SFC,wBC,4BD,eE;CJC;AKE;SHC,2CG;CLC;AME;SJC,4BI;CNC;cOI,eP;cOC,eP;mBOC,eP;iBOC,eP;cOC,wBP;iBOC,2BP;eQC,mBR;cQC,kBR;cQC,kBR;cQC,kBR;cQC,kBR;eQC,mBR;eQC,mBR;eQC,mBR;cQC,kBR;gBQC,oBR;cQC,kBR;eQC,mBR;gBQC,oBR;cOC,wBP;cOC,wBP;kBSG,gBT;iBSC,gBT;cQC,SR;kBQC,iDR;kBUG,eV;YUE,gBV;qBUC,eV;kBUC,gBV;qBUC,gBV;aUE,gBV;AWG;ECK;QCO;gCDG;GDO;EGE;GHE;EIE;GJM;CXC;OgBE;SdC,wDc;ChBC"}],[{"names":["<global>","AnimatedCond","constructor","toString","__onEvaluate","createAnimatedCond"],"mappings":"AAA;ACK;ECK;GDyB;EEE;GFE;EGE;GHM;CDC;OKE;CLM"}],[{"names":["<global>","AnimatedFunction","constructor","__onEvaluate","toString","createAnimatedFunction","<anonymous>"],"mappings":"AAA;ACM;ECG;GDc;EEE;GFE;EGE;GHE;CDC;OKE;SCQ;GDW;CLC"}],[{"names":["<global>","AnimatedCallFunc","constructor","args.every$argument_0","params.every$argument_0","toString","beginContext","_params.forEach$argument_0","endContext","__onEvaluate","createAnimatedCallFunc","args.map$argument_0"],"mappings":"AAA;ACK;ECK;iBCM,kCD;mBEI,kCF;GDe;EIE;GJE;EKE;yBCI;KDE;GLC;EOE;yBDC;KCE;GPE;EQE;GRK;CDC;OUE;aCG,eD;CVG"}],[{"names":["<global>","AnimatedParam","constructor","beginContext","endContext","_getTopNode","setValue","__onEvaluate","start","stop","isRunning","createAnimatedParam"],"mappings":"AAA;OCK;ECI;GDG;EEE;GFG;EGE;GHE;EIE;GJK;EKE;GLY;EME;GNO;EOE;GPO;EQE;GRO;ESE;GTW;CDC;OWE;CXE"}],[{"names":["<global>","AnimatedMainClock","AnimatedMainClock#constructor","AnimatedMainClock#__onEvaluate","AnimatedMainClock#_runFrame","AnimatedMainClock#__attach","AnimatedMainClock#__detach","AnimatedClock","constructor","toString","__onEvaluate","__attach","__detach","start","stop","isStarted"],"mappings":"AAA;ACI;ECG;GDE;EEE;GFE;cGE;GHK;EIE;GJK;EKE;GLM;CDC;eOI;ECI;GDE;EEE;GFE;EGE;GHE;EIE;GJM;EKE;GLM;EME;GNK;EOE;GPK;EQE;GRE;CPC"}],[{"names":["<global>","evaluateOnce","call$argument_1"],"mappings":"AAA;OCa;+BCQ;KDM;CDO"}],[{"names":["<global>","listener","AnimatedCall","constructor","args.every$argument_0","toString","__attach","__detach","__onEvaluate","createAnimatedCall"],"mappings":"AAA;ACO;CDG;AEE;ECI;iBCE,kCD;GDM;EGE;GHE;EIE;GJM;EKE;GLM;EME;GNG;CFC;OSE;CTE"}],[{"names":["<global>","AnimatedAlways","constructor","toString","update","__onEvaluate","createAnimatedAlways"],"mappings":"AAA;ACI;ECG;GDO;EEE;GFE;EGE;GHE;EIE;GJG;CDC;OME;CNE"}],[{"names":["<global>","createEventObjectProxyPolyfill","traverse"],"mappings":"AAA;eCK;mBC8B;GDK;CDG"}],[{"names":["<global>","sanitizeProps","createOrReusePropsNode","AnimatedProps","constructor","Object.values.filter$argument_0","toString","__onEvaluate","__detach","update","setNativeView"],"mappings":"AAA;ACU;CDY;OEE;CFqB;AGE;ECC;kCCG,oCD;GDM;EGE;GHE;EIE;GJS;EKE;GLQ;EME;GNQ;EOE;GPY;CHC"}],[{"names":["<global>","sanitizeStyle","createOrReuseStyleNode","AnimatedStyle","constructor","toString","_walkStyleAndGetAnimatedValues","__onEvaluate"],"mappings":"AAA;ACO;CDY;OEE;CFsB;eGM;ECC;GDI;EEE;GFE;EGE;GHY;EIE;GJE;CHC"}],[{"names":["<global>","sanitizeTransform","inputTransform.forEach$argument_0","extractAnimatedParentNodes","transform.forEach$argument_0","createOrReuseTransformNode","AnimatedTransform","constructor","toString","__onEvaluate","_transform.map$argument_0"],"mappings":"AAA;ACI;yBCG;GDgB;CDE;AGE;oBCE;GDO;CHE;OKE;CLS;AME;ECC;GDO;EEE;GFE;EGE;+BCC;KDS;GHC;CNC"}],[{"names":["<global>","<anonymous>","arrayFilter","arrayPush","arraySome","baseTimes","baseUnary","cacheHas","getValue","mapToArray","map.forEach$argument_0","overArg","setToArray","set.forEach$argument_0","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","arrayLikeKeys","assocIndexOf","baseGetAllKeys","baseGetTag","baseIsArguments","baseIsEqual","baseIsEqualDeep","baseIsNative","baseIsTypedArray","baseKeys","equalArrays","arraySome$argument_1","equalByTag","equalObjects","getAllKeys","getMapData","getNative","getRawTag","arrayFilter$argument_1","getTag","isIndex","isKeyable","isMasked","isPrototype","objectToString","toSource","eq","isArrayLike","isEqual","isFunction","isLength","isObject","isObjectLike","keys","stubArray","stubFalse"],"mappings":"AAA;gBC0G;CDI;AEc;CFa;AGU;CHS;AIY;CJU;AKW;CLQ;AMS;SLC;GKE;CNC;AOU;CPE;AQU;CRE;ASS;cCI;GDE;CTE;AWU;SVC;GUE;CXC;AYS;cCI;GDE;CZE;kBCiB;CDG;AcsD;CdS;AeS;CfG;AgBY;ChBI;AiBW;CjBO;AkBW;ClBG;AmBY;CnBK;AoBgB;CpBS;AqBS;CrBG;AsBW;CtBe;AuBW;CvBK;AwBW;CxBE;AyBY;CzBW;A0BgB;C1BS;A2BS;C3BO;A4BW;C5BI;A6BW;C7BE;A8BW;C9BE;A+BY;C/BO;AgCiB;ChCQ;AiCY;CjCG;AkCW;ClCE;AmCa;CnCG;AoCS;CpCG;AqCW;CrCM;AsCW;CtCE;AuCW;CvCE;AwCY;CxCc;AyCiB;CzCyB;A0CU;C1CQ;A2Ca;C3CG;A4CS;C5CO;A6CS;C7CE;A8CgB;C9CQ;A+CgB;C/C2C;AgDU;ChDM;AiDS;CjDG;AkDS;ClDW;AmDe;4BCuC;WDK;CnDe;AqDmB;CrD+D;AsDe;CtD8D;AuDS;CvDE;AwDU;CxDK;AyDU;CzDG;A0DS;C1DkB;iDCS;+C0DK;G1DE;CDC;W4DiB;G5De;A6DW;C7DK;A8DS;C9DK;A+DS;C/DE;AgES;ChEK;AiES;CjEE;AkES;ClEU;AmEkC;CnEE;kCCoB,gCD,wBC;CDG;AoEoD;CpEE;AqEiD;CrEE;AsEmB;CtEQ;AuE4B;CvEG;AwE2B;CxEG;AyE0B;CzEE;A0EiD;C1EE;A2EoB;C3EE;A4Ee;C5EE"}],[{"names":["<global>","jsListener","<anonymous>","WorkletEventHandler","constructor","eventNames.reduce$argument_0","updateWorklet","registerForEvents","eventNames.map$argument_0","unregisterFromEvents","registrations.forEach$argument_0"],"mappings":"AAA;ACG;SCI;GDE;CDC;eGE;ECO;QCU;SDG;GDI;EGE;GHG;EIE;6CCE;ODI;GJU;EME;+BCC;uDDC;GNG;CHC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","_updatePropsJS","Object.keys.reduce$argument_0","Object.keys.forEach$argument_0","key.replace$argument_1","setNativeProps"],"mappings":"AAA;8BCc;MCO;ODK;2CEO;gDCI,4BD;OFE;CDK;uBKE;CLQ"}],[{"names":["<global>","JSReanimated","constructor","timeProvider.now","pushFrame","getTimestamp","maybeRequestRender","requestAnimationFrame$argument_0","_onRender","installCoreFunctions","makeShareable","makeMutable","makeRemote","startMapper","stopMapper","registerEventHandler","unregisterEventHandler","enableLayoutAnimations","registerSensor","unregisterSensor","jestResetModule","subscribeForKeyboardEvents","unsubscribeFromKeyboardEvents"],"mappings":"AAA;eCW;ECQ;iCCG,qCD;iCCE,8BD;GDE;EGE;GHG;EIE;GJE;EKE;4BCI;ODI;GLE;EOE;GPa;EQE;GRE;ESE;GTE;EUE;GVG;EWE;GXE;EYE;GZS;EaE;GbE;EcE;GdG;EeE;GfE;EgBE;GhBI;EiBE;GjBG;EkBE;GlBE;EmBE;GnBW;EoBE;GpBK;EqBE;GrBE;CDC"}],[{"names":["<global>","MapperRegistry","constructor","startMapper","stopMapper","execute","updateOrder","map$argument_0","mappers.forEach$argument_0","dfs","Object.keys.map$argument_0","postArray.sort$argument_0","get__needRunOnRender","Node","Node#constructor"],"mappings":"AAA;eCG;ECO;GDE;EEE;GFI;EGE;GHG;EIE;GJY;EKE;iDCC,4BD;yBEG;KFE;gBGoC;KHiB;4CII;KJG;mBKC;KLE;GLS;EWE;GXE;CDC;AaE;ECI;GDG;CbC"}],[{"names":["<global>","Mapper","constructor","markDirty","inputs.forEach$argument_0","execute","extractMutablesFromArray","extractMutables","value.forEach$argument_0","Object.keys.forEach$argument_0"],"mappings":"AAA;eCI;ECS;sBCW;KDG;wBEE;KFE;GDC;EIE;GJG;EKE;ICK;sBCM,yBD;mCEE;SFE;KDE;GLI;CDC"}],[{"names":["<global>","MutableValue","constructor","get__value","set__value","_setValue","addListener","_triggerListener"],"mappings":"AAA,eC;ECQ;GDI;EEE;GFE;EGE;GHE;EIG;GJG;EKE;GLE;EME;GNI;CDC"}],[{"names":["<global>","NativeReanimated","constructor","installCoreFunctions","makeShareable","makeMutable","makeRemote","registerSensor","unregisterSensor","startMapper","stopMapper","registerEventHandler","unregisterEventHandler","getViewProp","enableLayoutAnimations","configureProps","subscribeForKeyboardEvents","unsubscribeFromKeyboardEvents"],"mappings":"AAA;OCU;ECI;GDU;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNU;EOE;GPE;EQE;GRc;ESE;GTE;EUE;GVK;EWE;GXE;EYE;GZM;EaE;GbE;EcE;GdE;EeE;GfE;EgBE;GhBE;CDC"}],[{"names":["<global>","checkVersion","<anonymous>"],"mappings":"AAA;OCK;cCQ;GDa;CDO"}],[{"names":["<global>","setAndForwardRef","forwardRef"],"mappings":"AAA;ACuC;SCO;GDa;CDC"}],[{"names":["<global>","runOnUI$argument_0","global.LayoutAnimationRepository.registerConfig","global.LayoutAnimationRepository.removeConfig","global.LayoutAnimationRepository.startAnimationForTag","animation.callback"],"mappings":"AAA;QCM;ICQ;KDG;IEC;KFG;IGC;2BCqC;ODK;KHQ;CDE"}],[{"names":["<global>","global._setGlobalConsole","testWorklet","throwUninitializedReanimatedException","checkPluginState","isConfigured","isConfiguredCheck","pushFrame","requestFrame","global._log","runOnUI","makeShareable","getViewProp","Promise$argument_0","NativeReanimatedModule.getViewProp$argument_2","_getTimestamp","getTimestamp","workletValueSetter","initializeAnimation","step","workletValueSetterJS","makeMutable","makeRemote","startMapper","<anonymous>","stopMapper","runOnJS","runOnUI$argument_0","enableLayoutAnimations","configureProps","jestResetJsReanimatedModule"],"mappings":"AAA;6BCiB;GDE;gDEoB;CFE;8CGE;CHI;kEIE;CJU;+DKE;CLI;6CME;CNE;AOE;CPE;OQE;CRO;cSG;CTE;OUE;CVI;OWE;CXG;OYE;qBCC;MCI;ODM;GDE;CZC;kBeI;GfE;kBeE;GfS;OgBG;ChBM;AiBE;gCC6B;KDE;iBEE;KFc;CjBkB;AoBI;oEFoB;KEI;iBDC;KCiB;CpBQ;OqBE;CrBG;OsBE;CtBG;OuBE;wBCI;GDE;CvBW;OyBE;CzBE;O0BO;C1Bc;U2BU;G3BU;O4Ba;C5BiB;O6BE;C7BI;O8BE;C9BE"}],[{"names":["<global>","resolvePath","keys.reduce$argument_0","setPath","withStyleAnimation","defineAnimation$argument_1","onFrame","onStart","callback"],"mappings":"AAA;OCiB;wDCM;GDS;CDC;OGI;CHwB;OIO;mDCI;oBCG;KD8D;oBEE;KF0E;qBGE;KH+B;GDU;CJC"}],[{"names":["<global>","initialUpdaterRun","recognizePrefixSuffix","decorateAnimation","prefNumberSuffOnStart","prefNumberSuffOnFrame","colorOnStart","tab.forEach$argument_0","colorOnFrame","arrayOnStart","value.forEach$argument_0","arrayOnFrame","forEach$argument_0","animation.onStart","defineAnimation","create","cancelAnimation","withStartValue","defineAnimation$argument_1"],"mappings":"AAA;OCgC;CDK;AEO;CFmB;AGE;gCCa;GDyC;gCEC;GFY;uBGG;gBCiB;KDW;GHK;uBKE;gBDO;KCK;GLM;uBME;kBCM;KDU;GNG;uBQE;iDCK;KDI;GRG;sBUE;GVoB;CHC;Oca;iBCO;GDK;CdO;OgBE;ChBI;OiBG;qCCK;GDO;CjBC"}],[{"names":["<global>","call","getMatchers","hue2rgb","hslToRgb","parse255","parse360","parse1","parsePercentage","normalizeColor","opacity","red","green","blue","rgbaColor","RGBtoHSV","HSVtoRGB","hsvToColor","processColorInitially","isColor","processColor","convertToRGBA","rgbaArrayToRGBAColor","toLinearSpace","toGammaSpace"],"mappings":"AAA;AC4B;CDG;AEkB;CFuB;AGM;CHkB;AIE;CJa;AKE;CLU;AME;CNI;AOE;CPU;AQE;CRW;AS+J;CT8G;uBUE;CVG;mBWE;CXG;qBYE;CZG;oBaE;CbG;yBcE;CdqB;OeW;Cf0C;AgBW;ChBwC;0BiBE;CjBS;OkBE;ClBoB;OmBE;CnBM;OoBE;CpBoB;OqBI;CrBQ;OsBE;CtBK;OuBE;CvBW;OwBE;CxBW"}],[{"names":["<global>","withTiming","defineAnimation$argument_1","Object.keys.forEach$argument_0","timing","onStart","easing"],"mappings":"AAA;OC8B;mDCO;QCQ;6EDC;IEI;KFc;IGE;KH6B;cIU,OJ;GDI;CDC"}],[{"names":["<global>","linear","ease","quad","cubic","poly","<anonymous>","sin","circle","exp","elastic","back","bounce","bezier","factory","bezierFn","in_","out","inOut","createChecker","checkIfReaOne","forEach$argument_0"],"mappings":"AAA;ACiE;CDG;AEQ;CFG;AGQ;CHG;AIQ;CJG;AKQ;SCE;GDG;CLC;AOO;CPG;AQO;CRG;ASO;CTG;AUY;SJG;GIG;CVC;AWU;SLE;GKG;CXC;AYO;CZkB;AaS;aCQ;KDG;CbE;AeE;CfQ;AgBK;ChBG;AiBK;SXE;GWG;CjBC;AkBO;SZE;GYM;ClBC;AmBsB;ECM;GDwB;CnBO;kDqBG;CrBE"}],[{"names":["<global>","Easing","linear","ease","quad","cubic","poly","<anonymous>","sin","circle","exp","elastic","back","bounce","sq","bezier","_in","out","inOut"],"mappings":"AAA;eC0D;ECO;GDE;EEQ;GFE;EGQ;GHE;EIQ;GJE;EKQ;WCC,gBD;GLC;EOO;GPE;EQO;GRE;ESO;GTE;EUY;WJE;OII;GVC;EWU;WLI,qDK;GXC;EYO;eCC,6BD;GZc;EcS;WRC,4CQ;GdC;EeK;GfE;EgBK;WVC,gCU;GhBC;EiBO;WXC;OWK;GjBC;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","AnimatedStartClock","constructor","toString","__onEvaluate","createAnimatedStartClock"],"mappings":"AAA;ACK;ECG;GDO;EEE;GFE;EGE;GHG;CDC;OKE;CLE"}],[{"names":["<global>","AnimatedStopClock","constructor","toString","__onEvaluate","createAnimatedStopClock"],"mappings":"AAA;ACK;ECG;GDO;EEE;GFE;EGE;GHG;CDC;OKE;CLE"}],[{"names":["<global>","AnimatedClockTest","constructor","toString","__onEvaluate","createAnimatedClockTest"],"mappings":"AAA;ACE;ECG;GDG;EEE;GFE;EGE;GHE;CDC;OKE;CLE"}],[{"names":["<global>","AnimatedDebug","constructor","toString","__onEvaluate","createAnimatedDebug","call$argument_1"],"mappings":"AAA;ACO;ECI;GDY;EEE;GFE;EGE;GHI;CDC;OKE;sBCgB,uCD;CLS"}],[{"names":["<global>","AnimatedConcat","constructor","input.every$argument_0","__onEvaluate","_input.reduce$argument_0","toString","createAnimatedConcat"],"mappings":"AAA;ACK;ECC;QCG;gCDG;GDM;EGE;8BCC,sCD;GHC;EKE;GLE;CDC;OOE;CPE"}],[{"names":["<global>","A","B","C","calcBezier","getSlope","binarySubdivide","newtonRaphsonIterate","bezier","getTForX","BezierEasing","AnimatedBezier","constructor","toString","__onEvaluate"],"mappings":"AAA;ACe;CDE;AEC;CFE;AGC;CHE;AIG;CJE;AKG;CLE;AME;CNiB;AOE;CPU;AQE;ECW;GDkC;SEE;GFY;CRC;eWE;ECI;GDQ;EEE;GFE;EGE;GHE;CXC"}],[{"names":["<global>","Bezier","A","B","C","calcBezier","getSlope","binarySubdivide","newtonRaphsonIterate","LinearEasing","getTForX","BezierEasing"],"mappings":"AAA;OCQ;ECgB;GDG;EEC;GFG;EGC;GHG;EIG;GJG;EKG;GLG;EME;GNwB;EOE;GPgB;EQE;GRG;ESwB;GTmC;SUE;GVa;CDC"}],[{"names":["<global>","updatePropsByPlatform","maybeViewRef.items.forEach$argument_0","viewDescriptors.value.forEach$argument_0","updatePropsJestWrapper","adapters.forEach$argument_0"],"mappings":"AAA;0BCgC;iCCO;ODE;GDE;0BCE;kCEa;KFM;GDC;sCIS;mBCO;GDE;CJO"}],[{"names":["<global>","configureProps","addWhitelistedNativeProps","addWhitelistedUIProps","adaptViewConfig","Object.keys.forEach$argument_0"],"mappings":"AAA;AC2G;CDK;OEE;CFW;OGE;CHM;OIa;+BCO;KDS;CJK"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","DefaultLayout","DefaultEntering","DefaultExiting"],"mappings":"AAA;sDCO;CDW;+EEE;CFa;6EGE;CHa"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","withSpring","defineAnimation$argument_1","Object.keys.forEach$argument_0","spring","isOvershooting","onStart"],"mappings":"AAA;OC+B;mDCO;QCiB;6EDC;IEI;6BC4C;ODQ;KFyB;IIE;KJc;GDW;CDC"}],[{"names":["<global>","withDecay","defineAnimation$argument_1","Object.keys.forEach$argument_0","decay","validateConfig","onStart"],"mappings":"AAA;OCsC;4CCM;QCS;6EDC;IEO;KFkC;IGE;KHkB;IIE;KJU;GDY;CDC"}],[{"names":["<global>","withDelay","defineAnimation$argument_1","delay","onStart","callback"],"mappings":"AAA;OCI;yDCK;ICK;KD2B;IEE;KFc;qBGE;KHI;GDY;CDC;OGK;CHO"}],[{"names":["<global>","withRepeat","defineAnimation$argument_1","repeat","repCallback","onStart","loop"],"mappings":"AAA;OCe;0DCQ;ICM;KD8B;wBEE;KFQ;IGE;KHS;GDW;CDC;OGK;CHW;OME;CNO"}],[{"names":["<global>","withSequence","defineAnimation$argument_1","_animations.map$argument_0","callback","animations.forEach$argument_0","sequence","onStart"],"mappings":"AAA;OCS;ICM;yCCE;ODI;uBEG;2BCO;SDI;OFC;MIE;OJmB;MKE;OLa;KDU;CDE;OMK;CNQ"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","createCellRenderer","cellRenderer","forwardRef$argument_0","React.useMemo$argument_0"],"mappings":"AAA;2BCc;uBCC;GDM;CDG;EGS;MCI,6CD;GHW"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","assertNodesNotNull","Code","code"],"mappings":"AAA;ACG;CDU;AEE;WCK,WD;CFS"}],[{"names":["<global>","useCode","React.useEffect$argument_0","nodeFactory","<anonymous>"],"mappings":"AAA;eCc;kBCG;oBCQ,UD;aEY,+BF;GDE;CDC"}],[{"names":["<global>","decay","proc$argument_0","decayAnimation"],"mappings":"AAA;ACgB;CDwB;EEG;0EFC;eGG;CHM"}],[{"names":["<global>","proc$argument_0","timing"],"mappings":"AAA;4BCY;CDsC;eEE;CFqB"}],[{"names":["<global>","spring","proc$argument_0","springAnimation"],"mappings":"AAA;AC0B;CDwG;EEG;KFiC;eGG;CH4B"}],[{"names":["<global>","Animation","springDefaultState","decayDefaultState","timingDefaultState"],"mappings":"AAA;ACE;ECC;GDO;EEE;GFO;EGE;GHO;CDC"}],[{"names":["<global>","configFromProps","wrapTransitioningContext","<anonymous>","TransitioningContext.Consumer.props.children","In","In#componentDidMount","In#render","Change","Change#componentDidMount","Change#render","Out","Out#componentDidMount","Out#render","Together","Together#componentDidMount","Together#render","Sequence","Sequence#componentDidMount","Sequence#render","createTransitioningComponent","Wrapped","Wrapped#componentDidMount","Wrapped#setNativeProps","Wrapped#animateNextTransition","Wrapped#render"],"mappings":"AAA;ACM;CDkB;AEQ;SCC;SCG,kDD;GDG;CFC;AKE;ECC;GDE;EEE;GFE;CLC;AQE;ECC;GDE;EEE;GFE;CRC;AWE;ECC;GDE;EEE;GFE;CXC;AcE;ECE;GDI;EEE;GFM;CdC;AiBE;ECE;GDK;EEE;GFM;CjBC;AoBE;ECC;ICK;KDI;IEE;KFE;IGE;KHK;IIE;KJU;GDC;CpBE"}],[{"names":["<global>","stiffnessFromOrigamiValue","dampingFromOrigamiValue","stiffnessFromOrigamiNode","dampingFromOrigamiNode","makeConfigFromOrigamiTensionAndFriction","makeConfigFromBouncinessAndSpeed","fromBouncinessAndSpeedNodes","normalize","projectNormal","linearInterpolation","quadraticOutInterpolation","b3Friction1","b3Friction2","b3Friction3","b3Nobounce","fromBouncinessAndSpeedNumbers","makeDefaultConfig"],"mappings":"AAA;ACa;CDE;AEE;CFE;AGE;CHE;AIE;CJE;AKE;CLa;AME;CNM;AOE;ECC;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLM;EME;GNM;EOE;GPM;EQE;GRU;CPgB;AgBE;ERC;GQE;EPE;GOE;ENE;GME;ELE;GKE;EJE;GIE;EHE;GGE;EFE;GEO;EDE;GCQ;ChBiB;AiBE;CjBU"}],[{"names":["<global>","useValue"],"mappings":"AAA;eCG;CDM"}],[{"names":["<global>","createOldAnimationObject","animation.start","evaluateOnce$argument_2","call$argument_1","animation.__detach","animation.stop","animation.__stopImmediately_testOnly","backwardsCompatibleAnimWrapper","<anonymous>"],"mappings":"AAA;ACa;WCS;QCoB;2BCQ;mBDU;SDS;KDE;cIC;KJI;UKC;KLe;gCMC;KNI;CDG;eQM;SCI;GDK;CRC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","proc$argument_0","acc"],"mappings":"AAA;qBCG;CDE;eEE;CFG"}],[{"names":["<global>","proc$argument_0","color"],"mappings":"AAA;uBCc;CDiB;eEE;CFa"}],[{"names":["<global>","proc$argument_0","diff"],"mappings":"AAA;sBCG;CDM;eEE;CFI"}],[{"names":["<global>","diffClamp"],"mappings":"AAA;eCI;CDM"}],[{"names":["<global>","red","green","blue","opacity","interpolateColors"],"mappings":"AAA;ACK;CDE;AEC;CFE;AGC;CHE;AIC;CJE;eKa;CLgC"}],[{"names":["<global>","proc$argument_0","onChange"],"mappings":"AAA;0BCG;CDK;eEE;CFG"}],[{"names":["<global>","initializeGlobalsForWeb","_setGlobalConsole","_measure","_scrollTo","_setGestureState"],"mappings":"AAA;gCCG;+BCG;KDE;sBEC;KFY;uBGC;KHI;8BIC;KJI;CDG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","useWorkletCallback"],"mappings":"AAA;OCQ;CDK"}],[{"names":["<global>","prepareAnimation","animatedProp.forEach$argument_0","animation.callStart","Object.keys.forEach$argument_0","runAnimations","animation.forEach$argument_0","styleUpdater","frame","jestStyleUpdater","checkSharedValueUsage","useAnimatedStyle","useEffect$argument_0","updaterFn","adaptersArray.forEach$argument_0","fun","<anonymous>"],"mappings":"AAA;ACkE;yBCO;ODK;0BE4B;KFE;sCGK;OHK;CDG;AKE;sBCc;KDM;mCDqB;KCY;CLM;AOE;kBCyB;KDkC;CP2B;ASE;kCLgB;GKK;iCLC;GKO;EDE;oCJS;KIc;GCiB;CT+B;AUG;CVwB;OWE;YCkD;kBCK;8BCG;SDE;ODE;oBCK;SDQ;oBCE;SDO;kBCI;ODK;YGO;OHW;YGE;OHS;WIU;KJE;GDC;YCE;WIE;KJI;GDC;CXS"}],[{"names":["<global>","useSharedValue","useEffect$argument_0","<anonymous>"],"mappings":"AAA;OCK;YCO;WCC;KDG;GDC;CDI"}],[{"names":["<global>","useEvent","useHandler","useEffect$argument_0","<anonymous>","buildWorkletsHash","Object.values.reduce$argument_0","buildDependencies","Object.values.filter$argument_0","handlersList.map$argument_0","areDependenciesEqual","is","areHookInputsEqual","hasColorProps","parseColors","canApplyOptimalisation","isAnimated","styleDiff","getStyleWithoutAnimations","validateAnimatedStyles"],"mappings":"AAA;OCkC;CDa;OEE;YCY;WCC;KDE;GDC;CFc;OKG;ICI;6CDE;CLG;OOG;ICK,kCD;oCEG;KFK;CPK;OUG;ECI;GDI;EEI;GFa;CVG;OaE;CbQ;OcE;CdY;OeE;CfQ;OgBE;ChBY;OiBE;CjBwB;OkBE;ClBY;sCmBE;CnBW"}],[{"names":["<global>","makeViewDescriptorsSet","data.add","scheduleUpdates$argument_0","data.remove","data.rebuildsharableViewDescriptors","makeViewsRefSet"],"mappings":"AAA;OC4B;WCW;0BCU;WDG;ODE;cGE;0BDM;WCa;OHE;sCIE;OJI;CDM;OME;WJM;OIG;cFE;OEE;CNM"}],[{"names":["<global>","useAnimatedGestureHandler","handler"],"mappings":"AAA;OCyC;kBCY;GD4C;CDW"}],[{"names":["<global>","useAnimatedReaction","useEffect$argument_0","fun","<anonymous>"],"mappings":"AAA;OCe;YCiB;gBCC;KDK;WEM;KFE;GDC;CDC"}],[{"names":["<global>","useAnimatedRef","<anonymous>"],"mappings":"AAA;OCK;6DCK;KDQ;CDW"}],[{"names":["<global>","getTag","measure","scrollTo","setGestureState"],"mappings":"AAA;OCO;CDI;YES;GFW;YEE;GFG;YEE;GFyC;aGW;GHU;aGE;GHY;aGE;GHM;OIG;CJS"}],[{"names":["<global>","useAnimatedScrollHandler","useEvent$argument_0"],"mappings":"AAA;OC0B;IC4B;KD0B;CDI"}],[{"names":["<global>","useDerivedValue","useEffect$argument_0","fun","<anonymous>"],"mappings":"AAA;OCQ;YCqB;gBCC;KDG;WEE;KFE;GDC;YCE;WEC;KFE;GDC;CDG"}],[{"names":["<global>","useAnimatedSensor","useRef$argument_0.unregister","useEffect$argument_0","ref.current.unregister","<anonymous>"],"mappings":"AAA;OCwB;gBCM;KDE;YE8B;+BCU,2CD;+BCI;ODE;WEI;KFE;GFC;CDG"}],[{"names":["<global>","useFrameCallback","useRef$argument_0.setActive","useEffect$argument_0","<anonymous>"],"mappings":"AAA;OCW;eCK;KDM;YEK;WCK;KDG;GFC;CDG"}],[{"names":["<global>","FrameCallbackRegistryJS","constructor","registerFrameCallback","runOnUI$argument_0","unregisterFrameCallback","manageStateFrameCallback"],"mappings":"AAA;eCG;ECG;GDE;EEE;YCQ;KDG;GFG;EIE;YDC;KCG;GJC;EKE;YFC;KEG;GLC;CDC"}],[{"names":["<global>","runOnUI$argument_0","frameCallbackRegistry.runCallbacks","loop","activeFrameCallbacks.forEach$argument_0","frameCallbackRegistry.registerFrameCallback","frameCallbackRegistry.unregisterFrameCallback","frameCallbackRegistry.manageStateFrameCallback"],"mappings":"AAA;yCC0B;ICQ;mBCC;0CCO;SDsB;ODQ;KDQ;IIE;KJQ;IKE;KLG;IME;KNa;CDI"}],[{"names":["<global>","useAnimatedKeyboard","useEffect$argument_0","<anonymous>"],"mappings":"AAA;OCK;YCe;WCQ;KDG;GDC;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","useScrollViewOffset","useEvent$argument_0","useEffect$argument_0"],"mappings":"AAA;OCiB;sCCK;GDM;YEE;GFG;CDG"}],[{"names":["<global>","isNode","getVal","isExtrapolate","validateType","internalInterpolate","interpolate"],"mappings":"AAA;ACoC;CDG;AEE;CFsB;AGE;CHQ;AII;CJwC;AKE;CLkC;OMI;CNsD"}],[{"names":["<global>","interpolateColorsHSV","toLinearSpace","x.map$argument_0","toGammaSpace","interpolateColorsRGB","getInterpolateRGB","getInterpolateHSV","interpolateColor","useInterpolateConfig","interpolateSharableColor"],"mappings":"AAA;6BCsB;CD8C;sBEE;eCE,+BD;CFC;qBIE;CJG;6BKE;CL2B;0BMS;CNqB;0BOS;CPyB;gCQE;CR0B;OSe;CTa;wCUE;CVgC"}],[{"names":["<global>","createAnimatedPropAdapter","nativeProps.forEach$argument_0","createAnimatedPropAdapter$argument_0"],"mappings":"AAA;OCG;uBCM;GDE;CDG;EGK;GHkC;EGI;GHQ"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","BaseAnimationBuilder","build","duration","delay","withCallback","getDuration","randomDelay","getDelay","getDelayFunction","<anonymous>"],"mappings":"AAA;OCO;UCO;GDE;EEE;GFG;EEE;GFG;EGE;GHG;EGE;GHG;EIE;GJK;EIE;GJG;EKG;GLE;EKE;GLE;EME;GNG;EME;GNG;EOG;GPI;EQE;QCI;SDG;GRC;ECE;GDG;CDC"}],[{"names":["<global>","ComplexAnimationBuilder","easing","rotate","springify","damping","mass","stiffness","overshootClamping","restDisplacementThreshold","restSpeedThreshold","withInitialValues","getAnimationAndConfig"],"mappings":"AAA;OCU;ECc;GDG;ECE;GDG;EEE;GFG;EEE;GFG;EGE;GHG;EGE;GHG;EIE;GJG;EIE;GJG;EKE;GLG;EKE;GLG;EME;GNG;EME;GNG;EOE;GPG;EOE;GPG;EQE;GRK;EQE;GRK;ESE;GTK;ESE;GTG;EUE;GVG;EUE;GVG;EWE;GXkD;CDC"}],[{"names":["<global>","Keyframe","constructor","parseDefinitions","Object.keys.forEach$argument_0","initialValues.styleProp.forEach$argument_0","getAnimationDuration","parsedKeyframes.key.reduce$argument_0","addKeyPoint","animationKeyPoints.filter$argument_0","animationKeyPoints.filter.sort$argument_0","animationKeyPoints.filter.sort.forEach$argument_0","addKeyPointWith","keyframe.key.forEach$argument_0","duration","delay","withCallback","getDelayFunction","<anonymous>","build","addAnimation","keyframePoints.map$argument_0","initialValues.key.forEach$argument_0"],"mappings":"AAA;OCkB;ECU;GDE;EEE;uCCwC;0CCE;8CDC;WCG;SDC;KDI;iCGO;QCM,2DD;KHI;wBKK;KLqB;cME,wCN;YOC,mDP;eQC;gCCO;YDM;sCPC;cSG;oDTC;iBSK;eTC;SOK;ORC;GFE;EaE;GbG;EcE;GdG;EeE;GfG;EgBE;QCI;SDG;GhBC;UkBE;WDM;2BEQ;mCCe;oBDM;OFc;yCdC;YkBG;iDlBC;ekBI;alBC;OcK;KCM;GlBC;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","FlipInXUp","FlipInXUp.createInstance","FlipInXUp#build","<anonymous>","FlipInYLeft","FlipInYLeft.createInstance","FlipInYLeft#build","FlipInXDown","FlipInXDown.createInstance","FlipInXDown#build","FlipInYRight","FlipInYRight.createInstance","FlipInYRight#build","FlipInEasyX","FlipInEasyX.createInstance","FlipInEasyX#build","FlipInEasyY","FlipInEasyY.createInstance","FlipInEasyY#build","FlipOutXUp","FlipOutXUp.createInstance","FlipOutXUp#build","FlipOutYLeft","FlipOutYLeft.createInstance","FlipOutYLeft#build","FlipOutXDown","FlipOutXDown.createInstance","FlipOutXDown#build","FlipOutYRight","FlipOutYRight.createInstance","FlipOutYRight#build","FlipOutEasyX","FlipOutEasyX.createInstance","FlipOutEasyX#build","FlipOutEasyY","FlipOutEasyY.createInstance","FlipOutEasyY#build"],"mappings":"AAA;OCW;ECI;GDE;UEE;WCO;KDoB;GFC;CDC;OKE;ECI;GDE;UEE;WHO;KGoB;GFC;CLC;OQE;ECI;GDE;UEE;WNO;KMoB;GFC;CRC;OWE;ECI;GDE;UEE;WTO;KSoB;GFC;CXC;OcE;ECI;GDE;UEE;WZO;KYe;GFC;CdC;OiBE;ECI;GDE;UEE;WfO;Kee;GFC;CjBC;OoBE;ECI;GDE;UEE;WlBO;KkByB;GFC;CpBC;OuBE;ECI;GDE;UEE;WrBO;KqByB;GFC;CvBC;O0BE;ECI;GDE;UEE;WxBO;KwByB;GFC;C1BC;O6BE;ECI;GDE;UEE;W3BO;K2ByB;GFC;C7BC;OgCE;ECI;GDE;UEE;W9BO;K8Be;GFC;ChCC;OmCE;ECI;GDE;UEE;WjCO;KiCe;GFC;CnCC"}],[{"names":["<global>","StretchInX","StretchInX.createInstance","StretchInX#build","<anonymous>","StretchInY","StretchInY.createInstance","StretchInY#build","StretchOutX","StretchOutX.createInstance","StretchOutX#build","StretchOutY","StretchOutY.createInstance","StretchOutY#build"],"mappings":"AAA;OCM;ECI;GDE;UEE;WCO;KDY;GFC;CDC;OKE;ECI;GDE;UEE;WHO;KGY;GFC;CLC;OQE;ECI;GDE;UEE;WNO;KMY;GFC;CRC;OWE;ECI;GDE;UEE;WTO;KSY;GFC;CXC"}],[{"names":["<global>","FadeIn","FadeIn.createInstance","FadeIn#build","<anonymous>","FadeInRight","FadeInRight.createInstance","FadeInRight#build","FadeInLeft","FadeInLeft.createInstance","FadeInLeft#build","FadeInUp","FadeInUp.createInstance","FadeInUp#build","FadeInDown","FadeInDown.createInstance","FadeInDown#build","FadeOut","FadeOut.createInstance","FadeOut#build","FadeOutRight","FadeOutRight.createInstance","FadeOutRight#build","FadeOutLeft","FadeOutLeft.createInstance","FadeOutLeft#build","FadeOutUp","FadeOutUp.createInstance","FadeOutUp#build","FadeOutDown","FadeOutDown.createInstance","FadeOutDown#build"],"mappings":"AAA;OCM;ECI;GDE;UEE;WCO;KDY;GFC;CDC;OKE;ECI;GDE;UEE;WHO;KGgB;GFC;CLC;OQE;ECI;GDE;UEE;WNO;KMgB;GFC;CRC;OWE;ECI;GDE;UEE;WTO;KSgB;GFC;CXC;OcE;ECI;GDE;UEE;WZO;KYgB;GFC;CdC;OiBE;ECI;GDE;UEE;WfO;KeY;GFC;CjBC;OoBE;ECI;GDE;UEE;WlBO;KkBgB;GFC;CpBC;OuBE;ECI;GDE;UEE;WrBO;KqBgB;GFC;CvBC;O0BE;ECI;GDE;UEE;WxBO;KwBgB;GFC;C1BC;O6BE;ECI;GDE;UEE;W3BO;K2BgB;GFC;C7BC"}],[{"names":["<global>","SlideInRight","SlideInRight.createInstance","SlideInRight#build","<anonymous>","SlideInLeft","SlideInLeft.createInstance","SlideInLeft#build","SlideOutRight","SlideOutRight.createInstance","SlideOutRight#build","SlideOutLeft","SlideOutLeft.createInstance","SlideOutLeft#build","SlideInUp","SlideInUp.createInstance","SlideInUp#build","SlideInDown","SlideInDown.createInstance","SlideInDown#build","SlideOutUp","SlideOutUp.createInstance","SlideOutUp#build","SlideOutDown","SlideOutDown.createInstance","SlideOutDown#build"],"mappings":"AAA;OCS;ECI;GDE;UEE;WCO;KDe;GFC;CDC;OKE;ECI;GDE;UEE;WHO;KGe;GFC;CLC;OQE;ECI;GDE;UEE;WNO;KMqB;GFC;CRC;OWE;ECI;GDE;UEE;WTO;KSqB;GFC;CXC;OcE;ECI;GDE;UEE;WZO;KYe;GFC;CdC;OiBE;ECI;GDE;UEE;WfO;Kee;GFC;CjBC;OoBE;ECI;GDE;UEE;WlBO;KkBkB;GFC;CpBC;OuBE;ECI;GDE;UEE;WrBO;KqBkB;GFC;CvBC"}],[{"names":["<global>","ZoomIn","ZoomIn.createInstance","ZoomIn#build","<anonymous>","ZoomInRotate","ZoomInRotate.createInstance","ZoomInRotate#build","ZoomInLeft","ZoomInLeft.createInstance","ZoomInLeft#build","ZoomInRight","ZoomInRight.createInstance","ZoomInRight#build","ZoomInUp","ZoomInUp.createInstance","ZoomInUp#build","ZoomInDown","ZoomInDown.createInstance","ZoomInDown#build","ZoomInEasyUp","ZoomInEasyUp.createInstance","ZoomInEasyUp#build","ZoomInEasyDown","ZoomInEasyDown.createInstance","ZoomInEasyDown#build","ZoomOut","ZoomOut.createInstance","ZoomOut#build","ZoomOutRotate","ZoomOutRotate.createInstance","ZoomOutRotate#build","ZoomOutLeft","ZoomOutLeft.createInstance","ZoomOutLeft#build","ZoomOutRight","ZoomOutRight.createInstance","ZoomOutRight#build","ZoomOutUp","ZoomOutUp.createInstance","ZoomOutUp#build","ZoomOutDown","ZoomOutDown.createInstance","ZoomOutDown#build","ZoomOutEasyUp","ZoomOutEasyUp.createInstance","ZoomOutEasyUp#build","ZoomOutEasyDown","ZoomOutEasyDown.createInstance","ZoomOutEasyDown#build"],"mappings":"AAA;OCW;ECI;GDE;UEE;WCO;KDY;GFC;CDC;OKE;ECI;GDE;UEE;WHQ;KGe;GFC;CLC;OQE;ECI;GDE;UEE;WNO;KMe;GFC;CRC;OWE;ECI;GDE;UEE;WTO;KSe;GFC;CXC;OcE;ECI;GDE;UEE;WZO;KYe;GFC;CdC;OiBE;ECI;GDE;UEE;WfO;Kee;GFC;CjBC;OoBE;ECI;GDE;UEE;WlBO;KkBe;GFC;CpBC;OuBE;ECI;GDE;UEE;WrBO;KqBe;GFC;CvBC;O0BE;ECI;GDE;UEE;WxBO;KwBY;GFC;C1BC;O6BE;ECI;GDE;UEE;W3BQ;K2Be;GFC;C7BC;OgCE;ECI;GDE;UEE;W9BO;K8BoB;GFC;ChCC;OmCE;ECI;GDE;UEE;WjCO;KiCoB;GFC;CnCC;OsCE;ECI;GDE;UEE;WpCO;KoCoB;GFC;CtCC;OyCE;ECI;GDE;UEE;WvCO;KuCoB;GFC;CzCC;O4CE;ECI;GDE;UEE;W1CO;K0CoB;GFC;C5CC;O+CE;ECI;GDE;UEE;W7CO;K6CoB;GFC;C/CC"}],[{"names":["<global>","BounceIn","BounceIn.createInstance","BounceIn.getDuration","BounceIn#getDuration","BounceIn#build","<anonymous>","BounceInDown","BounceInDown.createInstance","BounceInDown.getDuration","BounceInDown#getDuration","BounceInDown#build","BounceInUp","BounceInUp.createInstance","BounceInUp.getDuration","BounceInUp#getDuration","BounceInUp#build","BounceInLeft","BounceInLeft.createInstance","BounceInLeft.getDuration","BounceInLeft#getDuration","BounceInLeft#build","BounceInRight","BounceInRight.createInstance","BounceInRight.getDuration","BounceInRight#getDuration","BounceInRight#build","BounceOut","BounceOut.createInstance","BounceOut.getDuration","BounceOut#getDuration","BounceOut#build","BounceOutDown","BounceOutDown.createInstance","BounceOutDown.getDuration","BounceOutDown#getDuration","BounceOutDown#build","BounceOutUp","BounceOutUp.createInstance","BounceOutUp.getDuration","BounceOutUp#getDuration","BounceOutUp#build","BounceOutLeft","BounceOutLeft.createInstance","BounceOutLeft.getDuration","BounceOutLeft#getDuration","BounceOutLeft#build","BounceOutRight","BounceOutRight.createInstance","BounceOutRight.getDuration","BounceOutRight#getDuration","BounceOutRight#build"],"mappings":"AAA;OCO;ECI;GDE;EEE;GFE;EGE;GHE;UIE;WCO;KDwB;GJC;CDC;OOE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;WLO;KK4B;GJC;CPC;OYE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;WVO;KUwB;GJC;CZC;OiBE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;WfO;KewB;GJC;CjBC;OsBE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;WpBO;KoBwB;GJC;CtBC;O2BE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;WzBO;KyBwB;GJC;C3BC;OgCE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;W9BO;K8B0B;GJC;ChCC;OqCE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;WnCO;KmC0B;GJC;CrCC;O0CE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;WxCO;KwC0B;GJC;C1CC;O+CE;ECI;GDE;EEE;GFE;EGE;GHE;UIE;W7CO;K6C0B;GJC;C/CC"}],[{"names":["<global>","LightSpeedInRight","LightSpeedInRight.createInstance","LightSpeedInRight#build","<anonymous>","LightSpeedInLeft","LightSpeedInLeft.createInstance","LightSpeedInLeft#build","LightSpeedOutRight","LightSpeedOutRight.createInstance","LightSpeedOutRight#build","LightSpeedOutLeft","LightSpeedOutLeft.createInstance","LightSpeedOutLeft#build"],"mappings":"AAA;OCO;ECI;GDE;UEE;WCQ;KD+B;GFC;CDC;OKE;ECI;GDE;UEE;WHQ;KG+B;GFC;CLC;OQE;ECI;GDE;UEE;WNO;KMwB;GFC;CRC;OWE;ECI;GDE;UEE;WTO;KSwB;GFC;CXC"}],[{"names":["<global>","PinwheelIn","PinwheelIn.createInstance","PinwheelIn#build","<anonymous>","PinwheelOut","PinwheelOut.createInstance","PinwheelOut#build"],"mappings":"AAA;OCM;ECI;GDE;UEE;WCO;KD4B;GFC;CDC;OKE;ECI;GDE;UEE;WHO;KG4B;GFC;CLC"}],[{"names":["<global>","RotateInDownLeft","RotateInDownLeft.createInstance","RotateInDownLeft#build","<anonymous>","RotateInDownRight","RotateInDownRight.createInstance","RotateInDownRight#build","RotateInUpLeft","RotateInUpLeft.createInstance","RotateInUpLeft#build","RotateInUpRight","RotateInUpRight.createInstance","RotateInUpRight#build","RotateOutDownLeft","RotateOutDownLeft.createInstance","RotateOutDownLeft#build","RotateOutDownRight","RotateOutDownRight.createInstance","RotateOutDownRight#build","RotateOutUpLeft","RotateOutUpLeft.createInstance","RotateOutUpLeft#build","RotateOutUpRight","RotateOutUpRight.createInstance","RotateOutUpRight#build"],"mappings":"AAA;OCS;ECI;GDE;UEE;WCO;KDsB;GFC;CDC;OKE;ECI;GDE;UEE;WHO;KGsB;GFC;CLC;OQE;ECI;GDE;UEE;WNO;KMsB;GFC;CRC;OWE;ECI;GDE;UEE;WTO;KSsB;GFC;CXC;OcE;ECI;GDE;UEE;WZO;KYkC;GFC;CdC;OiBE;ECI;GDE;UEE;WfO;KekC;GFC;CjBC;OoBE;ECI;GDE;UEE;WlBO;KkBkC;GFC;CpBC;OuBE;ECI;GDE;UEE;WrBO;KqBkC;GFC;CvBC"}],[{"names":["<global>","RollInLeft","RollInLeft.createInstance","RollInLeft#build","<anonymous>","RollInRight","RollInRight.createInstance","RollInRight#build","RollOutLeft","RollOutLeft.createInstance","RollOutLeft#build","RollOutRight","RollOutRight.createInstance","RollOutRight#build"],"mappings":"AAA;OCM;ECI;GDE;UEE;WCO;KDkB;GFC;CDC;OKE;ECI;GDE;UEE;WHO;KGe;GFC;CLC;OQE;ECI;GDE;UEE;WNO;KMoB;GFC;CRC;OWE;ECI;GDE;UEE;WTO;KSoB;GFC;CXC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","LinearTransition","createInstance","build","<anonymous>"],"mappings":"AAA;OCM;ECI;GDE;UEE;WCM;KDuB;GFC;CDC"}],[{"names":["<global>","FadingTransition","createInstance","build","<anonymous>"],"mappings":"AAA;OCO;ECI;GDE;UEE;WCM;KDqC;GFC;CDC"}],[{"names":["<global>","SequencedTransition","createInstance","reverse","build","<anonymous>"],"mappings":"AAA;OCO;ECM;GDE;EEE;GFG;EEE;GFG;UGE;WCQ;KDqD;GHC;CDC"}],[{"names":["<global>","JumpingTransition","createInstance","build","<anonymous>"],"mappings":"AAA;OCO;ECI;GDE;UEE;WCO;KDwC;GFC;CDC"}],[{"names":["<global>","CurvedTransition","createInstance","easingX","easingY","easingWidth","easingHeight","build","<anonymous>"],"mappings":"AAA;OCQ;ECQ;GDE;EEE;GFG;EEE;GFG;EGE;GHG;EGE;GHG;EIE;GJG;EIE;GJG;EKE;GLG;EKE;GLG;UME;WCY;KD0C;GNC;CDC"}],[{"names":["<global>","EntryExitTransition","createInstance","entering","exiting","build","<anonymous>","exitingValues.animations.prop.forEach$argument_0","enteringValues.animations.prop.forEach$argument_0","map$argument_0","combineTransition"],"mappings":"AAA;OCc;ECQ;GDE;EEE;GFK;EEE;GFK;EGE;GHK;EGE;GHK;UIE;WCQ;kDCU;WDmB;mDE0B;WFmB;wDGkB;SH2B;KDiC;GJC;CDC;OUE;CVK"}],[{"names":["<global>","getRelativeCoords"],"mappings":"AAA;OCa;CDc"}],[{"names":["<global>","reactNativeGestureHandlerModuleWasNotFoundMakeSureYouReRunningYourAppOnTheNativePlatformAndYourCodeIsLinkedProperlyCdIosPodInstallCdForInstallationInstructionsPleaseReferToHttpsDocsSwmansionComReactNativeGestureHandlerDocsInstallation.split.map$argument_0","flushOperations"],"mappings":"AAA;aCY,qBD;2CEU;GFE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","gestureHandlerRootHOC","Wrapper"],"mappings":"AAA;eCK;ECM;GDM;CDU"}],[{"names":["<global>","getStatics","hoistNonReactStatics"],"mappings":"AAA;ACiD;CDQ;AEQ;CFmC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","z","A","exports.isAsyncMode","exports.isContextConsumer","exports.isContextProvider","exports.isElement","exports.isForwardRef","exports.isFragment","exports.isLazy","exports.isMemo","exports.isPortal","exports.isProfiler","exports.isStrictMode","exports.isSuspense","exports.isValidElementType"],"mappings":"AAA;ACW,0QC,8BF;+EGC,kCH,sDI,4BJ,2BK,4BL,mBM,gEN,sBO,4BP,oBQ,4BR,gBS,4BT;eUC,4BV,kBW,4BX,oBY,4BZ,sBa,4Bb,oBc,4Bd;2BeC,wRf"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","<anonymous>","UIManagerAny.setJSResponder","UIManagerAny.clearJSResponder","DeviceEventEmitter.addListener$argument_1","hasUnresolvedRefs","extract","refs.some$argument_0","createHandler","Handler","Handler#constructor","Handler#componentDidMount","setState$argument_0","setImmediate$argument_0","Handler#componentDidUpdate","Handler#componentWillUnmount","Handler#onGestureHandlerEvent","Handler#onGestureHandlerStateChange","Handler#refHandler","Handler#createGestureHandler","Handler#attachGestureHandler","Handler#updateGestureHandler","Handler#update","Handler#setNativeProps","Handler#render"],"mappings":"AAA;sCCmF;GDE;0CCC;GDE;8BEE;CFG;gCGC;CHG;2DIO;GJE;AKM;kBCI;qBCI,8BD;GDC;CLE;eQ6B;ECa;ICc;KDY;IEE;UPM;0BQC,yBR;WOE;2CEU;SFG;KFY;IKE;KLM;IME;KNa;oCOE;KPQ;0CQG;KRiB;yBSE;KTa;mCUE;KVU;mCWE;4BnBmB;SmBiB;KXU;mCYE;KZO;IaE;2CTO;SSG;KbW;IcE;KdQ;IeE;KfoH;GDC;CRE"}],[{"names":["<global>","isEqual"],"mappings":"AAA;AC8B;CDE"}],[{"names":["<global>","baseIsEqual"],"mappings":"AAA;ACiB;CDQ"}],[{"names":["<global>","baseIsEqualDeep"],"mappings":"AAA;ACqC;CD2C"}],[{"names":["<global>","Stack"],"mappings":"AAA;ACc;CDG"}],[{"names":["<global>","ListCache"],"mappings":"AAA;ACa;CDS"}],[{"names":["<global>","listCacheClear"],"mappings":"AAA;ACO;CDG"}],[{"names":["<global>","listCacheDelete"],"mappings":"AAA;ACiB;CDe"}],[{"names":["<global>","assocIndexOf"],"mappings":"AAA;ACU;CDQ"}],[{"names":["<global>","eq"],"mappings":"AAA;ACgC;CDE"}],[{"names":["<global>","listCacheGet"],"mappings":"AAA;ACW;CDK"}],[{"names":["<global>","listCacheHas"],"mappings":"AAA;ACW;CDE"}],[{"names":["<global>","listCacheSet"],"mappings":"AAA;ACY;CDW"}],[{"names":["<global>","stackClear"],"mappings":"AAA;ACS;CDG"}],[{"names":["<global>","stackDelete"],"mappings":"AAA;ACS;CDM"}],[{"names":["<global>","stackGet"],"mappings":"AAA;ACS;CDE"}],[{"names":["<global>","stackHas"],"mappings":"AAA;ACS;CDE"}],[{"names":["<global>","stackSet"],"mappings":"AAA;ACiB;CDc"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getNative"],"mappings":"AAA;ACW;CDG"}],[{"names":["<global>","baseIsNative"],"mappings":"AAA;ACsC;CDM"}],[{"names":["<global>","isFunction"],"mappings":"AAA;AC0B;CDQ"}],[{"names":["<global>","baseGetTag"],"mappings":"AAA;ACkB;CDO"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getRawTag"],"mappings":"AAA;ACyB;CDkB"}],[{"names":["<global>","objectToString"],"mappings":"AAA;ACiB;CDE"}],[{"names":["<global>","isObject"],"mappings":"AAA;ACyB;CDG"}],[{"names":["<global>","<anonymous>","isMasked"],"mappings":"AAA;kBCG;CDG;AES;CFE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","toSource"],"mappings":"AAA;ACa;CDU"}],[{"names":["<global>","getValue"],"mappings":"AAA;ACQ;CDE"}],[{"names":["<global>","MapCache"],"mappings":"AAA;ACa;CDS"}],[{"names":["<global>","mapCacheClear"],"mappings":"AAA;ACW;CDO"}],[{"names":["<global>","Hash"],"mappings":"AAA;ACa;CDS"}],[{"names":["<global>","hashClear"],"mappings":"AAA;ACS;CDG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","hashDelete"],"mappings":"AAA;ACU;CDI"}],[{"names":["<global>","hashGet"],"mappings":"AAA;ACoB;CDO"}],[{"names":["<global>","hashHas"],"mappings":"AAA;ACiB;CDG"}],[{"names":["<global>","hashSet"],"mappings":"AAA;ACe;CDK"}],[{"names":["<global>","mapCacheDelete"],"mappings":"AAA;ACW;CDI"}],[{"names":["<global>","getMapData"],"mappings":"AAA;ACU;CDK"}],[{"names":["<global>","isKeyable"],"mappings":"AAA;ACO;CDK"}],[{"names":["<global>","mapCacheGet"],"mappings":"AAA;ACW;CDE"}],[{"names":["<global>","mapCacheHas"],"mappings":"AAA;ACW;CDE"}],[{"names":["<global>","mapCacheSet"],"mappings":"AAA;ACY;CDO"}],[{"names":["<global>","equalArrays","arraySome$argument_1"],"mappings":"AAA;ACqB;4BCwC;WDK;CDe"}],[{"names":["<global>","SetCache"],"mappings":"AAA;ACY;CDQ"}],[{"names":["<global>","setCacheAdd"],"mappings":"AAA;ACa;CDG"}],[{"names":["<global>","setCacheHas"],"mappings":"AAA;ACS;CDE"}],[{"names":["<global>","arraySome"],"mappings":"AAA;ACU;CDU"}],[{"names":["<global>","cacheHas"],"mappings":"AAA;ACQ;CDE"}],[{"names":["<global>","equalByTag"],"mappings":"AAA;AC8C;CD+D"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","mapToArray","map.forEach$argument_0"],"mappings":"AAA;ACO;cCI;GDE;CDE"}],[{"names":["<global>","setToArray","set.forEach$argument_0"],"mappings":"AAA;ACO;cCI;GDE;CDE"}],[{"names":["<global>","equalObjects"],"mappings":"AAA;ACwB;CD+D"}],[{"names":["<global>","getAllKeys"],"mappings":"AAA;ACW;CDE"}],[{"names":["<global>","baseGetAllKeys"],"mappings":"AAA;ACc;CDG"}],[{"names":["<global>","arrayPush"],"mappings":"AAA;ACQ;CDS"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","<anonymous>","arrayFilter$argument_1"],"mappings":"AAA;iDCmB;+CCK;GDE;CDC"}],[{"names":["<global>","arrayFilter"],"mappings":"AAA;ACS;CDa"}],[{"names":["<global>","stubArray"],"mappings":"AAA;ACkB;CDE"}],[{"names":["<global>","keys"],"mappings":"AAA;ACgC;CDE"}],[{"names":["<global>","arrayLikeKeys"],"mappings":"AAA;ACqB;CDyB"}],[{"names":["<global>","baseTimes"],"mappings":"AAA;ACS;CDQ"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA;kCC8B,gCD,wBC;CDG"}],[{"names":["<global>","baseIsArguments"],"mappings":"AAA;ACa;CDE"}],[{"names":["<global>","isObjectLike"],"mappings":"AAA;ACwB;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","stubFalse"],"mappings":"AAA;ACa;CDE"}],[{"names":["<global>","isIndex"],"mappings":"AAA;ACc;CDQ"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","baseIsTypedArray"],"mappings":"AAA;ACsD;CDG"}],[{"names":["<global>","isLength"],"mappings":"AAA;AC6B;CDG"}],[{"names":["<global>","baseUnary","<anonymous>"],"mappings":"AAA;ACO;SCC;GDE;CDC"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA;gBCe;CDY"}],[{"names":["<global>","baseKeys"],"mappings":"AAA;ACgB;CDW"}],[{"names":["<global>","isPrototype"],"mappings":"AAA;ACU;CDK"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","overArg","<anonymous>"],"mappings":"AAA;ACQ;SCC;GDE;CDC"}],[{"names":["<global>","isArrayLike"],"mappings":"AAA;AC4B;CDE"}],[{"names":["<global>","getTag"],"mappings":"AAA;WCuC;GDe"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","isConfigParam","filterConfig","transformIntoHandlerTags","handlerIDs.map$argument_0","handlerIDs.map.filter$argument_0","findNodeHandle","scheduleFlushOperations","requestAnimationFrame$argument_0"],"mappings":"AAA;ACuI;CDU;OEE;CFkB;AGE;WCK,0CD;cEC,uBF;MCK;wEDC;YEE,sCF;CHC;OME;CNO;OOM;uDCE;KDI;CPE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","ForceTouchFallback","ForceTouchFallback#componentDidMount","ForceTouchFallback#render"],"mappings":"AAA;ACgB;ECE;GDM;EEC;GFE;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","validatePanGestureHandlerProps","transformPanGestureHandlerProps","managePanProps"],"mappings":"AAA;AC2M;CDgD;AEE;CFgE;OGE;CHK"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","createNativeWrapper","React.forwardRef$argument_0","Object.keys.reduce$argument_0","useImperativeHandle$argument_1"],"mappings":"AAA;eCsB;ICO;MCG;ODQ;MEQ;OFS;GDW;CDW"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","convertToHandlerTag","extractValidHandlerTags","interactionGroup.map.filter$argument_0","dropHandlers","checkGestureCallbacksForWorklets","attachHandlers","setImmediate$argument_0","isAnimatedGesture","gesture.filter.map$argument_0","updateHandlers","preparedGesture.config.filter$argument_0","preparedGesture.config.filter.map$argument_0","needsToReattach","isStateChangeEvent","isTouchEvent","getHandler","touchEventTypeToCallbackType","runWorklet","useAnimatedGesture","callback","validateDetectorChildren","applyUserSelectProp","GestureDetector","gesture.some$argument_0","useRef$argument_0.onGestureHandlerEvent","<anonymous>","forceRender","onHandlersUpdate","useEffect$argument_0","refFunction","Wrap","Wrap#render"],"mappings":"AAA;ACsE;CDU;AEE;uDCE,gBD;CFE;AIE;CJQ;AKE;CLmB;AMkB;eCgB;GDK;eCe;GD2B;8BE4B,yCF;WGI,iBH;CNI;AUE;eHuB;gBIiC,4BJ;aKC,iBL;GG2B;CVC;AaE;CbkB;AcE;CdM;AeE;CfK;AgBE;ChB2B;AiBE;CjBe;AkBE;ClBe;AmBE;mBCuB;GD2E;CnBW;AqBG;CrBiD;4BsBE;CtBO;+BuBa;yCCQ,4BD;2BEW;KFE;QGE;SHE;EIK;GJE;EKkB;GLyB;YMqB;WHgB;KGG;GNC;YME;GNM;sBOE;GP0B;CvBa;A+BE;ECK;GDqB;C/BC"}],[{"names":["<global>","Gesture","BaseGesture","BaseGesture#constructor","BaseGesture#addDependency","BaseGesture#withRef","BaseGesture#isWorklet","BaseGesture#onBegin","BaseGesture#onStart","BaseGesture#onEnd","BaseGesture#onFinalize","BaseGesture#onTouchesDown","BaseGesture#onTouchesMove","BaseGesture#onTouchesUp","BaseGesture#onTouchesCancelled","BaseGesture#enabled","BaseGesture#shouldCancelWhenOutside","BaseGesture#hitSlop","BaseGesture#runOnJS","BaseGesture#simultaneousWithExternalGesture","BaseGesture#requireExternalGestureToFail","BaseGesture#withTestId","BaseGesture#cancelsTouchesInView","BaseGesture#initialize","BaseGesture#toGestureArray","BaseGesture#prepare","BaseGesture#get__shouldUseReanimated","ContinousBaseGesture","ContinousBaseGesture#onUpdate","ContinousBaseGesture#onChange","ContinousBaseGesture#manualActivation"],"mappings":"AAA;OCkG;CDkB;OEG;ECa;GDU;EEE;GFQ;EGE;GHG;EIG;GJG;EKE;GLI;EME;GNI;EOE;GPU;EQE;GRU;ESE;GTO;EUE;GVO;EWE;GXO;EYE;GZO;EaE;GbG;EcE;GdG;EeE;GfG;EgBE;GhBG;EiBE;GjBK;EkBE;GlBK;EmBE;GnBG;EoBE;GpBG;EqBE;GrBQ;EsBE;GtBE;EuBG,YvB;EwBE;GxBS;CFC;O2BE;ECI;GDI;EEE;GFQ;EGE;GHG;C3BC"}],[{"names":["<global>","getShadowNodeFromRef","findHostInstance_DEPRECATED"],"mappings":"AAA;OCM;oCCQ,mBD;CDO"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","enableExperimentalWebImplementation","isExperimentalWebImplementationEnabled"],"mappings":"AAA;OCK;CDgB;OEE;CFG"}],[{"names":["<global>","GestureObjects.Tap","GestureObjects.Pan","GestureObjects.Pinch","GestureObjects.Rotation","GestureObjects.Fling","GestureObjects.LongPress","GestureObjects.ForceTouch","GestureObjects.Native","GestureObjects.Manual","GestureObjects.Race","GestureObjects.Simultaneous","GestureObjects.Exclusive"],"mappings":"AAA;OCiB;GDE;OEE;GFE;SGE;GHE;YIE;GJE;SKE;GLE;aME;GNE;cOE;GPE;UQE;GRE;USE;GTE;QUM;GVE;EWK;GXE;EYS;GZE"}],[{"names":["<global>","FlingGesture","FlingGesture#constructor","FlingGesture#numberOfPointers","FlingGesture#direction"],"mappings":"AAA;OCM;ECG;GDI;EEE;GFG;EGE;GHG;CDC"}],[{"names":["<global>","changeEventCalculator","ForceTouchGesture","ForceTouchGesture#constructor","ForceTouchGesture#minForce","ForceTouchGesture#maxForce","ForceTouchGesture#feedbackOnActivation","ForceTouchGesture#onChange"],"mappings":"AAA;ACW;CDiB;OEE;ECM;GDI;EEE;GFG;EGE;GHG;EIE;GJG;EKE;GLa;CFC"}],[{"names":["<global>","extendRelation","ComposedGesture","ComposedGesture#constructor","ComposedGesture#prepareSingleGesture","ComposedGesture#prepare","ComposedGesture#initialize","ComposedGesture#toGestureArray","gestures.flatMap$argument_0","SimultaneousGesture","SimultaneousGesture#prepare","gestures.map$argument_0","gestures.filter$argument_0","gestures.filter.flatMap$argument_0","ExclusiveGesture","ExclusiveGesture#prepare"],"mappings":"AAA;ACE;CDS;OEE;ECK;GDG;EEE;GFuB;EGE;GHQ;EIE;GJI;EKE;iCCC,qCD;GLC;CFC;OSE;ECC;iDCG;gBCI,oBD;iBEK,yBF,CD;GDU;CTC;OcE;ECC;4CJG;8BIC;GDe;CdC"}],[{"names":["<global>","LongPressGesture","LongPressGesture#constructor","LongPressGesture#minDuration","LongPressGesture#maxDistance"],"mappings":"AAA;OCM;ECG;GDK;EEE;GFG;EGE;GHG;CDC"}],[{"names":["<global>","changeEventCalculator","PanGesture","PanGesture#constructor","PanGesture#activeOffsetY","PanGesture#activeOffsetX","PanGesture#failOffsetY","PanGesture#failOffsetX","PanGesture#minPointers","PanGesture#maxPointers","PanGesture#minDistance","PanGesture#minVelocity","PanGesture#minVelocityX","PanGesture#minVelocityY","PanGesture#averageTouches","PanGesture#enableTrackpadTwoFingerGesture","PanGesture#activateAfterLongPress","PanGesture#onChange"],"mappings":"AAA;ACY;CDmB;OEE;ECM;GDI;EEE;GFU;EGE;GHU;EIE;GJU;EKE;GLU;EME;GNG;EOE;GPG;EQE;GRG;ESE;GTG;EUE;GVG;EWE;GXG;EYE;GZG;EaE;GbG;EcE;GdG;EeE;GfU;CFC"}],[{"names":["<global>","changeEventCalculator","PinchGesture","PinchGesture#constructor","PinchGesture#onChange"],"mappings":"AAA;ACQ;CDiB;OEE;ECI;GDI;EEE;GFU;CFC"}],[{"names":["<global>","changeEventCalculator","RotationGesture","RotationGesture#constructor","RotationGesture#onChange"],"mappings":"AAA;ACQ;CDiB;OEE;ECI;GDI;EEE;GFU;CFC"}],[{"names":["<global>","TapGesture","TapGesture#constructor","TapGesture#minPointers","TapGesture#numberOfTaps","TapGesture#maxDistance","TapGesture#maxDuration","TapGesture#maxDelay","TapGesture#maxDeltaX","TapGesture#maxDeltaY"],"mappings":"AAA;OCM;ECG;GDK;EEE;GFG;EGE;GHG;EIE;GJG;EKE;GLG;EME;GNG;EOE;GPG;EQE;GRG;CDC"}],[{"names":["<global>","NativeGesture","NativeGesture#constructor","NativeGesture#shouldActivateOnStart","NativeGesture#disallowInterruption"],"mappings":"AAA;OCM;ECG;GDI;EEE;GFG;EGE;GHG;CDC"}],[{"names":["<global>","changeEventCalculator","ManualGesture","ManualGesture#constructor","ManualGesture#onChange"],"mappings":"AAA;ACG;CDM;OEE;ECI;GDI;EEE;GFM;CFC"}],[{"names":["<global>","BaseButton","BaseButton#constructor","BaseButton#handleEvent","BaseButton#onLongPress","BaseButton#onHandlerStateChange","BaseButton#onGestureEvent","BaseButton#render","RectButton","RectButton#constructor","RectButton#onActiveStateChange","RectButton#render","BorderlessButton","BorderlessButton#constructor","BorderlessButton#onActiveStateChange","BorderlessButton#render"],"mappings":"AAA;OC4H;ECS;GDI;wBEE;GFqD;wBGE;GHG;iCIM;GJK;2BKE;GLO;EME;GNW;CDC;OQc;ECQ;GDG;gCEE;GFM;EGE;GH2B;CRC;OYE;ECQ;GDG;gCEE;GFM;EGE;GHW;CZC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","React.forwardRef$argument_0"],"mappings":"AAA;ECO,yDD"}],[{"names":["<global>","GenericTouchable","handlePressIn","setTimeout$argument_0","handleMoveOutside","handleGoToUndetermined","componentDidMount","reset","moveToState","onGestureEvent","onHandlerStateChange","onLongPressDetected","componentWillUnmount","onMoveIn","onMoveOut","render"],"mappings":"AAA;eCkE;EC0B;uCCE;ODG;GDS;EGG;mBDI;SCG;GHI;EIG;wCFG;OEM;GJO;EKE;GLE;EME;GNS;EOG;GPuB;mBQE;GRW;yBSE;GT2B;wBUE;GVI;EWE;GXG;EYE;GZK;EaE;GbO;EcE;GdoC;CDC"}],[{"names":["<global>","TouchableOpacity","getChildStyleOpacityWithDefault","setOpacityTo","onStateChange","render"],"mappings":"AAA;eCqB;oCCS;GDG;iBEI;GFO;kBGE;GHS;EIE;GJe;CDC"}],[{"names":["<global>","TouchableHighlight","constructor","showUnderlay","hasPressHandler","hideUnderlay","renderChildren","onStateChange","render"],"mappings":"AAA;eC0B;ECW;GDM;iBEG;GFa;oBGE;0BHI;iBIE;GJM;EKE;GLW;kBME;GNS;EOE;GPW;CDC"}],[{"names":["<global>","React.forwardRef$argument_0","RNFlatList.props.renderScrollComponent"],"mappings":"AAA;EC+C;CDqB;yCCyB;6BCyB;ODQ;CDY"}],[{"names":["<global>","Swipeable","constructor","shouldComponentUpdate","updateAnimatedEvent","onTapHandlerStateChange","onHandlerStateChange","handleRelease","animateRow","Animated.spring.start$argument_0","onRowLayout","currentOffset","close","openLeft","openRight","render","View.props.onLayout"],"mappings":"AAA;eCyM;ECU;GDiB;EEE;GFc;gCGW;GHoD;oCIE;GJM;iCKE;GLM;0BME;GNoC;uBOE;aCuB;KDa;GPW;wBSE;GTE;0BUE;GVU;UWE;GXE;aYE;GZG;caE;GbK;EcE;oBCe;8DDC;oBCc;gEDC;GdkC;CDC"}],[{"names":["<global>","DrawerLayout","constructor","shouldComponentUpdate","updateAnimatedEvent","gestureOptions.listener","handleContainerLayout","emitStateChanged","openingHandlerStateChange","onTapHandlerStateChange","handleRelease","updateShowing","animateDrawer","Animated.spring.start$argument_0","openDrawer","closeDrawer","renderOverlay","renderDrawer","setPanGestureRef","render"],"mappings":"AAA;eCsL;ECgB;GDiB;EEE;GFW;gCGgB;gCC+F;ODK;GHO;kCKE;GLE;6BME;GNK;sCOE;GPe;oCQE;GRU;0BSE;GTkC;0BUE;GV0B;0BWE;aCwC;KDe;GXC;eaE;GbY;gBcE;GdY;0BeE;GfyB;yBgBE;GhByF;6BiBE;GjBO;EkBE;GlBsC;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","module.exports.get__StateUtils","module.exports.get__getNavigation","module.exports.get__createNavigator","module.exports.get__NavigationContext","module.exports.get__NavigationProvider","module.exports.get__NavigationConsumer","module.exports.get__createSwitchNavigator","module.exports.get__ThemeContext","module.exports.get__ThemeProvider","module.exports.get__ThemeConsumer","module.exports.get__ThemeColors","module.exports.get__useTheme","module.exports.get__NavigationActions","module.exports.get__StackActions","module.exports.get__SwitchActions","module.exports.get__StackRouter","module.exports.get__TabRouter","module.exports.get__SwitchRouter","module.exports.get__createConfigGetter","module.exports.get__getScreenForRouteName","module.exports.get__validateRouteConfigMap","module.exports.get__getActiveChildNavigationOptions","module.exports.get__pathUtils","module.exports.get__SceneView","module.exports.get__SwitchView","module.exports.get__NavigationEvents","module.exports.get__withNavigation","module.exports.get__withNavigationFocus"],"mappings":"AAA;ECE;GDE;EEE;GFE;EGG;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQG;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaG;GbE;EcE;GdE;EeE;GfE;EgBG;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;EoBE;GpBE;EqBE;GrBE;EsBG;GtBE;EuBE;GvBE;EwBE;GxBE;EyBG;GzBE;E0BG;G1BE;E2BG;G3BE;E4BE;G5BE"}],[{"names":["<global>","get","state.routes.find$argument_0","indexOf","state.routes.findIndex$argument_0","has","state.routes.some$argument_0","push","pop","jumpToIndex","jumpTo","back","forward","replaceAndPrune","replaceAt","replaceAtIndex","reset","compare"],"mappings":"AAA;ECc;6BCC,0BD;GDC;EGM;kCCC,0BD;GHC;EKM;+BCC,0BD;GLC;EOO;GPQ;EQO;GRW;ESK;GTS;EUK;GVI;EWK;GXI;EYK;GZI;EaO;GbM;EcS;GdM;EeO;Gfa;EgBO;sBCK,mCD;GhBY"}],[{"names":["<global>","validateFormat","invariant","format.replace$argument_1"],"mappings":"AAA;qBCU,cD;mBCG;GDI;AEG;8CCU,sBD;CFQ"}],[{"names":["<global>","getNavigation","navigation.getChildNavigation","navigation.isFocused","navigation.addListener","remove","navigation.dangerouslyGetParent","navigation.isFirstRouteInParent","Object.keys.forEach$argument_0","navigation.actionName"],"mappings":"AAA;eCG;wBCQ,0ED;eEC;KFW;iBGC;kBCG,QD;gBCM;SDE;KHE;0BKC,UL;0BMC,UN;sCOM;6BCC,qED;GPC;CDE"}],[{"names":["<global>","getNavigationActionCreators","goBack","navigate","setParams"],"mappings":"AAA;oCCI;YCE;KDW;cEC;KFa;eGC;KHM;CDE"}],[{"names":["<global>","back","init","navigate","setParams"],"mappings":"AAA;oBCM;EDI;oBEC;CFU;wBGC;CHmB;yBIC;EJK"}],[{"names":["<global>","createParamGetter","<anonymous>","getChildNavigation","navigation.state.routes.find$argument_0","Object.keys.forEach$argument_0","actionHelpers.actionName","children.childKey.getChildNavigation","getChildNavigation$argument_2","children.childKey.isFocused","children.childKey.isFirstRouteInParent"],"mappings":"AAA;0BCK,SC;CFQ;AGE;kDCE,uBD;sCEuB;gCCC;KDI;GFC;0BI2B,uEC;ODG,CJ;iBMC;ONqB;4BOC,0BP;CHS"}],[{"names":["<global>","getChildRouter"],"mappings":"AAA,eC;CDS"}],[{"names":["<global>","getChildrenNavigationCache","navigation.state.routes.map$argument_0","Object.keys.forEach$argument_0"],"mappings":"AAA,eC;8CCM,kBD;+CEC;GFI;CDE"}],[{"names":["<global>","getEventManager","removeListener","addListener","remove","emit","callbacks.forEach$argument_0"],"mappings":"AAA;eCK;yBCU;GDS;sBEO;cCK,oCD;GFE;UIS;8ECQ,cD;KJC;CDE"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","createNavigator","Navigator","Navigator#constructor","Navigator.getDerivedStateFromProps","routes.reduce$argument_0","Navigator#componentDidUpdate","Navigator#render","React.createElement$argument_1.onEvent"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;AEO;ECC;ICE;KDQ;IEE;wCCkB;ODiB;KFM;IIE;KJO;IKE;iBCG;SDI;KLO;GDE;CFS"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["_defineProperty","<global>","NavigationEventManager","NavigationEventManager#constructor","_defineProperty$argument_2","_lastState$routes2.find$argument_0","_lastState$routes3.find$argument_0","navigation.state.routes.find$argument_0","_lastState$routes4.find$argument_0","_lastState$routes5.find$argument_0","NavigationEventManager#componentDidMount","NavigationEventManager#componentWillUnmount","NavigationEventManager#render"],"mappings":"AAA,iNC;eCoC;ECC;2CCuB;KDgD;8CCE;8LCgB,wBD;KDI;6CCE;8LEgB,wBF;KDI;6CCE;mDGW,qCH;kMIQ,wBJ;KDM;4CCE;mDGW,oCH;kMKQ,wBL;KDM;4CCE;KDO;4CCE;KDoB;2CCE;KDoB;2CCE;KDU;0CCE;KDU;GDC;EQE;GRU;ESE;GTS;EUM;GVE;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","createSwitchNavigator"],"mappings":"AAA;ACI;CDI"}],[{"names":["<global>","defaultActionCreators","default","order.map$argument_0","order.forEach$argument_0","getParamsForRoute","resetChildRoute","getNextState","updateNextStateHistory","nextRouteKeyHistory.filter$argument_0","getInitialState","getActionCreators","getStateForAction","state.routes.map$argument_0","state.routes.findIndex$argument_0","order.find$argument_0","state.routes.find$argument_0","getComponentForState","getComponentForRouteName","getPathAndParamsForState","getActionForPathAndParams"],"mappings":"AAA;8BCS,UD;gBEE;uHCc,yBD;gBEI;GFO;EGE;GHU;EIO;GJ0B;EKE;ICC;yDCW,mBD;KDY;GLc;EQE;GRa;ISK;KTE;IUE;0CCgB;YDK;6CEQ,6CF;4LCG,yCD;4CCI;mBDI;mCG6C;SHO;4CIuC,0BJ;mBGmC;SH0B;KVgB;IeE;KfU;IgBE;KhBE;IiBE;KjBG;IkBE;KlBE;CFI"}],[{"names":["<global>","getScreenForRouteName","Object.keys.map$argument_0"],"mappings":"AAA;eCO;4ICI,uBD;CDc"}],[{"names":["<global>","applyConfig","default","<anonymous>"],"mappings":"AAA;ACI;CDgB;gBEE,yCC;CHoB"}],[{"names":["<global>","default","keys.find$argument_0","Object.keys.map$argument_0"],"mappings":"AAA;gBCM;kCCE,mCD;8REW,uCF,uFE,mFF;CDE"}],[{"names":["<global>","jumpTo"],"mappings":"AAA;sBCC;EDI"}],[{"names":["<global>","pop","popToTop","push","reset","replace","completeTransition"],"mappings":"AAA;mBCM;EDG;wBEC;EFG;oBGC;EHG;qBIC;EJI;uBKC;ELG;kCMC;ENI"}],[{"names":["<global>","validateRouteConfigMap","routeNames.forEach$argument_0","getScreenComponent"],"mappings":"AAA;ACO;qBCG;GDW;CDC;AGE;CHM"}],[{"names":["<global>","getParamsFromPath","pathMatch.slice.reduce$argument_0","getRestOfPath","pathMatchKeys.findIndex$argument_0","determineDelimiter","urlToPathAndParams","createPathParser","Object.keys.forEach$argument_0","<anonymous>","getActionForPathAndParams","getPathAndParamsForRoute","Object.keys.filter$argument_0","exactReKeys.find$argument_0","Object.keys.filter.forEach$argument_0"],"mappings":"AAA;iCCO;ECE;GDmB;CDI;sBGE;iDCC,eD;CHE;2BKE;CLY;kCME;CNuB;gCOC;oCCO;qCC6B,QD;GDE;oCGG;GH0D;mCIE;iCCc,+BC,yBD,CD,UG;OHE;GJmB;CPM"}],[{"names":["<global>","parse","compile","encodeURIComponentPretty","encodeURI.replace$argument_1","encodeAsterisk","tokensToFunction","<anonymous>","escapeString","escapeGroup","attachKeys","flags","regexpToRegexp","arrayToRegexp","stringToRegexp","tokensToRegExp","pathToRegexp"],"mappings":"AAA;ACoC;CDgE;AES;CFE;AGQ;2CCC;GDE;CHC;AKQ;yCDC;GCE;CLC;AMK;SCW;GDmE;CNC;AQQ;CRE;ASQ;CTE;AUS;CVG;AWQ;CXE;AYS;CZoB;AaU;CbU;AcU;CdE;AeU;Cf8D;AgBc;ChBiB"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA,kCC;CDE"}],[{"names":["<global>","isNullOrUndefined","encoderForArrayFormat","<anonymous>","parserForArrayFormat","value.split.map$argument_0","validateArrayFormatSeparator","encode","decode","keysSorter","keysSorter.sort$argument_0","keysSorter.sort.map$argument_0","removeHash","getHash","extract","parseValue","parse","reduce$argument_0","exports.stringify","shouldFilter","keys.map$argument_0","keys.map.filter$argument_0","exports.parseUrl","exports.stringifyUrl","exports.pick","exports.exclude"],"mappings":"AAA;0BCM,8CD;AEE;UCG;IDmB;UCG;IDc;UCI;IDU;UCG;IDc;CFE;AIE;UDK;ICe;UDG;ICe;UDI;+FEI,6BF;ICE;UDG;ICO;CJE;AME;CNI;AOE;CPM;AQE;CRM;ASE;SCO,+BD;QEC,iBF;CTI;AYE;CZO;AaE;CbQ;AcE;CdQ;AeE;CfQ;AgBE;uGCuD;EDU;ChBC;oBkBK;sBCc;EDG;iBEkB;EFkB,SG,iBH;ClBC;mBsBE;CtBc;uBuBE;CvBsB;ewBE;CxBW;kByBE;iDtBC,4BsB,GtB,mCsB;CzBG"}],[{"names":["<global>","module.exports","encodeURIComponent.replace$argument_1"],"mappings":"AAA;iBCC,mDC,qDD,CD"}],[{"names":["<global>","decodeComponents","decode","customDecodeURIComponent","module.exports"],"mappings":"AAA;ACK;CDmB;AEE;CFc;AGE;CHmC;iBIE;CJc"}],[{"names":["<global>","module.exports"],"mappings":"AAA;iBCE;CDmB"}],[{"names":["<global>","module.exports"],"mappings":"AAA;iBCC;CDe"}],[{"names":["<global>","SwitchView","render"],"mappings":"AAA;eCE;ECC;GDY;CDE"}],[{"names":["<global>","SceneView","render"],"mappings":"AAA;eCE;ECC;GDY;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","default"],"mappings":"AAA;gBCE,8BD"}],[{"names":["<global>","behavesLikePushAction","defaultActionCreators","isResetToRootStack","default","routeNames.forEach$argument_0","getInitialState","getParamsForRouteAndAction","getComponentForState","getComponentForRouteName","getActionCreators","pop","popToTop","push","replace","reset","dismiss","getStateForAction","state.routes.findIndex$argument_0","state.routes.find$argument_0","newStackActions.map$argument_0","getPathAndParamsForState","getActionForPathAndParams"],"mappings":"AAA;ACU;CDE;8BEE,UF;AGE;CHE;gBIE;qBCM;GDc;EEQ;GFuD;EGE;GHU;IIS;KJW;IKE;KLE;IME;aCE;UDG;kBEC,uCF;cGC;UHI;iBIC;SJgB;eKC;ULI;iBMC;UNE;KNE;IaE;wDCiD;WDM;8CC2H,yBD;4CEsC,0BF;sCG0B;WHiB;+CCc,kBD;gDEsB,0BF;KbgD;IiBE;KjBG;IkBE;KlBE;CJI"}],[{"names":["<global>","_TESTING_ONLY_normalize_keys","generateKey"],"mappings":"AAA;OCE;CDG;OEC;CFE"}],[{"names":["<global>","default"],"mappings":"AAA;gBCE;CDO"}],[{"names":["<global>","default"],"mappings":"AAA,gBC;CDO"}],[{"names":["<global>","getActiveChildNavigationOptions"],"mappings":"AAA,wCC;CDU"}],[{"names":["_defineProperty","<global>","NavigationEvents","constructor","_defineProperty$argument_2","componentDidMount","componentDidUpdate","componentWillUnmount","subscribeAll","EventNames.forEach$argument_0","props.navigation.addListener$argument_1","removeAll","render"],"mappings":"AAA,iNC;ACY;ECC;6CCG,uDD;GDC;EGE;GHK;EIE;GJK;EKE;GLE;EME;uBCE;mFCC;ODG;KDC;GNC;ESE;uBFC;KEE;GTC;EUE;GVE;CDE"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","withNavigation","ComponentWithNavigation","ComponentWithNavigation#render","React.createElement$argument_2"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;eEM;ECG;ICC;gFCE;ODO;KDC;GDE;CFK"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","withNavigationFocus","ComponentWithNavigationFocus","ComponentWithNavigationFocus#constructor","ComponentWithNavigationFocus#componentDidMount","navigation.addListener$argument_1","ComponentWithNavigationFocus#componentWillUnmount","_this$subscriptions.forEach$argument_0","ComponentWithNavigationFocus#render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;eEK;ECC;ICC;KDM;IEE;gECI;QDE,sCC;QDE;KFC;IIE;mICG,mBD;KJC;IME;KNK;GDE;CFO"}],[{"names":["<global>","module.exports.get__createAppContainer","module.exports.get__createKeyboardAwareNavigator","module.exports.get__createNavigationAwareScrollable","module.exports.get__withOrientation","module.exports.get__ResourceSavingSceneView","module.exports.get__SafeAreaView","module.exports.get__ScrollView","module.exports.get__FlatList","module.exports.get__SectionList","module.exports.get__Themed","module.exports.get__createNavigationFactory","module.exports.get__useNavigationBuilder","module.exports.get__useNavigation","module.exports.get__useRoute","module.exports.get__useFocusEffect","module.exports.get__useIsFocused","module.exports.get__useNavigationState","module.exports.get__NavigationContainer"],"mappings":"AAA;ECE;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbE;EcE;GdE;EeE;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","isStateful","validateProps","_TESTING_ONLY_reset_container_count","createNavigationContainer","NavigationContainer","NavigationContainer.getDerivedStateFromProps","NavigationContainer#constructor","_defineProperty$argument_2","dispatchActionEvents","_actionEventSubscribers.forEach$argument_0","setState$argument_1","BackHandler.addEventListener$argument_1","NavigationContainer#_renderLoading","NavigationContainer#_isStateful","NavigationContainer#_onNavigationStateChange","NavigationContainer#componentDidUpdate","NavigationContainer#componentDidMount","dispatchActions","NavigationContainer#getStartupParams","NavigationContainer#componentDidCatch","NavigationContainer#componentWillUnmount","NavigationContainer#render","getNavigation$argument_5"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;AEY;CFE;AGE;CH4B;OIO;CJE;eKe;ECC;ICC;KDG;IEE;8CCO;ODyB;uDCE;ODY;wCCE;qCCY;+CCC;YDK;SDC;aGc;WHM;ODM;+CCE,4BD;yCCE;ODS;sEKM;SLS;KFM;IQE;KRE;ISE;KTE;IUE;KVsB;IWE;KXK;IYE;8BC+D,2CR;QQK,CD;SNU;OMG;KZC;IcE;KdgB;IeE;KfQ;IgBE;KhBkB;IiBG;0ICW,sBD;KjBc;GDE;CLW"}],[{"names":["<global>","validateFormat","invariant","format.replace$argument_1"],"mappings":"AAA;qBCU,cD;mBCG;GDI;eEG;8CCW;ODE;CFQ"}],[{"names":["<global>","docsUrl"],"mappings":"AAA,eC;CDE"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","default","KeyboardAwareNavigator","KeyboardAwareNavigator#constructor","_defineProperty$argument_2","KeyboardAwareNavigator#render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;gBEI;0BCG;ICC;mDCK;ODQ;sDCE;ODM;iDCE;ODG;sDCE;ODc;KDC;IGE;KHO;GDE;CFC"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","createNavigationAwareScrollable","_class","_class#componentDidMount","props.navigation.addListener$argument_1","_class#componentWillUnmount","_class#getNode","_class#render","_extends$argument_0.ref","NavigationAwareScrollable","NavigationAwareScrollable#constructor","_defineProperty$argument_2","NavigationAwareScrollable#render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;eEK;4ECG;ICC;wECC;ODgB;KDC;IGE;KHI;IIE;KJY;IKE;aCE;SDE;KLE;GDE;EQE;ICC;2CCG;ODG;8CCE;ODE;kDCE;ODE;iDCE;ODE;gDCE;ODE;wCCE;ODE;2CCE;ODE;wDCE;ODE;qDCE;ODE;KDC;IGE;KHI;GRE;CFK"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","isOrientationLandscape","default","withOrientation","constructor","_defineProperty$argument_2","componentDidMount","componentWillUnmount","render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;sCEK;oBFG;eGC;ECC;ICC;uDCG;ODO;KDO;IGE;KHE;IIE;KJE;IKE;KLE;GDE;CHG"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","ResourceSavingSceneView","getDerivedStateFromProps","constructor","_defineProperty$argument_2","render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;AEO;ECC;GDQ;EEE;kDCG;KDE;GFK;EIE;GJmB;CFE"}],[{"names":["<global>","getResolvedDimensions","<anonymous>","statusBarHeight","doubleFromPercentString","SafeView","SafeView.setStatusBarHeight","SafeView.setStatusBarHidden","SafeView#componentDidMount","InteractionManager.runAfterInteractions$argument_0","SafeView#componentWillUnmount","SafeView#componentDidUpdate","SafeView#render","Animated.View.props.ref","SafeView#_handleLayout","SafeView#_updateMeasurements","node.measureInWindow$argument_0","SafeView#_getSafeAreaStyle","Object.keys.forEach$argument_0","SafeView#_getViewStyles","SafeView#_getInset","getInset","getStatusBarHeight","withSafeArea","withSafeArea#render"],"mappings":"AAA;8BCwB;CDI;mBEO;CFU;sBEE;CFS;gBEE;CFc;wBGI;CHgC;gCIE;CJU;AKE;8BCC;GDE;8BEE;GFE;EGY;4CCE;KDE;GHC;EKE;GLE;EME;GNE;EOE;aCO,oBD;GPO;kBSE;GTI;wBUE;yBCgB;KDiC;GVC;sBYE;sCCqB;OD+B;GZmB;mBcE;GdsC;ceE;GfG;CLC;OqBE;CrBuB;OsBE;CtBE;4BuBM;SrBC;IqBC;MCC;ODM;KrBC;GqBG;CvBC"}],[{"names":["<global>","hoistNonReactStatics"],"mappings":"AAA;ACmC;CD8B"}],[{"names":["<global>","isOrientationLandscape","default","withOrientation","constructor","componentDidMount","componentWillUnmount","handleOrientationChange","render"],"mappings":"AAA;sCCmB;+CDG;eEE;ECG;ICC;KDK;IEE;KFI;IGE;KHI;8BIE;KJG;IKE;KLE;GDC;CFG"}],[{"names":["_extends","<anonymous>","<global>","propsMaybeWithRefreshControl","React.forwardRef$argument_0","_extends$argument_2.renderScrollComponent"],"mappings":"AAA,kDC,gOD,2CE;ACkB;CDe;sDEE;yBCG,iGD;GFC;yDEC;yBCG,iGD;GFC"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","ThemedText","ThemedText#render","ThemedTextInput","ThemedTextInput#render","ThemedStatusBar","ThemedStatusBar#render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;AEM;ECC;GDM;CFE;AII;ECC;GDO;CJE;AMI;ECC;GDQ;CNE"}],[{"names":["<global>","default"],"mappings":"AAA,eC;CDE"}],[{"names":["<global>","throwError","module.exports.get__createNavigationContainer","module.exports.get__createStackNavigator","module.exports.get__createBottomTabNavigator","module.exports.get__createMaterialTopTabNavigator","module.exports.get__createDrawerNavigator","module.exports.get__StackGestureContext","module.exports.get__DrawerGestureContext","module.exports.get__DrawerRouter","module.exports.get__DrawerActions","module.exports.get__Transitioner","module.exports.get__StackView","module.exports.get__StackViewCard","module.exports.get__StackViewTransitionConfigs","module.exports.get__Header","module.exports.get__HeaderTitle","module.exports.get__HeaderBackButton","module.exports.get__HeaderStyleInterpolator","module.exports.get__DrawerView","module.exports.get__DrawerItems","module.exports.get__DrawerSidebar","module.exports.get__BottomTabBar","module.exports.get__MaterialTopTabBar"],"mappings":"AAA;mBCE;CDI;EEG;GFI;EGE;GHK;EIE;GJK;EKE;GLK;EME;GNK;EOI;GPK;EQE;GRK;ESI;GTK;EUE;GVK;EWG;GXE;EYE;GZE;EaE;GbE;EcE;GdK;EeG;GfK;EgBE;GhBK;EiBE;GjBK;EkBE;GlBE;EmBG;GnBK;EoBE;GpBK;EqBE;GrBK;EsBG;GtBK;EuBE;GvBK"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","forHorizontalIOS","forVerticalIOS","forModalPresentationIOS","forFadeFromBottomAndroid","forRevealFromBottomAndroid","forScaleFromCenterAndroid","forNoAnimation"],"mappings":"AAA;OCW;CD6C;OEK;CFoB;OGK;CHwD;OIK;CJyB;OKK;CL8C;OMK;CNkC;OOC;CPE"}],[{"names":["<global>","isIphoneX","ifIphoneX","getStatusBarHeight","getBottomSpace"],"mappings":"AAA;OCE;CDY;OEE;CFK;OGE;CHM;OIE;CJE"}],[{"names":["<global>","conditional"],"mappings":"AAA;eCa;CDW"}],[{"names":["<global>","forUIKit","forFade","forSlideLeft","forSlideRight","forSlideUp","forNoAnimation"],"mappings":"AAA;OCQ;CDoE;OEK;CFkC;OGK;CHqC;OIK;CJqC;OKK;CLqC;OMC;CNE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","isArrayEqual","a.every$argument_0","StackView","constructor","_defineProperty$argument_2","state.routes.filter$argument_0","routes.findIndex$argument_0","closingRouteKeys.some$argument_0","replacingRouteKeys.every$argument_0","state.routes.some$argument_0","setState$argument_0","state.openingRouteKeys.filter$argument_0","state.closingRouteKeys.filter$argument_0","getDerivedStateFromProps","props.state.routes.map$argument_0","state.previousRoutes.map$argument_0","state.routes.reduce$argument_0","props.state.routes.reduce$argument_0","state.routes.map$argument_0","isAnimationEnabled","getAnimationTypeForReplace","previousRoutes.some$argument_0","closingRouteKeys.filter$argument_0","replacingRouteKeys.filter$argument_0","routes.some$argument_0","openingRouteKeys.filter$argument_0","routes.reduce$argument_0","render","React.createElement$argument_2"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;qBEkB,2CC,8BD,CF;eIE;ECC;gDCa;KDqB;8CCE;8CCO,oGD;qCEC,wBF;KDE;yCCE;KDmB;0CCE;KDE;sDCE;KDY;6CCE;gCGa,wBH,8BI,wBJ,wBK,wBL;sBMK;wELC,8CK;0DCC,wBD;0DEC,wBF;UNE;KDE;8CCE;4BKQ,wBL;sBMY;sCLC,wBK;0DCC,wBD;0DEC,wBF;UNC;KDE;mDCE;KDY;iDCE;KDY;gDCE;KDC;8CCE;KDC;iDCE;KDC;GDC;EWE;4FCE,UD,4BE,UF;0CGO;SHG;8CIM;SJG;kCKC,gCL;+BM2B;KNG;uCOE;KPK;+BQK,mCR;qDSO,mCT;yDUC,mCV;2BWE,uCX;uDYE,uCZ;yDYO,mCZ;yDSK,uCT;8BWS,uCX;qDYM,uCZ;yDUC,uCV;iERW;gHQE;sCaO;KbG;GXU;EyBE;+HCoB;sBDuB;GzBC;CJE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","SafeAreaProvider","onInsetsChange","useParentSafeAreaInsets","useParentSafeAreaFrame","useSafeAreaInsets","useSafeAreaFrame","withSafeAreaInsets","React.forwardRef$argument_0","SafeAreaInsetsContext.Consumer.props.children","useSafeArea"],"mappings":"AAA;OCiC;ICuB;KDyB;CDmB;AGM;CHE;AIE;CJE;OKK;CLM;OME;CNM;OOM;0BCK;OCE;ODK;GDE;CPC;OUK;CVE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","React.forwardRef$argument_0"],"mappings":"AAA;ECW;GDU"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["_extends","<anonymous>","<global>","PanGestureHandler"],"mappings":"AAA,kDC,gOD,2CE;OCK;CDO"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","getHeaderHeights","routes.reduce$argument_0","getDistanceFromOptions","getProgressFromGesture","CardStack","getDerivedStateFromProps","props.routes.reduce$argument_0","props.routes.map$argument_0","scene.__memo.every$argument_0","constructor","_defineProperty$argument_2","setState$argument_0","scenes.find$argument_0","render","state.scenes.slice.some$argument_0","routes.map$argument_0"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;yBEmB;uBCC;GDc;CFC;+BIE;CJK;+BKE;CLmB;eME;ECC;yCCK;KDO;+BEG;2CCqB;SDG;OFK;GDK;EKE;0CCG;oBCS;ODS;KDC;gDCE;oBCI;ODc;KDC;6CCE;KDK;8CCE;0CEc,8CF;KDK;GLsB;ESE;4FCkE;KDe;kBE2B;KF0I;GTC;CNE"}],[{"names":["<global>","_extends","<anonymous>","WebScreen","WebScreen#render","MaybeScreenContainer","MaybeScreen"],"mappings":"AAA;ACE,kDC,gOD,2CD;AGc;ECC;GDa;CHE;oCKK;CLiB;2BMC;CNoC"}],[{"names":["<global>","enableScreens","enableFreeze","screensEnabled","ScreensNativeModules.get__NativeScreen","ScreensNativeModules.get__NativeScreenContainer","ScreensNativeModules.get__NativeScreenNavigationContainer","ScreensNativeModules.get__NativeScreenStack","ScreensNativeModules.get__NativeScreenStackHeaderConfig","ScreensNativeModules.get__NativeScreenStackHeaderSubview","ScreensNativeModules.get__NativeSearchBar","ScreensNativeModules.get__NativeFullWindowOverlay","DelayedFreeze","setImmediate$argument_0","ScreenStack","React.Children.map$argument_1","InnerScreen","InnerScreen#setNativeProps","InnerScreen#setRef","InnerScreen#render","handleRef","ScreenContainer","FullWindowOverlay","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","Screen","Screen#render","module.exports.get__NativeScreen","module.exports.get__NativeScreenContainer","module.exports.get__NativeScreenNavigationContainer","module.exports.get__ScreenStackHeaderConfig","module.exports.get__ScreenStackHeaderSubview","module.exports.get__SearchBar"],"mappings":"AAA;AC6C;CDO;AEI;CFW;AGK;CHE;EIqB;GJI;EKE;GLK;EME;GNO;EOE;GPI;EQE;GRK;ESE;GTK;EUE;GVG;EWE;GXI;AYU;iBCO;KDE;CZI;AcE;0DCI;GDW;CdO;AgBc;ECM;GDE;WEE;GFG;EGE;wBC+B;ODQ;GHuE;ChBC;AqBE;CrBU;AsBE;CtBY;yCuBa;CvBO;mCwBE;CxBQ;kCyBE;CzBQ;oC0BE;C1BQ;uC2BE;C3BQ;A4BoB;ECG;GDG;C5BC;E8BY;G9BE;E+BE;G/BE;EgCE;GhCE;EiCE;GjCE;EkCC;GlCE;EmCC;GnCS"}],[{"names":["<global>","Suspender","Promise$argument_0","Freeze"],"mappings":"AAA;ACO;uCCS;KDE;CDU;OGQ;CHM"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","useTransitionProgress"],"mappings":"AAA;eCI;CDU"}],[{"names":["<global>","executeNativeBackPress"],"mappings":"AAA;OCO;CDI"}],[{"names":["<global>","warnIfHeaderStylesDefined","Object.keys.forEach$argument_0","getDefaultHeaderHeight","HeaderSegment","handleTitleLayout","setTitleLayout$argument_0","handleLeftLabelLayout","memoize$argument_0","<anonymous>"],"mappings":"AAA;kCCO;8BCC;GDQ;CDC;sCGE;CHiB;eIC;4BCK;mBCK;KDS;GDC;gCGE;GHc;uCIE;IJgB;kCKa,kEL;CJkM"}],[{"names":["<global>","HeaderBackButton","handleLabelLayout","shouldTruncateLabel","renderBackImage","renderLabel","handlePress"],"mappings":"AAA;eCK;4BC4B;GDG;8BEE;GFE;0BGE;GHc;sBIE;GJyC;sBKE,+CL;CDyB"}],[{"names":["<global>","MaskedView"],"mappings":"AAA;eCe;CDS"}],[{"names":["<global>","useTheme","React.useMemo$argument_0"],"mappings":"AAA;eCE;uBCE;GDa;CDC"}],null,null,[{"names":["_extends","<anonymous>","<global>","HeaderBackground"],"mappings":"AAA,kDC,gOD,2CE;eCK;CDc"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","memoize","<anonymous>"],"mappings":"AAA,eC;SCG;GDyB;CDC"}],[{"names":["<global>","CardContainer","handleOpen","handleClose","handleGestureBegin","handleGestureCanceled","handleGestureEnd","handleTransition","React.useEffect$argument_0","_scene$progress$next$.call$argument_1","<anonymous>"],"mappings":"AAA;ACS;qBC6C;GDU;sBEE;GFU;6BGE;GHQ;gCIE;GJQ;2BKE;GLO;2BME;GNmB;kBOY;6RCI;KDI;WEC;KFO;GPC;CDkE"}],[{"names":["_extends","<anonymous>","<global>","_defineProperty","hasOpacityStyle","Card","constructor","_defineProperty$argument_2","animation.start$argument_0","setTimeout$argument_0","memoize$argument_0","componentDidMount","componentDidUpdate","componentWillUnmount","gestureActivationCriteria","render","_defineProperty$argument_2.overlay"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;wBEsB;CFO;eGE;ECC;qCCsB;eC6B;ODkB;KDC;+CCE;KDU;qDCE;KDO;oDCE;KDI;kDCE;KDK;sDCE;uDE2D;eFK;KDO;0DIE;MJoB;6DIE;MJoB;GDG;EME;GNK;EOE;GPmC;EQE;GRG;ESE;GT8C;EUE;GViF;CHE;WcO;WdK"}],[{"names":["<global>","Object.keys.forEach$argument_0","Color","Color.prototype.toString","Color.prototype.toJSON","Color.prototype.string","Color.prototype.percentString","Color.prototype.array","Color.prototype.object","Color.prototype.unitArray","Color.prototype.unitObject","Color.prototype.round","Color.prototype.alpha","getset$argument_2","Color.prototype.keyword","Color.prototype.hex","Color.prototype.rgbNumber","Color.prototype.luminosity","Color.prototype.contrast","Color.prototype.level","Color.prototype.isDark","Color.prototype.isLight","Color.prototype.negate","Color.prototype.lighten","Color.prototype.darken","Color.prototype.saturate","Color.prototype.desaturate","Color.prototype.whiten","Color.prototype.blacken","Color.prototype.grayscale","Color.prototype.fade","Color.prototype.opaquer","Color.prototype.rotate","Color.prototype.mix","Color.prototype.model","Color.model","roundTo","roundToPlace","<anonymous>","getset","model.forEach$argument_0","maxfn","assertArray","zeroArray"],"mappings":"AAA;6BCmB;CDE;AEI;CF2F;WGG;EHE;SIE;EJE;SKE;ELK;gBME;ENI;QOE;EPE;SQE;ERc;YSE;ETW;aUE;EVW;QWE;EXG;QYE;EZM;qDaO,oDb;Uc2B;EdM;MeE;EfM;YgBE;EhBG;aiBE;EjBW;WkBE;ElBU;QmBE;EnBO;SoBE;EpBK;UqBE;ErBE;SsBE;EtBM;UuBE;EvBI;SwBE;ExBI;WyBE;EzBI;a0BE;E1BI;S2BE;E3BI;U4BE;E5BI;Y6BE;E7BK;O8BE;E9BE;U+BE;E/BE;SgCE;EhCO;MiCE;EjCqB;6BCI;0BiCQ;EjCW;gBkCG;ElCK;CDC;AoCE;CpCE;AqCE;QCC;EDE;CrCC;AuCE;eCG;EDE;QDI;ECmB;CvCC;AyCE;QHC;EGE;CzCC;A0CE;C1CE;A2CE;C3CQ"}],[{"names":["<global>","cs.get","cs.get.rgb","cs.get.hsl","cs.get.hwb","cs.to.hex","cs.to.rgb","cs.to.rgb.percent","cs.to.hsl","cs.to.hwb","cs.to.keyword","clamp","hexDouble"],"mappings":"AAA;SCmB;CDwB;aEE;CFuF;aGE;CHmB;aIE;CJkB;YKE;CLY;YME;CNM;oBOE;CPU;YQE;CRK;YSI;CTS;gBUE;CVE;AWG;CXE;AYE;CZG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","swizzle","swizzle.wrap","<anonymous>"],"mappings":"AAA;+BCO;CDe;eEE;QCC;EDE;CFC"}],[{"names":["<global>","isArrayish"],"mappings":"AAA,iBC;CDQ"}],[{"names":["<global>","wrapRaw","wrappedFn","wrapRounded","models.forEach$argument_0","routeModels.forEach$argument_0"],"mappings":"AAA;ACO;iBCC;EDU;CDQ;AGE;iBDC;ECqB;CHQ;eIE;qBCS;EDK;CJC"}],[{"names":["<global>","convert.rgb.hsl","convert.rgb.hsv","diffc","convert.rgb.hwb","convert.rgb.cmyk","comparativeDistance","convert.rgb.keyword","convert.keyword.rgb","convert.rgb.xyz","convert.rgb.lab","convert.hsl.rgb","convert.hsl.hsv","convert.hsv.rgb","convert.hsv.hsl","convert.hwb.rgb","convert.cmyk.rgb","convert.xyz.rgb","convert.xyz.lab","convert.lab.xyz","convert.lab.lch","convert.lch.lab","convert.rgb.ansi16","convert.hsv.ansi16","convert.rgb.ansi256","convert.ansi16.rgb","convert.ansi256.rgb","convert.rgb.hex","convert.hex.rgb","colorString.split.map$argument_0","convert.rgb.hcg","convert.hsl.hcg","convert.hsv.hcg","convert.hcg.rgb","convert.hcg.hsv","convert.hcg.hsl","convert.hcg.hwb","convert.hwb.hcg","convert.apple.rgb","convert.rgb.apple","convert.gray.rgb","convert.gray.hsv","convert.gray.hwb","convert.gray.cmyk","convert.gray.lab","convert.gray.hex","convert.rgb.gray"],"mappings":"AAA;kBCwD;CDsC;kBEE;aCY;EDE;CF6B;kBIE;CJU;mBKE;CLe;AMK;CNM;sBOE;CPyB;sBQE;CRE;kBSE;CTe;kBUE;CVsB;kBWE;CX+C;kBYE;CZgB;kBaE;Cb0B;kBcE;CdiB;kBeG;CfyC;mBgBE;ChBc;kBiBE;CjB8B;kBkBE;ClBqB;kBmBE;CnBwB;kBoBE;CpBkB;kBqBE;CrBa;qBsBE;CtBsB;qBuBE;CvBI;sBwBE;CxByB;qByBE;CzBoB;sB0BE;C1Be;kB2BE;C3BO;kB4BE;0CCS;GDE;C5BS;kB8BE;C9BgC;kB+BE;C/BiB;kBgCE;ChCY;kBiCE;CjCqC;kBkCE;ClCY;kBmCE;CnCe;kBoCE;CpCK;kBqCE;CrCY;oBsCE;CtCE;oBuCE;CvCE;mBwCE;CxCE;sCyCE;CzCE;mB0CE;C1CE;oB2CE;C3CE;mB4CE;C5CE;mB6CE;C7CM;mB8CE;C9CG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","buildGraph","deriveBFS","link","<anonymous>","wrapConversion","module.exports"],"mappings":"AAA;ACa;CDe;AEG;CFuB;AGE;QCC;EDE;CHC;AKE;CLa;iBME;CNkB"}],[{"names":["_extends","<anonymous>","<global>","CardSheet","React.useEffect$argument_0"],"mappings":"AAA,kDC,gOD,2CE;6CCQ;kBCO;GDS;CDK"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getDistanceForDirection"],"mappings":"AAA;eCC;CDY"}],[{"names":["<global>","getInvertedMultiplier"],"mappings":"AAA;eCC;CDc"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["_defineProperty","<global>","KeyboardManager","constructor","_defineProperty$argument_2","setTimeout$argument_0","componentWillUnmount","render"],"mappings":"AAA,iNC;eCI;ECC;kDCS;KDK;mDCE;KDc;qDCE;KDwB;oDCE;4CCiB;WDG;KDM;GDC;EIE;GJE;EKI;GLM;CDE"}],[{"names":["<global>","HeaderContainer","scenes.slice.map$argument_0","<anonymous>"],"mappings":"AAA;eCM;0BCiB;wCC+C;ODQ;GDQ;CDC"}],[{"names":["_extends","<anonymous>","<global>","Header","debounce$argument_0","Object.defineProperty$argument_2.get"],"mappings":"AAA,kDC,gOD,2CE;uCCS;4CCwB;GDY;6DFO;KEG;CDI;EGE;GHG"}],[{"names":["_extends","<anonymous>","<global>","HeaderTitle"],"mappings":"AAA,kDC,gOD,2CE;eCK;CDiB"}],[{"names":["<global>","debounce","<anonymous>","setTimeout$argument_0"],"mappings":"AAA,eC;SCE;2BCI;ODE;GDE;CDC"}],[{"names":["<global>","SafeAreaProviderCompat","React.createElement$argument_2"],"mappings":"AAA;eCgB;kECG;GDW;CDC"}],[{"names":["<global>","useCardAnimation"],"mappings":"AAA;eCE;CDQ"}],[{"names":["<global>","useFloatingHeaderHeight"],"mappings":"AAA;eCE;CDQ"}],[{"names":["<global>","useGestureHandlerRef"],"mappings":"AAA;eCE;CDQ"}],[{"names":["<global>","createStackNavigator","createNavigator$argument_0"],"mappings":"AAA;ACI;ECI,6ED;CDC"}],[{"names":["_extends","<anonymous>","<global>","StackView","Object.keys.reduce$argument_0"],"mappings":"AAA,kDC,gOD,2CE;eCM;8DCM;GDM;CDM"}],[{"names":["<global>","check","compat","header","headerTitle","map$argument_0","p","validateDeprecatedOptions","validations.forEach$argument_0","warnings.map$argument_0"],"mappings":"AAA;SCE,2CD;UEG;GF+C;SCE,oCD;UEG;GFQ;SCE,sBD;UEG;GFS;SCE,uDD;UEG;YCC,cD;IFC;SCE,4GD;UEG;iBEC,mBF;IFC;+EKC;SJC,qDI;UHG;SIC,UJ;IGC;ELC;eOC;sBCI;GDa;6EEG,8GF;CPI"}],[{"names":["<global>","validations.transparentCard.compat","validations.headerLayoutPreset.compat","reduce$argument_0","acc.name.compat","name","validateDeprecatedConfig","Object.keys.forEach$argument_0"],"mappings":"AAA;YCI;SDI;YEI;MFE;uIGQ;cCG;gBCC,aD;QDC;GHG;eME;mCCE;GDiB;CNE"}],[{"names":["<global>","Splash","bannerError","componentDidMount","AsyncStorage.getItem.then$argument_0","setState$argument_0","componentWillUnmount","handleBackButton","onPress","render","setInterval$argument_0","setTimeout$argument_0","Button.props.onPress"],"mappings":"AAA;ACkF;gBCS;GDE;EEE;oDCE;uBCS;SDK;KDE;GFG;EKE;GLE;qBME;8BCK,mCD;8BCC,2BD;GNK;EQE;8BCO;uBLC;SKI;ODC;kBEK;uBNC;SMI;OFC;yBGoB;oBHI;yBGW;oBHK;6BGa;wBHM;yBGa;oBHK;yBGU,sDH;yBGU,iDH;yBGS,gDH;yBGU,6BH;GRkB;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","checkValidInput","getItem","Promise$argument_0","RCTAsyncStorage.multiGet$argument_1","setItem","RCTAsyncStorage.multiSet$argument_1","removeItem","RCTAsyncStorage.multiRemove$argument_1","mergeItem","RCTAsyncStorage.multiMerge$argument_1","clear","RCTAsyncStorage.clear$argument_0","getAllKeys","RCTAsyncStorage.getAllKeys$argument_0","flushGetRequests","result.forEach$argument_0","requestKeys.map$argument_0","multiGet","setImmediate$argument_0","keys.forEach$argument_0","multiSet","keyValuePairs.forEach$argument_0","multiRemove","multiMerge","convertErrors","map$argument_0","convertError"],"mappings":"AAA;ACiD;CDoB;WEmB;uBCI;sCCE;ODU;KDC;GFC;WKO;uBFK;+CGE;OHQ;KEC;GLC;cOO;uBJI;yCKE;OLQ;KIC;GPC;aSU;uBNK;iDOE;OPQ;KMC;GTC;SWS;uBRC;4BSC;OTQ;KQC;GXC;caO;uBVG;iCWC;OXQ;KUC;GbC;oBeiB;sCXO;uBYS;SZG;8CaK,sBb;KWI;GfC;YkBS;qCCK;ODG;sCfY;KeG;iBEI;KFI;GlBG;YqBQ;uBlBI;4BmBC;OnBE;8CGE;OHQ;KkBC;GrBC;euBO;uBpBI;mBiBC,2BjB;wCKE;OLQ;KoBC;GvBC;cwBU;uBrBI;gDOC;OPQ;KqBC;GxBC;AyBS;mDCI,oBD;CzBC;A2BE;C3BQ"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","useAsyncStorage","getItem","setItem","mergeItem","removeItem"],"mappings":"AAA;OCsB;aCE,+CD;aEC,+CF;eGC,iDH;gBIC,kDJ;CDE"}],[{"names":["<global>","SafeAreaView","SafeAreaView#componentDidMount","InteractionManager.runAfterInteractions$argument_0","SafeAreaView#componentWillUnmount","SafeAreaView#render","SafeAreaView#_handleLayout","SafeAreaView#_updateMeasurements","view.measureInWindow$argument_0","SafeAreaView#_getSafeAreaStyle","getKeys.forEach$argument_0","SafeAreaView#_getViewStyles","SafeAreaView#_getInset","getResolvedDimensions","doubleFromPercentString","getKeys"],"mappings":"AAA;eCsD;ECe;4CCE;KDE;GDC;EGE;GHE;EIE;GJa;kBKE;GLI;wBME;yBCU;KD6B;GNC;sBQE;kCCqB;ODqC;GRmB;mBUE;GVsC;cWE;GXY;CDC;AaI;CbI;AcG;CdU;AeG;CfE"}],[{"names":["<global>","shallowEqual"],"mappings":"AAA,eC;CDmC"}],[{"names":["<global>","Button","ButtonContainer"],"mappings":"AAA;sBC0D;CD4E;+BEG;CFO"}],[{"names":["<global>"],"mappings":"AAA"}],null,[{"names":["<global>","Banner"],"mappings":"AAA;sBC6C;CDQ"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","MobileAdsModule","MobileAdsModule#constructor","emitter.addListener$argument_1","MobileAdsModule#initialize","MobileAdsModule#setRequestConfiguration","MobileAdsModule#openAdInspector","MobileAds"],"mappings":"AAA;ACsB;ECC;iECG;KDK;qECE;KDK;iECE;KDK;8ECE;KDK;GDC;EGE;GHE;EIE;GJW;EKE;GLE;CDC;yBOiB;CPE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","AppModule","AppModule#constructor","AppModule#get__app","AppModule#get__emitter","AppModule#eventNameForApp","AppModule#get__native"],"mappings":"AAA;OCsB;ECO;GDI;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLM;CDC"}],[{"names":["<global>","nativeModuleKey","nativeModuleMethodWrapped","<anonymous>","possiblePromise._catch$argument_0","nativeModuleWrapped","initialiseNativeModule","subscribeToNativeModuleEvent","GoogleMobileAdsNativeEventEmitter.addListener$argument_1","getMissingModuleHelpText","getNativeModule"],"mappings":"AAA;AC2B;CDE;AEW;SCK;mCCO;wEDC;GDK;CFC;AKS;CLsB;AMQ;CNmC;AOW;6DCE;KDQ;CPI;ASQ;CTqB;OUS;CVQ"}],[{"names":["<global>","NativeError","fromEvent","constructor","getStackWithMessage"],"mappings":"AAA;OCiB;ECO;GDM;EEE;GFa;EGO;GHE;CDC"}],[{"names":["<global>","GANativeEventEmitter","GANativeEventEmitter#constructor","GANativeEventEmitter#addListener","newRemove","GANativeEventEmitter#removeAllListeners","GANativeEventEmitter#removeSubscription"],"mappings":"AAA;ACqB;ECG;GDG;EEE;sBCuB;KDS;GFG;EIE;GJG;EKG;GLK;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","getDataUrlParts","once","onceInner","isError","hasOwnProperty","isPropertySet","stripTrailingSlash","tryJSONParse","tryJSONStringify"],"mappings":"AAA;OC6B;CDc;OEE;SCI;GDO;CFC;OIE;CJM;OKE;CLE;OME;CNK;OOQ;CPK;OQM;CRM;OSE;CTM"}],[{"names":["<global>","btoa","atob","fromData","onloadend","onerror"],"mappings":"AAA;OC2B;CDuB;OEK;CF0B;OGK;2BCO;KDE;yBEE;KFG;CHa"}],[{"names":["<global>","promiseDefer","deferred.resolve","deferred.reject","Promise$argument_0","promiseWithOptionalCallback","then$argument_0","then._catch$argument_0"],"mappings":"AAA;OCsB;gCCK,QD,UE,QF;iCGE;GHG;CDG;OKM;UCS;KDQ;WEC;KFK;CLC"}],[{"names":["<global>","objectKeyValuesAreStrings","isNull","isObject","isDate","isFunction","isString","isNumber","isFinite","isInteger","isBoolean","isArray","isUndefined","isAlphaNumericUnderscore","isValidUrl","isOneOf","noop","validateOptionalNativeDependencyExists"],"mappings":"AAA;OCqB;CDe;OEQ;CFE;OGQ;CHE;OIQ;CJG;OKQ;CLE;OMO;CNE;OOO;CPE;OQO;CRE;OSO;CTE;OUQ;CVE;OWO;CXE;OYO;CZE;OaQ;CbE;OcQ;CdE;OeS;CfK;OgBE;ChBE;OiBE;CjBuB"}],[{"names":["<global>","generateDatabaseId","generateFirestoreId"],"mappings":"AAA;OCkB;CD0C;OEM;CFO"}],[{"names":["<global>","pathParent","pathChild","pathLastComponent","pathPieces","split.filter$argument_0","pathIsEmpty","pathToUrlEncodedString","isValidPath","toFilePath"],"mappings":"AAA;OCoB;CDW;OEK;CFQ;OGK;CHO;OIO;gCCC,iBD;CJC;OMO;CNE;OOO;CPO;OQU;CRE;OSO;CTM"}],[{"names":["<global>","ReferenceBase","constructor","get__key"],"mappings":"AAA;OCiB;ECG;GDa;EEQ;GFE;CDC"}],[{"names":["<global>","validateAdRequestConfiguration"],"mappings":"AAA;OCqB;CDiD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","requestInfoUpdate","showForm","reset","getTCString","getTCModel","getUserChoices"],"mappings":"AAA;ECkC;GD0C;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLG;EME;GNkD"}],[{"names":["<global>","<anonymous>","Object.defineProperty$argument_2.get"],"mappings":"AAA,4EC,iFC,uBD,GD,CC,8CD,wCC,8GD"}],[{"names":["<global>","<anonymous>","Object.defineProperty$argument_2.get"],"mappings":"AAA,4EC,iFC,uBD,GD,CC,8CD,wCC,8GD"}],[{"names":["<global>","<anonymous>","e","e.encode","e.decode"],"mappings":"AAA,oJC,WC,cD,gBE,qPF,UG,kPH,grBD"}],[{"names":["<global>","<anonymous>","Object.defineProperty$argument_2.get"],"mappings":"AAA,4EC,iFC,uBD,GD,CC,8CD,wCC,8GD"}],[{"names":["<global>","<anonymous>","r","e","t"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,yGC,YG,yEH,wBD"}],[{"names":["<global>","<anonymous>","r","n","t"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,yGC,YG,yEH,wBD"}],[{"names":["<global>","<anonymous>","r","e","t"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,+FC,YG,oEH,wBD"}],[{"names":["<global>","<anonymous>","r","e","t"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,uGC,YG,+JH,wBD"}],[{"names":["<global>","<anonymous>","e"],"mappings":"AAA,mJC,WC,cD,qgCD"}],[{"names":["<global>","<anonymous>","Object.defineProperty$argument_2.get"],"mappings":"AAA,4EC,iFC,uBD,GD,CC,8CD,wCC,8GD"}],[{"names":["<global>","<anonymous>","t","o","e","e.prototype.isEmpty","e.prototype.add","e.prototype.get","e.prototype.contains","e.prototype.min","e.prototype.max","e.prototype.remove"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,yJC,YG,gFH,0CI,4BJ,iBK,yOL,iBM,mNN,sBO,uHP,iBQ,+FR,iBS,iGT,oBU,yWV,GD"}],[{"names":["<global>","<anonymous>","next","e","e.prototype.clone","Object.keys.forEach$argument_0","e.prototype.deepClone"],"mappings":"AAA,+CC,6IC,uED,qFD,+FC,WE,cF,yBG,+EC,yDD,KH,uBK,ikBL,GD"}],[{"names":["<global>","<anonymous>","e","e.prototype.has","e.prototype.forEach","Object.defineProperty$argument_2.get"],"mappings":"AAA,yHC,WC,cD,uBE,oCF,qBG,iCH,+CI,iCJ,yMD"}],[{"names":["<global>","<anonymous>","e"],"mappings":"AAA,qGC,WC,cD,ujCD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","<anonymous>","e","o","t","t.unHash","Object.defineProperty$argument_2.get","Object.defineProperty$argument_2.set","t.prototype.isValid","t.prototype.isSameAs"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,2PC,YG,gHH,+BI,6LJ,+CK,6KL,oFK,kCL,KM,8BN,qDO,qSP,sBQ,0FR,uBD"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA,uHC,qHD"}],[{"names":["<global>","<anonymous>","e","o","next","t","t.prototype.has","t.prototype.isOkToHave","t.prototype.add","t.prototype.restrictPurposeToLegalBasis","t.prototype.getVendors","map.forEach$argument_0","e.get.forEach$argument_0","t.prototype.getRestrictionType","getRestrictions.forEach$argument_0","t.prototype.vendorHasRestriction","t.prototype.getMaxVendorId","t.prototype.getRestrictions","t.prototype.getPurposes","t.prototype.remove","Object.defineProperty$argument_2.get","Object.defineProperty$argument_2.set","t.prototype.isEmpty"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,iCC,6IG,uEH,qFD,8UC,YI,gGJ,sCK,mCL,wBM,ohBN,iBO,mMP,yCQ,oDR,iMQ,kIR,wBS,oHC,6BC,qBD,GD,4BT,gCY,4DC,sFD,KZ,kCc,wGd,4Be,4CL,kCK,Kf,6BgB,8CN,yJM,KhB,yBiB,kDP,oFO,iBjB,oBkB,iHlB,8CmB,4BnB,KoB,iEV,0FC,uED,GU,IpB,qDqB,oCrB,0DmB,gCnB,mCD"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA,2JC,sDD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA,uGC,iID"}],[{"names":["<global>","<anonymous>","e"],"mappings":"AAA,yJC,WC,cD,qVD"}],[{"names":["<global>","<anonymous>","t","n","s.sent","i.@@iterator","a","e","e.prototype.@@iterator","__generator$argument_1","e.prototype.values","Object.defineProperty$argument_2.get","e.prototype.has","e.prototype.unset","t.forEach$argument_0","Object.keys.map$argument_0","set_.forEach$argument_0","e.prototype.isIntMap","Object.keys.every$argument_0","e.prototype.isValidNumber","e.prototype.isSet","e.prototype.set","e.prototype.empty","e.prototype.forEach","e.prototype.setAll"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,uCC,0CG,4CH,4GI,uBJ,IK,qBL,gzBK,CL,CD,4KC,YM,4GN,mDO,0CC,2KD,GP,oBS,qCT,gDU,8BV,iDW,oCX,mBY,mDC,8BD,qDE,6BF,oGG,yCH,KZ,sBgB,8EC,gHD,GhB,2BkB,oClB,mBmB,4FnB,iBoB,sDP,4BO,uGN,6BM,iOpB,mBqB,6BrB,qBsB,2DtB,+CU,iCV,oDuB,wBvB,GD"}],[{"names":["<global>","<anonymous>","Object.defineProperty$argument_2.get"],"mappings":"AAA,4EC,iFC,uBD,GD,CC,8CD,wCC,8GD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","<anonymous>","e","e.encode","s.forEach$argument_0","e.decode","d.forEach$argument_0","e.isPublisherCustom"],"mappings":"AAA,mZC,WC,cD,gBE,uYC,yRD,sCF,UI,4aC,4XD,KJ,qBM,oDN,gDD"}],[{"names":["<global>","<anonymous>","Object.defineProperty$argument_2.get"],"mappings":"AAA,4EC,iFC,uBD,GD,CC,8CD,wCC,8GD"}],[{"names":["<global>","<anonymous>","e","e.encode","e.decode"],"mappings":"AAA,qHC,WC,cD,gBE,qCF,UG,0BH,GD"}],[{"names":["<global>","<anonymous>","e","e.encode","e.decode"],"mappings":"AAA,sMC,WC,cD,gBE,sFF,UG,qKH,GD"}],[{"names":["<global>","<anonymous>","e","e.encode","e.decode"],"mappings":"AAA,yJC,WC,cD,gBE,wOF,UG,4GH,GD"}],[{"names":["<global>","FieldEncoderMap"],"mappings":"AAA,uhBC,+gED"}],[{"names":["<global>","<anonymous>","e","e.encode","e.decode"],"mappings":"AAA,uQC,WC,cD,gBE,wGF,UG,6OH,GD"}],[{"names":["<global>","<anonymous>","e","e.encode","e.decode"],"mappings":"AAA,sMC,WC,cD,gBE,yWF,UG,kSH,GD"}],[{"names":["<global>","<anonymous>","e","e.encode","e.getRestrictions.forEach$argument_0","_","e.decode"],"mappings":"AAA,sXC,WC,cD,gBE,iKC,sPC,0FJ,8CI,kOD,mGD,KF,UK,67CL,GD"}],[{"names":["<global>","<anonymous>","e","e.encode","e.forEach$argument_0","e.decode","e.buildRangeEncoding"],"mappings":"AAA,4cC,WC,cD,gBE,+UC,iQD,sKF,UI,6qCJ,sBK,oHF,uOE,KL,GD"}],[{"names":["<global>","<anonymous>"],"mappings":"AAA,6HC,sDD"}],[{"names":["<global>","<anonymous>","Object.defineProperty$argument_2.get"],"mappings":"AAA,4EC,iFC,uBD,GD,CC,8CD,wCC,8GD"}],[{"names":["<global>","FieldSequence"],"mappings":"AAA,8JC,g8CD"}],[{"names":["<global>","SegmentSequence"],"mappings":"AAA,kKC,wdD"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","<anonymous>","e","e.process","s.forEach$argument_0"],"mappings":"AAA,8MC,WC,cD,iBE,8iBF,6OG,6kBH,2CD"}],[{"names":["<global>","<anonymous>","e","n","i","a","u","r$argument_0","i.sent","o.@@iterator","t","Object.defineProperty$argument_2.get","Object.defineProperty$argument_2.set","t.emptyLanguageCache","t.emptyCache","t.prototype.cacheLanguage","t.prototype.fetchJson","__awaiter$argument_3","__generator$argument_1","t.prototype.getJson","t.prototype.changeLanguage","t.prototype.isVendorList","t.prototype.populate","t.prototype.mapVendors","Object.keys.forEach$argument_0","Object.keys.map$argument_0","e.reduce$argument_0","n.purposes.forEach$argument_0","n.specialPurposes.forEach$argument_0","n.legIntPurposes.forEach$argument_0","n.flexiblePurposes.forEach$argument_0","n.features.forEach$argument_0","n.specialFeatures.forEach$argument_0","t.prototype.getFilteredVendors","forEach$argument_0","t.prototype.getVendorsWithConsentPurpose","t.prototype.getVendorsWithLegIntPurpose","t.prototype.getVendorsWithFlexiblePurpose","t.prototype.getVendorsWithSpecialPurpose","t.prototype.getVendorsWithFeature","t.prototype.getVendorsWithSpecialFeature","t.prototype.narrowVendorsTo","t.prototype.clone","t.isInstanceOf"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,mCC,4DG,8CC,+CC,yEC,iBD,cL,kCD,qCC,0CO,4CP,4GQ,uBR,II,qBJ,gzBI,CJ,CD,0OC,YS,8nBT,6DU,gCV,KW,qQX,sDY,kNZ,ca,oHb,2Bc,2Nd,uBe,iDC,4CC,sOD,GD,Gf,qBkB,yXlB,4BmB,iDH,kDC,ynBD,GG,GnB,mDU,6BV,0DoB,kDpB,sBqB,wrBrB,wBsB,qLC,sFD,8CC,mDD,uCC,4CD,8CC,mDD,8DE,qBF,sDG,iGC,2DD,8BE,0DF,6BG,0DH,mDI,4DJ,uBK,mDL,8BM,0DN,aH,MtB,gCgC,uMC,8CD,KhC,0CkC,kElC,yCmC,iEnC,2CoC,mEpC,0CqC,kErC,mCsC,wDtC,0CuC,kEvC,kDU,gCV,6DwC,+BxC,kDU,gCV,mDyC,8GzC,gB0C,2E1C,qRD"}],[{"names":["<global>","<anonymous>","e","e.absCall","Promise$argument_0","i.addEventListener$argument_1","i.ontimeout","e.post","e.fetch"],"mappings":"AAA,iGC,WC,cD,iBE,sCC,sFC,wPD,+BC,iCD,+BC,mCD,iGE,8CF,WD,GF,QM,oGN,SO,qFP,GD"}],[{"names":["<global>","<anonymous>","e","s","t","Object.defineProperty$argument_2.get","Object.defineProperty$argument_2.set","t.prototype.setAllVendorConsents","t.prototype.unsetAllVendorConsents","t.prototype.setAllVendorsDisclosed","t.prototype.unsetAllVendorsDisclosed","t.prototype.setAllVendorsAllowed","t.prototype.unsetAllVendorsAllowed","t.prototype.setAllVendorLegitimateInterests","t.prototype.unsetAllVendorLegitimateInterests","t.prototype.setAllPurposeConsents","t.prototype.unsetAllPurposeConsents","t.prototype.setAllPurposeLegitimateInterests","t.prototype.unsetAllPurposeLegitimateInterests","t.prototype.setAllSpecialFeatureOptins","t.prototype.unsetAllSpecialFeatureOptins","t.prototype.setAll","t.prototype.unsetAll","Object.keys.sort$argument_0","t.prototype.updated"],"mappings":"AAA,iDC,iBC,8ED,4BC,ED,oFC,OD,8IE,gCF,8ED,kPC,YG,m5BH,mEI,4BJ,KK,+GL,gFI,8BJ,KK,kHL,qFI,mCJ,KK,6HL,wFI,sCJ,KK,mIL,0FI,wCJ,KK,oCL,+FI,6CJ,KK,8IL,4FI,8EJ,KK,qHL,wFI,yEJ,KK,6HL,kFI,gCJ,KK,yCL,4FI,0CJ,KK,sCL,+FI,6CJ,KK,yCL,qFI,mCJ,KK,+BL,8FI,4CJ,KK,wCL,kEM,qDN,oCO,uCP,oCQ,uDR,sCS,yCT,kCU,qDV,oCW,uCX,6CY,gEZ,+Ca,kDb,mCc,uDd,qCe,wCf,8CgB,kEhB,gDiB,mDjB,wCkB,mElB,0CmB,6CnB,oBoB,qLpB,sBqB,+LrB,4DI,+HkB,yClB,mCJ,KK,yIL,qDuB,oIvB,oDD"}],[{"names":["<global>","<anonymous>","e","e.encode","forEach$argument_0","e.decode"],"mappings":"AAA,uRC,WC,cD,gBE,gMC,wFD,KF,UI,uWJ,GD"}],[{"names":["<global>","AppOpenAd","createForAdRequest","addAdEventsListener","addAdEventListener"],"mappings":"AAA;OC0B;ECG;GDgB;EEE;GFE;EGE;GHE;CDC"}],[{"names":["<global>","validateAdRequestOptions","Object.entries.forEach$argument_0"],"mappings":"AAA;OC4B;kDCwB;KDI;CDgF"}],[{"names":["<global>","MobileAd","constructor","Object.values.forEach$argument_0","_handleAdEvent","_adEventsListeners.forEach$argument_0","_getAdEventListeners.forEach$argument_0","_addAdEventsListener","<anonymous>","_addAdEventListener","_getAdEventListeners","get___className","get___camelCaseType","load","show","removeAllListeners","_adEventListenersMap.forEach$argument_0","get__adUnitId","get__loaded"],"mappings":"AAA;OCmC;ECc;eCsB;KDE;GDQ;EGE;oCC2B;KDK;4CEC;KFE;GHC;EME;WCO;KDE;GNC;EQE;WDoB;KCE;GRC;ESE;GTE;EUE;GVE;EWE;GXU;EYE;GZS;EaE;GboB;EcM;sCCE;KDE;GdC;EgBE;GhBE;EiBE;GjBE;CDC"}],[{"names":["<global>","validateAdShowOptions"],"mappings":"AAA;OCoB;CDoB"}],[{"names":["<global>","InterstitialAd","createForAdRequest","addAdEventsListener","addAdEventListener"],"mappings":"AAA;OCiE;ECwB;GDgB;EEE;GFE;EGE;GHE;CDC"}],[{"names":["<global>","RewardedAd","createForAdRequest","addAdEventsListener","addAdEventListener"],"mappings":"AAA;OCwE;EC2B;GDgB;EEE;GFI;EGE;GHU;CDC"}],[{"names":["<global>","RewardedInterstitialAd","createForAdRequest","addAdEventsListener","addAdEventListener"],"mappings":"AAA;OCwE;EC2B;GDwB;EEE;GFI;EGE;GHU;CDC"}],[{"names":["<global>","BannerAd"],"mappings":"AAA;OCqB;CDE"}],[{"names":["<global>","React.forwardRef$argument_0","useEffect$argument_0","sizes.every$argument_0","onNativeEvent"],"mappings":"AAA;ECgD;cCG;KDI;cCE;UCI,+ED;KDK;cCI;KDU;IGE;KHiC;GDuB"}],[{"names":["<global>","GAMBannerAd","recordManualImpression","render"],"mappings":"AAA;OCsB;ECG;GDM;EEE;GFE;CDC"}],[{"names":["<global>","GAMInterstitialAd","createForAdRequest","addAdEventsListener","addAdEventListener"],"mappings":"AAA;OCO;ECuB;GDE;EEE;GFE;EGE;GHK;CDC"}],[{"names":["<global>","useAppOpenAd","useDeepCompareEffect$argument_0","setAppOpenAd$argument_0"],"mappings":"AAA;OCgC;uBCM;iBCC;KDE;GDC;CDG"}],[{"names":["<global>","_interopNamespace","Object.keys.forEach$argument_0","get","checkDeps","isPrimitive","useDeepCompareMemoize","React__namespace.useMemo$argument_0","useDeepCompareEffect","useDeepCompareEffectNoCheck"],"mappings":"AAA;ACO;2BCI;eCK,4BD;KDG;CDI;AII;CJQ;AKE;CLE;AMO;kCCU;GDE;CNC;AQE;CRO;ASE;CTG"}],[{"names":["<global>","find","dequal"],"mappings":"AAA;ACE;CDI;AEE;CF2E"}],[{"names":["<global>","useFullScreenAd","useReducer$argument_0","load","show","useEffect$argument_0","addAdEventsListener$argument_0","<anonymous>"],"mappings":"AAA;OCuC;ICI,wDD;2BEK;GFK;IGG;KHI;YII;+DCK;KDwB;WEC;KFE;GJC;CDQ"}],[{"names":["<global>","useInterstitialAd","useDeepCompareEffect$argument_0","setInterstitialAd$argument_0"],"mappings":"AAA;OCgC;uBCM;sBCC;KDE;GDC;CDG"}],[{"names":["<global>","useRewardedAd","useDeepCompareEffect$argument_0","setRewardedAd$argument_0"],"mappings":"AAA;OCgC;uBCM;kBCC;KDE;GDC;CDG"}],[{"names":["<global>","useRewardedInterstitialAd","useDeepCompareEffect$argument_0","setRewardedInterstitialAd$argument_0"],"mappings":"AAA;OCgC;uBCO;8BCC;KDE;GDC;CDG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","generateQuestions","AsyncStorage.getItem.then$argument_0","examScheme.forEach$argument_0","allQuestions.elem.section.filter$argument_0","currentSection.filter$argument_0"],"mappings":"AAA;0BC6B;yCCE;wBCa;sFCC,mBD;gDEI,sCF;KDE;GDE;CDE"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","generateQuestions","examScheme.forEach$argument_0","fullQuestions.filter$argument_0"],"mappings":"AAA;0BC0B;sBCG;GDK;0CEK,sCF;CDG"}],null,[{"names":["<global>","QuizIndex","componentDidMount","AsyncStorage.getItem.then$argument_0","setState$argument_0","componentWillUnmount","handleBackButton","render","aerodynamicsQuestions.filter$argument_0","RowItem.props.onPress","firstAidQuestions.filter$argument_0","flightSafetyQuestions.filter$argument_0","instrumentsQuestions.filter$argument_0","legislationQuestions.filter$argument_0","materialsQuestions.filter$argument_0","meteorologyQuestions.filter$argument_0","physiopathologyQuestions.filter$argument_0","pilotingTechniquesQuestions.filter$argument_0"],"mappings":"AAA;ACwC;ECQ;mDCE;qBCC;ODI;KDC;2CCE;qBCC;ODK;KDC;GDC;EIE;GJE;qBKE;GLG;EME;gHCM,mBD;gDEC;oFDG,mBC;kBFG;yGGG,mBH;gDEC;gFCG,mBD;kBFG;iHIG,mBJ;gDEC;oFEG,mBF;kBFG;8GKG,mBL;gDEC;mFGG,mBH;kBFG;8GMG,mBN;gDEC;mFIG,mBJ;kBFG;0GOG,mBP;gDEC;iFKG,mBL;kBFG;8GQG,mBR;gDEC;mFMG,mBN;kBFG;sHSG,mBT;gDEC;uFOG,mBP;kBFG;6HUG,mBV;gDEC;0FQG,mBR;kBFG;GNQ;CDC"}],[{"names":["<global>","questions.forEach$argument_0","q.answers.filter$argument_0"],"mappings":"AAA;mBCgE;wCCI,oBD;CDK"}],[{"names":["<global>","RowItem","<anonymous>"],"mappings":"AAA;uBC4C,aC,QD;CDO"}],null,[{"names":["<global>","Quiz","props.navigation.getParam.map$argument_0","bannerError","componentDidMount","AsyncStorage.getItem.then$argument_0","setState$argument_0","handleBackButton","answer","setState$argument_1","setTimeout$argument_0","nextQuestion","state.availableIds.filter$argument_0","state.availableQuestions.filter$argument_0","jumpTo","render","questions.filter$argument_0","question.answers.map$argument_0","Button.props.onPress","Picker.props.onValueChange","state.availableQuestions.map$argument_0"],"mappings":"AAA;ACuF;sECS,SD;gBEa;GFE;EGE;2CCG;qBCC;ODI;KDC;GHC;qBMQ;GNG;WOE;MFE;OEqB;MCC;mBCC,yBD;ODC;GPE;iBUE;2DCE,2CD;mEEC,4CF;qBLsB;OKS;GVE;WaE;qBRE;OQK;GbE;EcE;sCCE,8CD;2CEc;iCCK,sDD;qBFE;mCIa,2DJ;wDKG;qBLE;GdkB;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","PickerItem","PickerItem#render","Picker","blur","focus","render"],"mappings":"AAA;ACsD;ECC;GDG;CDC;AGiF;qBCkB;GDE;sBEE;GFE;EGE;GHwB;CHC"}],[{"names":["<global>","UnimplementedView"],"mappings":"AAA;0BCmB;CDM"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","PickerMacOS","render"],"mappings":"AAA;ACW;ECE;GDE;CDC"}],[{"names":["<global>","Quiz","props.navigation.getParam.map$argument_0","Quiz#bannerError","Quiz#componentDidMount","Quiz#componentWillUnmount","Quiz#handleBackButton","examScheme.forEach$argument_0","fullQuestions.filter$argument_0","Quiz#answer","setState$argument_0","setState$argument_1","setTimeout$argument_0","Quiz#nextQuestion","state.availableIds.filter$argument_0","Quiz#render","questions.filter$argument_0","Button.props.onPress"],"mappings":"AAA;ACgG;sECO,SD;gBEU;GFE;EGE;GHE;EIE;GJE;qBKE;wBCK;KDK;4CEK,sCF;GLO;WQE;MCE;ODqB;MEC;mBCC,yBD;OFC;GRE;iBYE;2DCE,2CD;qBHgB;OGO;GZE;EcE;sCCE,8CD;+BEyB,iFF;+BEO,kFF;GdoB;CDC"}],[{"names":["<global>","Exam","props.navigation.getParam.map$argument_0","componentDidMount","componentWillUnmount","handleBackButton","AsyncStorage.getItem.then$argument_0","examScheme.forEach$argument_0","allQuestions.elem.section.filter$argument_0","currentSection.filter$argument_0","showResults","answer","setState$argument_0","setState$argument_1","setTimeout$argument_0","nextQuestion","state.availableIds.filter$argument_0","render","questions.filter$argument_0","setInterval$argument_0","question.answers.map$argument_0","Button.props.onPress"],"mappings":"AAA;ACgF;sECS,SD;EEU;GFE;EGE;GHE;qBIE;2CCI;0BCI;wFCC,mBD;kDEI,sCF;ODE;KDQ;GJC;gBSE;GTY;WUE;MCE;ODoB;MEC;qBCE,yBD;OFE;GVG;iBcE;2DCE,2CD;qBHU;OGO;GdE;EGE;GHE;EgBE;sCCE,8CD;8BEG;uBPC;SOK;OFC;mBHK;OGE;oCGgB;2BCK,sDD;eHE;GhBa;CDC"}],[{"names":["<global>","Results","componentDidMount","AsyncStorage.getItem.then$argument_0","setState$argument_0","componentWillUnmount","handleBackButton","examScheme.forEach$argument_0","allQuestions.elem.section.filter$argument_0","currentSection.filter$argument_0","render","Button.props.onPress"],"mappings":"AAA;ACuH;ECQ;oDCG;qBCO;ODI;KDE;GDC;EIE;GJE;qBKE;2CHG;0BIG;wFCC,mBD;kDEI,sCF;OJE;KGS;GLC;ESG;4BCoD;mBDI;2BCM,+BD;2BCW,+BD;GTW;CDC"}],[{"names":["<global>","Results","Results#componentDidMount","Results#componentWillUnmount","Results#handleBackButton","examScheme.forEach$argument_0","fullQuestions.filter$argument_0","Results#render","Button.props.onPress"],"mappings":"AAA;ACsH;ECO;GDE;EEE;GFE;qBGE;wBCK;KDK;4CEK,sCF;GHO;EME;4BCyC;mBDI;2BCM,+BD;2BCW,+BD;GNW;CDC"}],[{"names":["<global>","Recap","componentDidMount","AsyncStorage.getItem.then$argument_0","setState$argument_0","componentWillUnmount","handleBackButton","examScheme.forEach$argument_0","allQuestions.elem.section.filter$argument_0","currentSection.filter$argument_0","render","questions.map$argument_0","question.answers.map$argument_0","Button.props.onPress"],"mappings":"AAA;AC0G;ECM;mDCE;qBCE;ODI;KDC;GDC;EIE;GJE;qBKE;2CHI;0BIG;wFCC,mBD;kDEI,sCF;OJE;KGS;GLC;ESE;4BCc;yCCM;mBDM;aDG;yBGQ,+BH;GTc;CDC"}],[{"names":["<global>","RecapTrueFalse","componentDidMount","AsyncStorage.getItem.then$argument_0","componentWillUnmount","handleBackButton","examScheme.forEach$argument_0","fullQuestions.filter$argument_0","render","questions.map$argument_0","question.answers.map$argument_0","Button.props.onPress"],"mappings":"AAA;AC0G;ECE;mDCE;KDE;GDC;EGE;GHE;qBIE;wBCK;KDK;4CEK,sCF;GJO;EOE;4BCc;yCCM;qBDU;aDI;yBGQ,+BH;GPc;CDC"}],[{"names":["<global>","B","Info","openURL","Linking.openURL._catch$argument_0","componentDidMount","componentWillUnmount","handleBackButton","render","examScheme.map$argument_0","resultsScheme.map$argument_0","Button.props.onPress"],"mappings":"AAA;UCoH,qED;AEE;YCK;+BCC,gDD;GDC;EGE;GHE;EIE;GJE;qBKE;GLG;EME;iCCiC;iBDI;oCEY;iBFI;yBGQ,iCH;GNU;CFC"}],[{"names":["<global>","B","Setup","componentDidMount","AsyncStorage.getItem.then$argument_0","setState$argument_0","componentWillUnmount","handleBackButton","examScheme.forEach$argument_0","allQuestions.elem.section.filter$argument_0","currentSection.filter$argument_0","changeSetup","render","Switch.props.onValueChange","Button.props.onPress"],"mappings":"AAA;UCwJ,qED;AEE;ECM;2CCE;qBCa;ODI;KDC;GDC;EIG;GJE;qBKE;2CHG;0BIG;wFCC,mBD;kDEI,sCF;OJE;KGQ;GLE;gBSE;mBNI;KMI;GTG;EUE;qCCoB,yCD;qCCS,sCD;6BEa,+BF;GVY;CFC"}],[{"names":["<global>","B","Dictionary","componentDidMount","componentWillUnmount","handleBackButton","switchData","setState$argument_0","render","Button.props.onPress","state.items.map$argument_0"],"mappings":"AAA;UCuI,qED;AEE;ECO;GDE;EEE;GFE;qBGE;GHG;eIE;mBCyB;KDE;GJC;EME;yBCY,kCD;yBCM,gCD;yBCO,sCD;2CEU;qBFI;GNe;CFC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","get__Version","get__constants","get__isTesting","get__isTV","select"],"mappings":"AAA;ECuB;GDG;EEE;GFyB;EGE;GHM;EIE;GJG;UKC;oBLQ"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","PlatformColor","normalizeColorObject","processColorObject"],"mappings":"AAA;6BCiB;CDE;oCEE;CFO;kCGE;CHI"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","legacySendAccessibilityEvent"],"mappings":"AAA;ACgB;CDgB"}],[{"names":["<global>","convertHeadersMapToArray","generateRequestId","RCTNetworking","constructor","sendRequest","body.formData.map$argument_0","abortRequest","clearCookies"],"mappings":"AAA;ACuB;CDM;AEG;CFE;AGO;ECC;GDM;EEE;wCCc;QDG;GFe;EIE;GJE;EKE;GLE;CHC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","emptyCallback","module.exports.alertWithArgs"],"mappings":"AAA;ACW,2BD;iBEG;GFW"}],[{"names":["<global>","RCTDeviceEventEmitter.addListener$argument_1","exitApp","addEventListener","remove","removeEventListener"],"mappings":"AAA;qDCmB;CDQ;WEwC;GFM;oBGO;cCQ,+DD;GHE;uBKK;GLQ"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","ProgressBarAndroid"],"mappings":"AAA;2BCgF;CDkB"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","generateRequestId","getSize","NativeImageLoaderAndroid.getSize.then$argument_0","<anonymous>","getSizeWithHeaders","NativeImageLoaderAndroid.getSizeWithHeaders.then$argument_0","prefetchWithMetadata","prefetch","abortPrefetch","queryCache","BaseImage","ImageAnalyticsTagContext.Consumer.props.children","TextAncestor.Consumer.props.children"],"mappings":"AAA;AC4B;CDE;AEO;UCM;KDE;QEG;SFE;CFE;AKQ;UCO;KDE;QDG;SCE;CLE;AOE;CPQ;AQE;CRI;ASE;CTE;AUO;CVI;kBWqB;OC6E;aCU;aDmB;ODG;CXG"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","DummyDatePickerIOS","DummyDatePickerIOS#render"],"mappings":"AAA;ACiB;ECC;GDQ;CDC"}],[{"names":["<global>","DrawerLayoutAndroid","get__positions","render","_onDrawerSlide","_onDrawerOpen","_onDrawerClose","_onDrawerStateChanged","openDrawer","closeDrawer","blur","focus","measure","measureInWindow","measureLayout","setNativeProps"],"mappings":"AAA;ACyJ;ECC;GDM;EEU;GF6D;mBGI;GHO;kBIE;GJI;mBKE;GLI;0BMI;GNM;EOK;GPE;EQK;GRE;ESyC;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbU;EcE;GdE;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","DummyProgressViewIOS","DummyProgressViewIOS#render"],"mappings":"AAA;ACe;ECC;GDQ;CDC"}],[{"names":["<global>","get","set","watchKeys","clearWatch"],"mappings":"AAA;ECa;GDG;EEE;GFE;EGE;GHG;EIE;GJE"}],[{"names":["<global>","show","showWithGravity","showWithGravityAndOffset"],"mappings":"AAA;QC4C;GDE;mBEE;GFM;4BGE;GHc"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","DynamicColorIOS"],"mappings":"AAA;+BCmB;CDE"}],[{"names":["<global>","GestureHandlerRootView"],"mappings":"AAA;eCc;CDS"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","TouchableNativeFeedback","SelectableBackground","SelectableBackgroundBorderless","Ripple","canUseNativeForeground","getExtraButtonProps","render"],"mappings":"AAA;eCsB;gCCa;IDK;0CEC;IFI;kBGC;IHS;kCIE,4BJ;EKE;GLkB;EMC;GNS;CDC"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["_extends","<anonymous>","<global>","TouchableItem"],"mappings":"AAA,kDC,gOD,2CE;eCY;CD2B"}],[{"names":["<global>","PickerAndroid","React.useImperativeHandle$argument_1","blur","focus","React.useMemo$argument_0","React.Children.toArray.map$argument_0","onSelect","React.Children.toArray.filter$argument_0"],"mappings":"AAA;ACiD;iCCG;YCO;ODS;aEC;OFS;GDE;0CIE;6DCI;KD0B;GJE;IMG;YCO,sBD;KNuB;CD0B"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>"],"mappings":"AAA"}],[{"names":["<global>","PickerIOS"],"mappings":"AAA;ACO;CDE"}]],"x_hermes_function_offsets":{"0":[0,32202,32457,32486,32579,32632,32736,32897,32991,33027,33059,33109,33169,33504,33540,33574,34246,34262,34553,34583,34646,34655,35039,35096,35161,35320,35358,35409,35477,35545,35604,35653,35851,35908,35913,35941,35961,36838,36879,37169,37218,37388,37474,38124,38137,38150,38309,38407,38430,38446,38457,38473,38489,38500,38539,38564,38603,38660,38676,38709,38746,38750,38785,38901,38906,38920,38929,38960,38991,39091,39154,39169,39259,39376,39391,39501,39622,39731,39801,39850,39878,40299,40415,40436,40662,40671,41015,41131,41152,41449,41913,42029,42050,43147,43254,43290,43518,43559,43614,43636,43649,43919,43934,43949,43964,44014,44029,44066,44103,44137,44171,44251,44260,44274,44318,44388,44462,44553,44610,44667,44788,44796,44859,44934,45092,45162,45312,45361,45450,46241,46256,46271,46286,46300,46314,46328,46343,46357,46372,46528,46548,46704,46724,46880,46900,47056,47076,48409,48441,48468,48495,48540,48567,48594,48621,48648,48675,48707,48734,48766,48811,48856,48883,48915,48942,48974,49019,49046,49078,49105,49132,49159,49186,49213,49240,49267,49294,49326,49353,49380,49407,49439,49466,49493,49520,49547,49592,49619,49646,49673,49705,49737,49764,49791,49818,49845,49872,49899,49931,49963,49990,50017,50044,50071,50116,50143,50170,50197,50224,50251,50278,50305,50338,50370,50402,50434,50461,50488,50515,50547,50580,50607,50634,50661,50694,50721,50748,50781,50790,50814,50869,50924,50979,51034,51054,51264,51291,51317,51373,51943,52027,52085,52169,52227,52311,52369,52406,52532,52569,52690,52774,52832,52869,52995,53032,53141,53210,53214,53243,53306,53410,53584,53673,53760,53870,54021,54074,54203,54242,54316,54341,54517,54552,54582,54700,54754,54824,54868,54917,54997,55046,55124,55194,55410,55459,55493,55542,55593,55672,55787,55872,55969,56081,56101,56251,56361,56402,56442,56543,56588,56629,56674,56693,56783,57024,57050,57077,57104,57131,57158,57185,57212,57239,57266,57293,57325,57352,57384,57416,57505,57682,58133,58381,58439,58475,58526,58557,58653,58674,58706,58740,58749,58783,58819,58848,58910,59049,59361,59365,59381,59440,59482,59547,59979,60137,60223,60366,60511,60575,60579,60642,60683,60767,60836,60912,60932,60937,61054,61197,61689,61893,61915,62216,62323,62359,62587,62623,62678,62711,62810,62963,62967,62981,63048,63492,63596,63883,63916,64029,64082,64218,64288,64456,64513,64630,64644,64735,64833,64882,64927,64984,65097,65130,65260,65379,65608,65653,65702,65754,65852,66007,66109,66158,66311,66315,66414,66521,66557,66785,66821,66876,67084,67214,67277,67342,67686,67874,68105,68147,68230,68494,68604,68845,68955,69065,69526,69642,69663,69696,69729,69762,69796,69911,70054,70117,70136,70200,70468,70768,70916,70949,71019,71088,71220,71288,71307,71346,71635,71663,71695,71802,71835,71953,72012,72061,72091,72140,72673,72722,72756,72776,72895,72936,73011,73066,73146,73155,73319,73452,73562,73809,74060,74069,74089,74117,74145,74149,74153,74251,74321,74360,74399,74436,75499,75615,75636,75645,75933,76049,76070,76367,76410,76457,76736,76839,76843,76906,76962,77217,77324,77360,77588,77624,77679,78091,78214,78359,78468,78612,79044,79081,79270,79285,79322,79383,79509,79575,79678,79806,80950,81081,81284,81565,81654,81793,81882,82296,82337,82379,82442,82486,85722,85742,85800,85879,86045,86418,86452,86521,86664,86760,86839,86936,86976,86990,87106,87299,87412,87499,87738,87792,87809,87850,87915,88027,88063,88148,88200,88256,88352,88429,88579,88606,88634,88682,88725,88772,88776,89086,89195,89226,89275,89501,89557,89581,89989,90105,90126,90162,90274,90371,90385,90410,90524,90616,90787,90916,90962,91007,91029,91052,91460,91576,91597,91633,91704,91732,91791,91833,91936,91956,92271,92305,92374,92437,92763,92784,92839,92864,92904,92944,92986,93026,93064,93102,93140,93178,93216,93254,93292,93330,93368,93406,93444,93482,93486,93524,93562,93600,93638,93676,93714,93752,93790,93828,93917,94009,94431,94538,94574,94802,94843,94898,94942,95223,95326,95410,95447,95541,95592,95633,95648,95667,95692,95739,95771,95872,95961,96350,96466,96487,96508,96641,96848,97039,97124,97159,97190,97226,97257,97347,97496,97518,97568,97611,97746,97914,98029,98167,98636,98680,98818,98925,98961,99189,99230,99285,99414,99473,99503,100543,100610,100664,100668,100722,101046,101109,101153,101212,101228,101299,101999,102004,102077,102119,102241,102310,102379,102383,102387,102391,102395,102483,102516,102554,102586,102623,102641,102675,102680,102721,103128,103195,103226,103236,103259,103309,103350,103410,103431,103463,103491,103495,103523,103554,103578,103614,103646,103678,103710,103746,103773,103800,103836,103860,103945,103979,104008,104111,104657,104773,104794,104901,104937,105165,105206,105261,105270,105963,106070,106106,106334,106375,106430,106465,106479,106955,106979,107100,107186,107359,107747,107863,107884,107994,108219,108252,108365,108518,108522,108585,108685,108815,108990,109257,109291,109333,109367,109401,109435,109450,115391,115474,115516,115614,115686,115788,115792,115796,116009,116116,116198,116238,116251,116264,116284,116322,116607,116735,116863,116981,117116,117178,117238,117274,117399,117501,117584,117702,117771,117824,118332,118397,118767,118873,119057,119167,119357,119417,119583,119638,119734,119739,119806,120302,120613,120733,120775,121288,121322,121396,121419,121492,121545,121853,122246,122351,122456,123316,123331,123392,123560,123632,123908,123997,124050,124455,124775,125175,125226,125269,125300,125382,125550,125655,125715,125736,125798,125893,125924,125972,125983,126046,126089,126201,126227,126256,126331,126489,126570,126708,126767,126986,127157,127358,127618,127704,127725,127763,127887,127966,128085,128133,128221,128352,128402,128487,128517,128691,128777,129016,129916,130032,130116,130239,130467,130575,130994,131264,131334,131450,131474,131629,131705,131752,131843,131883,131994,132041,132124,132368,132505,132591,132914,133248,133637,134299,134326,135137,135164,136163,136200,136283,136321,136472,136519,136778,136844,136865,136958,137224,137283,137506,137535,138101,138287,138291,138583,138718,138772,138805,138846,138895,138951,139077,139214,139235,139323,139500,139533,139566,139596,139629,139707,139725,139744,139834,139838,139931,140028,140151,140279,140300,140444,140789,140833,140898,140967,141088,141134,141295,141304,141391,141444,141616,141636,141665,141832,142057,142138,142325,142659,142840,143230,143289,143505,145112,145387,145498,145519,146448,146508,146637,147578,147652,147758,148420,148492,148726,149339,149449,149821,149999,150226,152701,153101,153173,153210,153659,153761,153839,153944,153992,154426,154530,154608,154826,155535,155612,156362,156430,156591,156839,157338,158690,158802,158852,159145,159271,159587,159620,160153,161615,161653,161772,161943,161982,162043,162116,162317,162415,163100,163118,164244,164335,164589,164796,164930,165049,165072,165227,165269,165297,165390,165690,166260,166297,166359,166395,166494,166684,166765,166894,167057,167061,167185,167210,167230,167312,167386,167406,167504,167508,167539,167677,167681,167711,167715,167729,168054,168063,169757,169777,170020,170036,170080,170293,170399,170442,170473,170504,170562,170620,170748,170752,171003,171113,171160,171194,171327,171469,171602,171651,171741,171774,171804,171857,171978,172009,172034,172111,172115,172346,172429,172451,172491,172545,172567,172628,172682,173065,173167,173447,173563,176092,176234,176255,176276,176306,176363,176472,176564,176817,176915,176973,177001,177022,177043,177289,177412,177487,177524,177603,177665,177774,177801,177870,178014,178042,178084,178320,178373,178393,178414,178584,178689,178932,178951,179059,179092,179146,179258,179600,179627,179654,179702,179745,179764,179807,179861,179907,179928,179971,180118,180152,180225,180271,180449,180453,180478,180508,180542,180695,180750,180854,181057,181095,181314,181546,181612,181738,181800,181881,181925,181969,182084,182136,182171,182227,182236,182292,182301,182473,182482,182497,182533,182574,182626,182684,182800,183677,183728,183865,183921,183925,183929,183933,183969,184008,184035,184096,184313,184348,184383,184412,184445,184505,184541,184575,184616,185119,185520,185612,185651,185717,185838,185972,185988,186010,186025,186030,186097,186203,186215,186220,186347,186383,186388,186394,186482,186567,186759,186817,187241,187325,187561,187711,187816,187950,188025,188438,188469,188507,188540,188573,188606,188639,188668,188700,189192,189232,189291,189686,189750,189838,189874,189962,190026,190079,190132,190287,190313,190468,190494,190622,190648,190707,190860,190923,191058,191179,191198,191217,191279,191298,191464,191469,191638,191674,191683,191745,191781,191790,191835,192223,192339,192360,192443,192694,192766,192790,192842,193002,193036,193045,193292,193319,193346,193379,193412,193445,193478,193505,193532,193559,193586,193619,193652,193685,193718,194213,194246,194360,194513,194517,194580,194631,195265,195497,195611,195622,195819,195933,196341,196443,196506,196702,196796,196930,197002,197199,197246,197265,197604,197659,197688,197727,197823,197837,197851,198045,198663,198711,198759,198807,198855,198903,198951,199093,199171,199204,199384,199482,199502,199584,199766,199861,199931,200036,200274,200381,200417,200645,200686,200741,200779,200847,200888,201089,201120,201304,201448,201532,201674,201762,201812,201866,201920,201983,202469,202585,202606,202642,202663,202688,202713,202742,202771,202796,202865,203021,203136,203190,203206,203361,203421,203436,203461,203513,203558,203612,203645,203701,203956,204063,204099,204327,204368,204423,204452,204903,204974,205074,205234,205264,205352,205366,205381,205391,205401,205411,205421,205444,205454,205458,205572,205599,205657,205793,205990,206010,206041,206114,206251,206292,206491,206726,206836,206890,206920,207406,207498,207641,207931,208042,208149,208185,208413,208449,208504,208605,208642,208683,208733,208773,208803,208831,209062,210100,210153,210309,210508,210549,210585,210624,210656,210707,210930,210962,211076,211140,211165,211192,211219,211247,211272,211334,211375,211451,211696,211746,211861,211885,212116,212146,212171,212196,212241,212245,212250,212255,212260,212285,212351,212423,212467,212511,212539,212564,212608,212633,212658,212683,212755,212783,212819,212823,213137,213347,213857,213935,214058,215152,215187,215313,215347,215418,215453,215462,215603,215628,215663,215696,215771,215815,215864,215893,215921,215979,216037,216163,216269,216379,217036,217277,217470,217634,217665,217703,217748,218555,218633,218779,218890,218938,219021,219255,219306,220049,220070,220265,220319,220346,220394,220421,220469,220496,220553,220607,220636,220690,220756,220826,220857,220903,220940,220983,221071,221115,221139,221183,221207,221251,221290,221341,221451,221502,221618,221668,222124,222157,222270,222423,222427,222665,223146,223156,223335,223407,223702,223787,223926,223965,223979,224121,224307,224415,224558,224757,224941,225070,225276,225363,225425,225559,225649,225677,226066,226182,226203,226265,226329,226485,226518,226617,226770,226774,226878,226968,227018,227039,227274,227307,227420,227573,227577,227852,227941,227969,228110,228144,228256,228307,228358,228505,228556,228607,228677,228687,228697,228707,229096,229212,229233,229546,229576,229820,229928,229960,230000,230034,230068,230102,230136,230170,230204,230236,230320,230412,230822,231115,231149,231183,231217,231230,231264,231298,231332,231366,231400,231434,231489,231502,231592,231626,231739,231743,232357,232390,232489,232642,232646,232715,232787,232864,232945,233018,233102,233180,233230,233249,233277,233322,233370,233503,233589,233620,234046,234250,234273,234681,234871,234902,235290,235406,235427,235496,235502,235721,235748,235775,235802,235829,235856,235883,235915,235942,235969,235996,236068,236207,236595,236711,236732,236780,236971,237359,237475,237496,237595,237772,237941,237955,238007,238074,238078,238104,238108,238112,238116,238161,238225,238308,238415,238502,238891,239007,239028,239674,239781,239817,240045,240086,240141,240152,240166,240180,240204,240327,240414,240579,240605,240637,240664,240691,240714,240730,240779,240793,241036,241045,241293,241302,241327,241359,241368,241372,241469,241610,241656,241756,241796,241877,241886,241890,242158,242192,242223,242378,242409,242544,242580,242616,242723,242748,243051,243439,243555,243576,243964,244080,244101,244130,244161,244167,244236,244271,244290,244299,244338,244370,244386,244481,244551,244787,244820,244933,245086,245090,245153,245203,245591,245707,245728,246042,246158,246179,246476,246583,246619,246847,246888,246943,247439,247877,247993,248014,248040,248657,248773,248794,248827,248940,249093,249097,249234,249388,249392,249425,249829,249849,250392,250508,250529,250636,250672,250900,250941,250996,251702,251745,251797,252708,253153,253269,253290,253587,253596,253626,253771,254001,254194,254301,254337,254565,254601,254656,254698,254830,254835,255231,255347,255368,255373,255455,255511,255521,255551,256345,256423,256445,256636,256680,256799,256912,257382,257421,257538,257575,257613,257646,257664,257690,257710,257734,257757,257772,257814,257900,257909,257929,258004,258008,258012,258095,258484,258511,258571,258601,264583,264666,264708,264806,264878,264980,264984,264988,265201,265308,265390,265430,265443,265456,265476,265514,265799,265927,266055,266173,266308,266370,266430,266466,266591,266693,266776,266894,266963,267016,267524,267589,267959,268065,268249,268359,268549,268609,268775,268830,268926,268953,268968,269029,269197,269275,269484,269551,270047,270358,270478,270520,271033,271067,271141,271194,271502,271895,272000,272105,272965,272988,273061,273150,273203,273608,273928,274328,274379,274422,274453,274535,274703,274808,274868,274889,274933,275040,275121,275145,275176,275224,275235,275298,275341,275453,275479,275508,275583,275741,275822,275960,276019,276238,276409,276610,276870,276951,277037,277058,277096,277220,277299,277418,277466,277554,277685,277735,277820,277850,278024,278110,278349,279249,279365,279449,279572,279800,279908,280327,280597,280667,280783,280807,280962,281038,281085,281176,281216,281327,281374,281457,281701,281838,281924,282247,282581,282970,283632,283659,284470,284497,285496,285533,285616,285654,285805,285852,286111,286177,286198,286291,286557,286616,286839,286868,287434,287620,287624,287916,288051,288105,288138,288179,288228,288284,288410,288547,288568,288656,288833,288866,288899,288929,288962,289040,289058,289077,289167,289171,289264,289361,289484,289612,289633,289777,290122,290166,290231,290300,290345,290391,290552,290561,290648,290701,290873,290893,290922,291089,291314,291395,291582,291916,292097,292487,292546,292762,294368,294643,294754,294775,295704,295764,295893,296834,296908,297014,297676,297748,297982,298595,298773,299000,301618,302017,302089,302126,302574,302676,302754,302859,302906,303192,303384,303978,304026,304789,304893,304971,305372,306954,307286,307978,308046,308167,308415,308914,310265,310377,310427,310720,310846,311162,311195,311727,313188,313226,313345,313515,313554,313615,313688,313889,313987,314672,314690,315816,315907,316161,316368,316502,316621,316644,316799,316841,316869,316962,317262,317832,317869,317931,317967,318066,318253,318334,318463,318826,318830,318954,318979,319037,319065,319085,319167,319241,319261,319359,319363,319394,319532,319536,319566,319570,319584,319909,319918,321612,321632,321875,321902,322191,322223,322282,322358,322438,322473,322504,322535,322585,322635,322739,322826,322860,322993,323135,323268,323317,323407,323440,323470,323523,323644,323675,323700,323777,323781,324012,324095,324117,324157,324211,324233,324294,324348,324550,324554,324637,324672,327194,327336,327357,327378,327408,327443,327500,327609,327701,327921,328019,328060,328448,328564,328585,329238,329354,329375,329482,329518,329746,329787,329842,330252,330363,330487,330757,330814,330845,330868,330921,330944,331866,331982,332003,332110,332146,332374,332415,332470,332503,332617,332770,332774,332865,332916,333727,334165,334281,334302,334599,334706,334742,334970,335011,335066,335132,336630,336726,336771,336811,336918,336964,337010,337056,337102,337547,337663,337684,337688,337692,337696,337763,337786,337819,337925,338113,338157,338183,338204,339042,339158,339179,339286,339322,339550,339591,339646,339735,339822,339846,339870,339905,339929,340357,340487,340570,340585,340668,340706,341041,341079,341117,341174,341404,341438,341467,341747,341777,341807,341862,341910,342060,342095,342267,342302,342488,342508,342690,342710,342942,342978,343355,343451,343665,343685,343785,344149,344202,344241,344286,344331,344376,344421,344466,344537,344602,344640,345028,345144,345165,345252,345256,345260,345264,345268,345272,345276,345280,345572,345581,345638,345679,345820,345926,345967,345992,346048,346113,346132,346430,346456,346482,346618,346644,346671,346698,346725,346752,346779,346806,346881,347142,347221,347255,347320,347324,347328,347470,347532,347541,347558,348046,348153,348189,348417,348453,348508,348704,349029,349136,349172,349400,349436,349491,350166,350271,350653,350703,350733,350907,351028,351103,351210,351246,351474,351510,351565,351611,352177,352320,353587,353694,353730,353958,353994,354049,354160,354590,354697,354733,354961,354997,355052,355113,356053,356160,356196,356424,356460,356515,357198,357701,357808,357844,358072,358108,358163,358984,359100,359121,359228,359264,359492,359533,359588,359621,359734,359887,359891,360097,360279,360542,360649,360699,360795,360897,361035,362255,362293,362320,362340,362360,362453,362505,362555,362559,363282,363398,363419,363526,363562,363790,363831,363886,363919,364032,364185,364189,364441,364673,364920,365013,365106,365196,365261,365369,365420,365451,365512,366661,366813,366840,366900,367188,367295,367331,367559,367600,367655,367687,367719,367751,367783,367815,367847,368598,368705,368741,368969,369010,369065,369126,369187,369231,369271,369311,369351,369391,369431,369474,369523,369595,369988,370094,370260,370289,370310,370331,370390,370410,370516,370682,370711,370732,370753,370812,370832,370938,371018,371047,371068,371089,371148,371168,371236,371318,371439,371485,371519,371550,371584,371588,371704,371778,371829,371940,371968,372015,372043,372082,372116,372120,372187,372230,372284,372430,372536,372680,372707,372740,372774,372793,372854,373090,373257,373489,373538,373576,373631,373783,373964,374059,374084,374110,374153,374169,374237,374296,374328,374457,374636,374667,375653,375760,375796,376024,376065,376120,376191,376239,376283,376303,376323,376343,376365,376387,376409,376431,376455,376535,376623,376711,376730,376749,376779,376888,376979,377010,377032,377141,377219,377274,377384,377686,377890,377916,377975,378047,378102,378157,378216,378275,378412,378467,378526,378585,378640,378695,378754,378813,378884,378939,379001,379063,379143,379531,379647,379668,380056,380172,380193,380531,380564,380678,380831,380835,380905,380975,380990,381037,381450,381597,381722,381752,381773,381892,381933,381985,382057,382129,382239,382314,382338,382378,382509,382537,382612,382652,382703,382844,382879,383255,383328,383601,383623,383645,383728,383852,383881,383921,383987,384001,384124,384231,384267,384495,384531,384586,384779,384853,384883,384914,384937,384995,385056,385088,385120,385146,385396,385503,385630,385680,385714,385766,386210,386243,386357,386510,386514,386621,386657,386885,386926,386981,387160,387269,387476,387637,387831,387837,387879,387913,387974,388025,388158,388192,388317,388381,388386,388615,388694,388781,388847,388882,388906,388989,389022,389150,389417,389450,389564,389717,389721,389904,389960,390137,390267,390441,390452,390598,390801,391321,391361,391365,391467,391471,391485,391489,391493,391499,391580,391648,391699,391732,391772,391902,391958,391979,392038,392108,392274,392308,392322,392333,392349,392641,392674,392788,392941,392945,393358,393639,393691,393743,393780,393817,393860,393919,393978,394083,394120,394202,394247,394272,394311,394409,394507,394609,394883,394916,395030,395183,395187,395347,395523,395581,395712,395946,396058,396204,396356,396388,396392,396443,396477,396511,396752,397384,397500,397521,397554,397668,397821,397825,398008,398809,398945,399166,399217,399257,400141,400272,400653,400686,400800,400953,400957,401164,401252,401360,401750,402128,402423,402525,402596,402667,402818,402855,403007,403086,403179,403272,403401,403535,403669,403807,403913,403994,404027,404053,404096,404314,404336,404359,404389,404500,404601,404712,405020,405053,405167,405320,405324,405388,405548,405763,405919,406024,406194,406463,406594,406837,406854,406871,406876,406944,406953,406966,406982,407013,407067,407106,407147,407216,407322,407376,407411,407623,407672,407677,407693,407723,407739,407821,408020,408050,408076,408088,408153,408232,408342,408433,408668,408894,408978,409468,409584,409605,409902,410009,410045,410273,410314,410369,410402,410516,410669,410673,410787,411062,411367,411735,411798,411861,412051,412071,412106,412210,412324,412356,412396,412407,412506,412698,412731,412807,412838,412939,413005,413074,413094,413126,413191,413555,413671,413692,413716,413741,414125,414232,414268,414496,414537,414592,414625,414739,414892,414896,415217,415356,415472,415550,415625,415783,415800,415975,416023,416134,416245,416298,416410,416779,416886,416922,417150,417191,417246,417279,417393,417546,417550,417802,417951,418080,418102,418226,418248,418323,418454,418589,418731,419040,419073,419187,419340,419344,419573,419628,419725,419798,419821,419835,419858,419873,419907,419980,420073,420146,420220,420367,420402,420724,420764,421052,421085,421199,421352,421356,421562,421714,421818,421857,421897,421938,422038,422100,422367,422400,422514,422667,422671,422877,422977,423064,423104,423210,423234,423317,423372,423681,423714,423828,423981,423985,424191,424408,424512,424606,424646,424687,424787,424849,425116,425149,425263,425416,425420,425626,425690,425777,425827,425867,425891,425974,426020,426308,426341,426455,426608,426612,426818,426970,427074,427113,427153,427194,427294,427356,427644,427677,427791,427944,427948,428154,428306,428410,428449,428489,428530,428630,428692,428998,429105,429141,429369,429410,429465,429498,429612,429765,429769,429975,430102,430214,430234,430290,430373,430489,430648,431271,431378,431414,431642,431683,431738,431754,431793,431875,431879,431883,431887,431891,431895,431956,432008,432022,432090,432145,432213,432268,432277,432296,432315,432324,432343,432388,432893,433009,433030,433137,433173,433401,433442,433497,433576,434035,434142,434178,434406,434447,434502,434535,434648,434801,434805,434821,434838,435251,435555,435575,435676,435778,435940,435979,436062,436137,436305,436413,436460,436495,436530,436565,436600,436631,436662,436695,436728,436761,436796,436961,437118,437219,437341,437363,437532,437563,437594,437840,439073,439189,439210,439317,439353,439581,439622,439677,439710,439823,439976,439980,439996,440013,440030,440047,440064,440081,440139,441063,442082,442096,442162,442228,442263,442294,442348,442367,442387,442718,443063,443139,443274,443320,443382,443423,443673,443752,444388,444413,444517,444542,444565,444693,444718,444793,444818,444916,444941,444969,445109,445179,445295,445453,445597,445964,446025,446282,446761,446872,447021,447099,447116,447139,447177,447225,447296,447348,447383,447416,447426,447904,447980,447995,448052,448158,448181,448490,448856,448883,448914,448976,449092,450906,450967,450978,451072,451095,451141,451229,451276,451310,451327,451457,451703,451720,451746,451768,452275,452398,452445,452492,452690,453038,453085,453165,453538,453671,453764,453859,453975,454309,454425,454446,454743,454850,454886,455114,455155,455210,455243,455356,455509,455513,455650,455832,455902,455922,455945,456082,456200,456651,456767,456788,457264,457380,457401,458522,458638,458659,458956,459063,459099,459327,459368,459423,459456,459569,459722,459726,459786,460061,460919,460939,461089,461117,461151,461185,461200,461215,461378,461460,461520,461708,461891,462017,462183,462198,462254,462357,462426,462446,462466,462526,462582,462642,462698,462774,462869,463002,463122,463194,463270,463274,463519,463537,463577,463686,463885,463978,464023,464075,464275,464331,464387,464435,464744,464843,464976,465002,465025,465166,465210,465410,466915,467207,467238,467274,467385,467499,467541,467579,467617,468005,468121,468142,468194,468537,468578,468614,468822,468997,469145,469165,469184,469211,469237,469257,469273,469297,469406,469808,469823,470066,470125,470129,470133,470137,470195,470221,470609,470725,470746,470845,471434,471550,471571,471580,471638,471729,472167,472283,472304,472313,472721,472837,472858,473317,473433,473454,474508,474624,474645,474752,474788,475016,475057,475112,475121,475695,475811,475832,476616,476700,476719,476883,476979,477018,477178,477215,477658,477733,477873,477946,478055,478139,478216,478294,478339,478432,478509,478551,478580,478604,478624,478647,478870,478977,479013,479241,479282,479337,479489,479607,479617,480134,480144,480229,480332,480514,480656,480831,480928,481075,481212,481294,481363,481444,481459,481600,481707,481743,481971,482007,482062,482148,482369,482510,482566,482738,482757,483698,483709,483769,483840,483872,483888,483902,483916,484483,484599,484620,484653,484766,484919,484923,485037,485104,485274,485343,485459,485505,485519,485565,485579,485733,485840,485876,486104,486140,486195,486273,486343,486374,486544,486693,486724,487093,487420,487443,487507,487524,487539,487927,487955,487999,488730,488846,488867,488974,489010,489238,489279,489334,489367,489480,489633,489637,489825,490064,490134,490204,490278,490357,490387,490435,490468,490617,491083,491143,491636,491752,491773,491880,491916,492144,492185,492240,492292,492428,492501,492619,492678,492809,493035,493151,493946,494034,494098,494149,494230,494288,494402,494425,494840,494956,494977,495035,495140,495156,495207,495283,495330,495377,495762,495878,495899,496306,496422,496443,497376,497492,497513,497620,497656,497884,497925,497980,497989,498459,498575,498596,498605,498716,499065,499290,499342,499361,500071,500187,500208,500315,500351,500579,500620,500675,500868,501149,501253,501522,501629,501665,501893,501934,501989,502187,502199,502247,502282,502450,502618,502720,502769,502898,502930,502954,502973,503049,503098,503155,503298,503349,503422,503485,503555,504060,504176,504197,504304,504340,504568,504609,504664,504743,505398,505514,505535,505642,505678,505906,505947,506002,506035,506149,506302,506306,506535,506691,506711,506750,506795,506840,506887,506934,506983,507135,507145,507157,507868,507984,508005,508112,508148,508376,508417,508472,508505,508618,508771,508775,509458,509504,509537,509588,509639,509822,510028,510327,510379,510580,510756,510772,511242,511282,511322,511374,511426,511446,511701,511711,512124,512157,512166,512284,512658,512796,513211,513327,513348,513763,513879,513900,514560,514676,514697,514804,514840,515068,515109,515164,515197,515311,515464,515468,515582,515750,515770,515800,516065,516671,516787,516808,516841,516954,517107,517111,517202,517252,517455,517578,518341,518457,518478,518585,518621,518849,518890,518945,518978,519091,519244,519248,519412,519582,519612,519649,519658,519810,519839,519848,520110,520147,520176,520185,520444,520595,520624,520640,521231,521788,521821,521934,522087,522091,522274,522343,522347,522377,522381,522875,522919,522923,522983,523371,523487,523508,523618,523810,523819,523865,523911,523957,524345,524461,524482,525110,525226,525247,525354,525390,525618,525659,525714,526829,526843,527014,527077,527140,527215,527700,527816,527837,527980,528223,528336,528426,528474,528916,529032,529053,529163,529775,529891,529912,530019,530055,530283,530324,530379,530755,530850,530879,530883,530887,530997,531828,531944,531965,531998,532111,532264,532268,532375,532411,532639,532680,532735,532779,532830,533005,533354,533492,533527,533557,533599,533603,533738,533868,533965,534165,534262,534314,534393,534476,534530,535134,535582,535698,535719,535755,535784,535809,535834,535859,536326,536442,536463,536499,536524,536549,536573,536598,536627,536656,537009,537125,537146,537443,537550,537586,537814,537855,537910,537914,537918,538663,538748,538911,539370,539486,539507,539983,540099,540120,541283,541399,541420,541527,541563,541791,541832,541887,543630,543690,543750,543790,543804,544123,544185,544268,544283,544346,544470,544594,544687,544757,544827,544865,544954,545011,545015,545417,545485,545555,546152,546268,546289,546396,546432,546660,546701,546756,546765,548395,548511,548532,548639,548675,548903,548944,548999,549076,549105,549201,549226,549244,549261,549265,549622,549664,549706,550245,550284,550323,550416,550661,550703,550790,551171,551215,551254,551356,551409,551888,551928,552044,552070,552088,552201,552226,552247,552283,552401,552474,552554,552652,552759,552842,552907,553005,553030,553051,553757,553873,553894,554001,554037,554265,554306,554361,554394,554507,554660,554664,554939,555163,555415,555504,555593,555765,555786,555892,555971,556060,556151,556277,556351,557400,557414,557452,557520,557580,558249,558365,558386,558493,558529,558757,558798,558853,558886,558999,559152,559156,559387,559524,559710,560443,560488,560515,560704,560811,560847,561075,561116,561171,561484,561656,561727,562115,562231,562252,562531,562621,562717,562744,562797,563185,563301,563322,563509,563569,563834,563866,563939,564137,564162,564222,564242,564415,564804,564920,564941,565016,565040,565070,565459,565575,565596,565648,565763,565767,565771,565775,566164,566280,566301,566634,566667,566780,566933,566937,567166,567259,567280,567397,567514,567613,567713,567753,567860,567904,567963,568351,568467,568488,568876,568992,569013,569161,569165,569169,569173,569177,569181,569185,569189,569193,569345,569413,569482,569697,569898,569944,569990,570105,570200,570382,570423,570482,570546,570641,570705,570764,570810,570825,570927,571280,571312,571344,571376,571408,571439,571470,571772,571879,571915,572143,572184,572239,572399,572450,572526,572580,572617,572646,572655,572739,572776,572805,572814,572986,573060,573108,573154,573208,573596,573712,573733,574053,574693,574898,575036,575138,575148,575158,575168,575178,575188,575198,575208,575218,575272,575326,575376,575426,575480,575534,575588,575642,575696,575750,575999,576045,576091,576116,576135,576247,576370,576420,576500,576567,576608,576662,577050,577166,577187,577407,577514,577550,577778,577819,577874,577937,577968,578252,578281,578669,578785,578806,578912,578996,579102,579137,579176,579194,579218,579248,579394,579453,579601,579667,579729,579775,579824,579951,580046,580074,580157,580258,580278,580323,580439,580566,580609,580795,580821,581210,581326,581347,581504,581537,581636,581789,581793,581948,581994,581998,582002,582006,582010,582189,582318,582469,582595,582721,582890,582916,583104,583280,583284,583409,583651,583812,583857,584174,584294,584414,584418,584422,584624,584731,584767,584995,585036,585091,585150,585288,585384,585444,585477,585511,585667,585756,585855,585870,586106,586139,586252,586405,586409,586472,586530,586772,586805,586918,587071,587075,587138,587249,587343,587439,587569,587946,587966,588010,588120,588313,588359,588493,588541,588660,589139,589278,589315,589378,589475,589613,589652,589741,589910,590283,590292,590398,590407,590513,590561,590585,590604,590620,590647,590832,590923,590990,591004,591013,591080,591146,591279,591435,591547,591567,591679,591699,591777,591892,592207,592323,592344,592641,592802,593093,593130,593159,593168,593612,593656,593672,593697,593771,593804,594147,594311,594533,594563,594817,594924,594960,595188,595229,595284,596166,596182,596360,596552,596625,597219,597312,597532,597681,597731,597853,598397,598402,598566,599060,599357,599439,599973,600443,600488,600837,600905,601270,601544,602895,603802,604304,604367,604387,604528,604599,604654,604680,604781,604992,605416,605532,605553,605709,605729,606513,606629,606650,606691,606719,606739,606768,606820,606829,606899,606928,606980,606989,607280,607309,607361,607370,607501,607526,607830,607891,607918,607981,608035,608089,608136,608186,610579,610675,610816,610866,611075,611179,611210,611238,611266,611303,611335,611410,611419,611563,611675,611695,611807,611827,612782,612815,612928,613081,613085,613192,613228,613456,613497,613552,613602,613631,613683,613692,613836,613865,613917,613926,614070,614099,614151,614160,614298,614327,614379,614388,614536,614565,614617,614626,614770,614799,614851,614860,614959,614988,615040,615049,615159,615188,615240,615249,615359,615388,615440,615449,615593,615622,615674,615683,615796,615825,615877,615886,615992,616021,616073,616082,616188,616217,616269,616278,616459,616488,616540,616549,616793,616837,616878,616891,617047,617151,617188,617217,617226,617359,617400,617410,617473,617604,617636,617686,617827,618021,618027,618036,618073,618102,618111,618285,618526,618667,618677,618683,618692,618729,618758,618767,618937,618974,619003,619012,619246,619283,619312,619321,619491,619537,619690,619715,619744,619799,619808,619947,619976,620031,620040,620153,620182,620237,620246,620360,620389,620444,620453,620571,620625,620690,621469,621742,621766,621857,621935,622278,622335,622550,622681,622830,622836,622840,622844,622848,622852,622856,622860,623040,623156,623234,623289,623499,623599,623629,623747,623825,623896,624378,624494,624515,624678,625102,625218,625239,625395,625415,625537,625677,625741,625902,625917,626073,626093,626423,626497,626513,626529,626558,626610,626619,626812,626843,626872,626924,626933,627164,627173,627291,627320,627372,627381,627654,627683,627735,627744,627992,628023,628052,628104,628113,628256,628271,628351,628460,628757,628849,628985,629014,629066,629075,629287,629338,629460,629606,629667,629685,629788,629814,629831,629937,629985,630001,630053,630066,630118,630122,630780,630799,630818,630837,630856,630875,630894,630913,630932,630951,630970,630989,631008,632633,632648,632663,632678,632692,632707,632722,632737,632752,632767,632782,632796,632811,632826,632841,632856,632871,632886,632901,632916,632931,632945,632959,632974,632989,633004,633019,633034,633049,633064,633078,633093,633107,633246,633267,633323,633556,633573,633590,634835,634912,634971,635032,635093,635347,635366,635432,635460,635521,635543,635565,635615,635925,635961,636029,636084,636121,636174,636187,636217,636258,636289,636493,636683,636736,636808,636880,636952,637024,637234,637278,637813,637929,637950,638106,638126,638282,638302,638863,638877,638891,638905,638919,638933,638948,638963,638977,639133,639153,639812,639919,639955,640183,640224,640279,640312,640425,640578,640582,640631,640635,640758,640777,640807,640869,640893,640951,640973,640992,641030,641206,641642,641896,642009,642029,642498,642538,642607,642701,642747,643022,643160,643423,643988,644058,644146,644228,644818,644877,644904,645042,645118,645195,645280,645367,645935,646067,646143,646218,646391,646460,646511,646639,646780,647026,647063,647092,647101,647116,647153,647182,647191,647206,647243,647272,647281,647296,647333,647362,647371,647386,647423,647452,647461,647476,647513,647542,647551,647566,647603,647632,647641,647656,647693,647722,647731,647746,647783,647812,647821,647836,647873,647902,647911,647926,647963,647992,648001,648038,648174,648201,648232,648259,648296,648322,648687,648720,648833,648986,648990,649278,649359,649672,649752,649781,649816,649976,650099,650116,650237,650241,650385,650692,650799,650835,651063,651104,651159,651168,651182,651409,651532,651675,652103,652253,652269,652286,652344,652402,652506,652542,652581,652630,652702,652753,652763,652797,652810,652820,652946,653107,653175,653213,653544,653577,653690,653843,653847,653984,654034,654253,654270,654297,654582,654615,654728,654881,654885,654937,655051,655231,655248,655295,655347,655382,655696,655729,655842,655995,655999,656018,656148,656231,656250,656364,656472,656493,656510,656541,656573,656929,656962,657075,657228,657232,657282,657367,657419,657653,657802,657984,658008,658048,658080,658142,658179,658205,658272,658548,658602,658776,658901,658948,659074,659296,659727,659906,660619,661391,661424,661537,661690,661694,661710,661733,661789,661812,661843,661899,661915,661981,661997,662040,662056,662172,662184,662196,662208,662220,662247,662267,662291,662315,662339,662363,662387,662411,662435,662459,662483,662506,662530,662554,662577,662604,662631,662645,662659,662667,662708,662720,662732,662744,662756,662768,662780,662894,663050,663099,663116,663203,663488,663521,663634,663787,663791,663891,664005,664219,664236,664325,664647,664680,664793,664946,664950,665109,665289,665403,665613,665643,665660,666265,666381,666402,666435,666548,666701,666705,666760,666785,666945,667165,667186,667207,667224,667318,667363,667416,667433,667483,668084,668200,668221,668254,668367,668520,668524,668553,668805,668886,668920,668941,669024,669154,669230,669308,669387,669478,669796,669829,669942,670095,670099,670236,670309,670379,670412,670511,670614,670843,670899,670916,670942,671048,671157,671207,671257,671267,671421,671708,671796,672146,672179,672292,672445,672449,672498,672533,672693,672810,672831,672848,672977,673100,673146,673415,673448,673561,673714,673718,673750,673887,674002,674019,674034,674066,674118,674386,674466,674878,674911,675024,675177,675181,675288,675324,675552,675593,675648,675753,675935,676118,676252,676276,676293,676369,676490,676537,676625,676970,677003,677116,677269,677273,677380,677416,677644,677685,677740,677826,678027,678164,678262,678279,678401,678422,678693,678726,678839,678992,678996,679045,679167,679197,679269,679355,679469,679557,679574,679601,679669,682018,682093,682136,682195,682240,682256,682275,682293,682313,682369,682413,682436,682464,682520,682549,682622,682669,682724,682789,682838,682919,682992,683016,683112,683156,683193,683278,683351,683468,683526,683558,683590,683660,683742,683769,683791,683844,683891,683924,683946,683968,684126,684389,684459,684507,684595,684634,684731,685206,685286,685348,685456,685858,685947,686465,686921,686950,687009,687047,687133,687240,687296,687325,687374,687396,687439,687468,687521,687544,687620,687682,687721,687746,687788,687794,687798,687871,687901,688024,688030,688096,688286,688393,688429,688657,688698,688753,688776,688835,688941,689100,689134,689157,689282,689332,689371,689399,689554,689752,689859,689895,690123,690164,690219,690484,690530,690617,690640,690713,691062,691095,691208,691361,691365,691847,692021,692045,692070,692105,692124,692173,692221,692337,692352,692357,692402,692433,692568,692594,692600,692604,692630,692660,692664,692717,692747,692751,692937,693089,693181,693223,693256,693342,693996,694028,694051,694275,694318,694341,694351,694424,694572,694655,694866,694899,694923,694947,694978,695138,695157,695187,695314,695452,695543,695553,695573,695598,695623,695667,695827,696209,696355,696379,696403,696427,696477,696509,696533,696663,696687,696715,696739,696771,696797,696827,696851,696877,696990,697289,697554,697612,697644,697709,697858,697965,698001,698229,698270,698325,698411,698442,698468,698966,699028,699601,699631,699687,699706,699744,699795,699854,699927,699985,700239,700401,700588,700632,700832,700870,700932,701101,701105,701135,701200,701338,701389,701415,701419,701423,701457,701538,701581,701599,701625,701649,701699,701837,701988,702050,702122,702292,702331,702391,702970,703648,703912,704079,704105,704256,704448,704737,704837,705101,705288,705426,705520,705571,705703,705751,705819,706027,706099,706126,706144,706182,706248,706719,706808,707166,707297,707500,707544,707590,707657,707705,708711,708943,709247,709332,709372,709444,709539,709680,709790,709904,709927,709946,709965,709977,710279,710337,710426,710477,710653,710759,710925,710952,710956,711269,711274,711326,711335,711348,711364,711395,711449,711488,711529,711598,711704,711758,711793,712005,712049,712089,712122,712127,712143,712173,712189,712271,712349,712581,712613,712771,713156,713187,713192,713250,713275,713301,713317,713349,713424,713485,713541,713610,713739,713774,713843,714115,714151,714188,714244,714249,714265,714316,714332,714472,715256,715271,715286,715301,715316,715331,715346,715361,715376,715391,715406,715421,715436,715451,715607,715627,715913,715946,716059,716212,716216,716248,716362,716485,716502,716523,716809,716842,716955,717108,717112,717144,717258,717381,717398,717420,717648,717681,717794,717947,717951,717983,718097,718167,718184,718215,718533,718566,718679,718832,718836,718841,718955,719112,719129,719185,719470,719503,719616,719769,719773,719879,719993,720105,720154,720187,720219,720236,720655,720688,720801,720954,720958,720988,721014,721026,721091,721170,721280,721371,721551,721777,721861,721975,722150,722167,722208,722260,722517,722547,722573,722585,722650,722729,722844,722923,722928,723155,723236,723543,723650,723686,723914,723955,724010,724052,724085,724196,724245,724338,724357,724578,724685,724721,724949,724990,725045,725110,725210,725310,725423,725468,725584,725598,725690,725751,725812,725873,726766,726781,726796,726811,726826,726841,726856,726871,726886,726901,726916,726931,726946,726961,726976,726991,727006,727021,727036,727050,727089,727162,727213,727351,727983,728058,728085,728174,728220,728461,728775,728973,729030,729057,729145,729189,729299,729472,729532,729568,729613,729716,729837,729938,730154,730210,730272,730395,730493,730581,730682,730774,730940,731018,731051,731093,731141,731189,731301,731413,731526,731639,732212,732328,732349,732456,732492,732720,732761,732816,732832,732897,733022,733045,733950,733964,733978,733992,734006,734020,734035,734050,734064,734079,734093,734249,734269,734425,734445,734571,734668,734786,734795,734901,734978,735141,735150,735169,735278,735680,735731,735793,735886,736179,736543,736685,738323,738415,738532,738674,738783,738814,738944,739074,739205,739768,739801,739914,740067,740071,740178,740214,740442,740483,740538,740666,740682,740734,740789,740829,740989,741173,741203,741234,741302,741491,741605,741655,741703,741722,741836,741886,741934,741953,742067,742117,742165,742184,742298,742438,742498,742558,742672,742812,742880,742940,743217,743324,743360,743588,743629,743684,743717,743743,743814,743878,744010,744093,744474,744535,744596,744675,744837,744989,745151,745393,745415,745438,745468,745579,745680,745791,745955,746066,746144,746275,746408,746582,746846,746908,746981,747111,747154,747177,747240,748098,748214,748235,748250,748264,748278,748292,748306,748320,748334,748348,748362,748488,748539,748578,748720,748938,749190,749316,749397,749503,749630,749781,750259,750375,750396,750415,750434,750446,750469,750812,750938,750991,751126,751216,751300,751304,751338,751364,751390,752004,752116,752136,752248,752268,752380,752400,752512,752532,752644,752664,752776,752796,752908,752928,753040,753060,753172,753192,753304,753324,753436,753456,753568,753588,754767,754782,754797,754812,754827,754842,754857,754872,754887,754902,754917,754932,754947,754962,754977,754992,755007,755022,755037,755052,755067,755082,755097,755112,755127,755142,755146,755339,755378,755393,755408,755975,756091,756112,756425,756482,756521,756583,756899,756954,757017,757440,757643,758076,758299,758383,758430,758506,758730,759360,759620,759660,759679,759768,759842,759875,759923,759966,759995,760019,760038,760143,760253,760262,760296,760609,760762,760973,760982,761001,761048,761075,761166,761177,761206,761332,761391,761476,761576,761604,761716,761823,761880,761997,762140,762341,762474,762519,762595,762797,762817,762929,762986,763016,763206,763301,763802,763907,764098,764186,764226,764255,764360,764471,764534,764791,764815,764882,764965,764991,765239,765285,765332,765336,765409,765609,765862,765967,766198,766257,766282,766311,766320,766339,766591,766698,766734,766962,767003,767058,767285,767289,767516,767548,767552,767578,767709,767844,767903,767987,768048,768208,768314,768367,768453,768493,768533,768568,768615,768655,768748,768880,768934,769075,769200,769242,769281,769378,769516,769729,769825,769876,770013,770146,770264,770330,770389,770572,770589,770668,770724,770953,771135,771507,771778,771912,772488,772517,772555,772612,772927,773117,773340,773535,773837,773963,774030,774050,774471,774529,774732,774844,774864,774976,774996,775108,775128,775904,775919,775934,775949,775964,775979,775993,776008,776023,776038,776053,776068,776083,776098,776113,776128,776143,776158,776173,776310,776631,776683,776704,776717,776730,776743,776768,776780,776855,776899,776904,776931,776959,776987,776995,777019,777042,777279,777312,777425,777578,777582,778098,778148,778161,778174,778197,778210,778223,778236,778249,778262,778275,778288,778495,778522,778549,778573,778601,778629,778657,778685,778713,778741,778769,778943,779095,779152,779229,779306,779620,779696,779764,779813,779860,780299,780365,780414,780464,780523,780540,780645,780671,780709,780871,780936,781010,781063,781119,781132,781145,781158,781193,781198,781237,781757,781869,781889,782001,782021,782133,782153,782265,782285,782397,782417,782529,782549,782661,782681,782793,782813,782925,782945,783057,783077,783654,783761,783797,784025,784066,784121,784154,784267,784420,784424,784518,784673,784802,784996,785025,785119,785274,785403,785609,785638,785732,785887,786016,786219,786248,786342,786497,786626,786829,786858,786952,787107,787236,787396,787425,787519,787674,787803,787963,787992,788086,788241,788370,788576,788605,788699,788854,788983,789189,789218,789312,789467,789596,789799,789828,789922,790077,790206,790409,790438,790532,790687,790816,790976,791005,791099,791254,791383,791543,791572,791933,792040,792076,792304,792345,792400,792433,792546,792699,792703,792797,792952,793081,793198,793227,793321,793476,793605,793722,793751,793845,794000,794129,794246,794275,794369,794524,794653,794770,794799,795322,795429,795465,795693,795734,795789,795822,795935,796088,796092,796186,796341,796470,796557,796586,796680,796835,796964,797102,797131,797225,797380,797509,797650,797679,797773,797928,798057,798198,798227,798321,798476,798605,798743,798772,798866,799021,799150,799237,799266,799360,799515,799644,799782,799811,799905,800060,800189,800330,800359,800453,800608,800737,800878,800907,801001,801156,801285,801423,801452,801921,802028,802064,802292,802333,802388,802421,802534,802687,802691,802785,802940,803069,803178,803207,803301,803456,803585,803694,803723,803817,803972,804101,804235,804264,804358,804513,804642,804779,804808,804902,805057,805186,805288,805317,805411,805566,805695,805804,805833,805927,806082,806211,806348,806377,806471,806626,806755,806889,806918,807603,807710,807746,807974,808015,808070,808103,808216,808369,808373,808467,808622,808751,808866,808895,808989,809144,809312,809463,809492,809586,809741,809870,810029,810058,810152,810307,810436,810592,810621,810715,810870,810999,811158,811187,811281,811436,811565,811721,811750,811844,811999,812128,812287,812316,812410,812565,812694,812850,812879,812973,813128,813257,813372,813401,813495,813650,813818,813973,814002,814096,814251,814380,814539,814568,814662,814817,814946,815102,815131,815225,815380,815509,815668,815697,815791,815946,816075,816231,816260,816354,816509,816638,816797,816826,816920,817075,817204,817360,817389,817907,818014,818050,818278,818319,818374,818407,818520,818673,818677,818815,818970,819060,819321,819346,819375,819383,819521,819676,819766,820018,820043,820072,820080,820218,820373,820463,820715,820740,820769,820777,820915,821070,821160,821412,821437,821466,821474,821612,821767,821857,822109,822134,822163,822171,822309,822464,822554,822815,822840,822869,822877,823015,823170,823260,823512,823537,823566,823574,823712,823867,823957,824209,824234,824263,824271,824409,824564,824654,824906,824931,824960,824968,825106,825261,825351,825603,825628,825657,825665,826042,826149,826185,826413,826454,826509,826542,826655,826808,826812,826906,827061,827208,827538,827567,827661,827816,827963,828296,828325,828419,828574,828703,828889,828918,829012,829167,829296,829485,829514,829821,829928,829964,830192,830233,830288,830321,830434,830587,830591,830685,830840,830969,831144,831173,831267,831422,831551,831726,831755,832224,832331,832367,832595,832636,832691,832724,832837,832990,832994,833088,833243,833372,833636,833665,833759,833914,834043,834310,834339,834433,834588,834717,834978,835007,835101,835256,835385,835649,835678,835772,835927,836056,836317,836346,836440,836595,836724,836988,837017,837111,837266,837395,837659,837688,837782,837937,838066,838333,838362,838723,838830,838866,839094,839135,839190,839223,839336,839489,839493,839587,839742,839871,840035,840064,840158,840313,840442,840603,840632,840726,840881,841010,841174,841203,841297,841452,841581,841742,841771,842103,842215,842235,842347,842367,842479,842499,842611,842631,842743,842763,842875,842895,843148,843181,843294,843447,843451,843545,843700,843816,843996,844025,844262,844295,844408,844561,844565,844659,844814,844902,845213,845242,845479,845512,845625,845778,845782,845920,846087,846212,846659,846678,846707,846736,847028,847135,847171,847399,847440,847495,847528,847641,847794,847798,847892,848047,848166,848616,848645,848898,848931,849044,849197,849201,849465,849780,849940,850223,850236,850249,850262,850275,850304,850332,850360,850388,850416,850723,850830,850866,851094,851135,851190,851223,851336,851489,851493,851530,851710,851901,852030,853008,853236,853477,853677,853690,853703,853732,853760,853788,853861,853928,854122,854137,854141,854202,854707,854823,854844,854951,854987,855215,855256,855311,855389,855492,855718,855770,856008,856038,856977,857137,857164,857203,857230,857257,857301,857328,857355,857382,857409,857436,857463,857490,857517,857807,858020,859241,859357,859378,859411,859524,859677,859681,859788,859824,860052,860093,860148,860187,860250,860272,860383,860589,860897,861040,861246,861337,861394,861738,861801,862004,862045,862110,862234,862463,862508,862648,863262,863266,863270,863314,863348,863389,863412,863473,863570,863773,864264,864420,864473,864613,864686,864706,864730,864794,864890,864931,865001,865021,865050,865091,865135,865176,865213,865254,865339,865380,865427,865447,865480,865500,865522,865542,865564,865637,865795,865847,865904,865942,866182,866262,866351,866427,866527,866620,866655,866774,866833,866916,866998,867040,867062,867082,867121,867232,867261,867297,867339,867382,867402,867422,867562,867635,867708,867825,867965,868038,868079,868126,868174,868194,868249,868320,868385,868448,868497,868546,868624,868665,868723,868764,868823,868843,868899,868940,868972,869013,869045,869086,869156,869237,869645,869734,869832,869914,869934,869961,869981,870003,870023,870082,870102,870120,870357,870854,870890,870910,870966,871010,871030,871086,871115,871185,871653,871726,871755,871812,871863,871883,871926,871952,872046,872119,872149,872169,872244,872264,872270,872343,872385,872528,872797,872817,872862,872964,872970,873036,873101,873140,873160,873185,873345,873365,873369,873407,873528,873602,873829,873891,873911,873973,873993,874009,874028,874275,874354,874462,874499,874548,874603,874623,874646,874674,874731,874784,875228,875351,875403,875455,875507,875559,875869,875976,876012,876240,876281,876336,876409,876619,876730,876740,876745,876803,876814,876862,876905,876937,876998,877097,877112,877587,877620,877733,877886,877890,878004,878054,878098,878112,878221,878434,878733,878840,878876,879104,879145,879200,879674,879693,879839,879985,880193,880713,880829,880850,880957,880993,881221,881262,881317,881469,881704,881747,881805,882025,883270,883386,883407,883440,883553,883706,883710,883786,883850,883861,883973,884092,884602,884639,884880,884891,884901,885056,885485,885496,885506,885624,885641,885658,885966,886145,886339,886499,887375,887379,887436,887996,888019,888236,888247,888277,888307,888438,888473,888517,888703,888794,888844,888980,889337,889444,889480,889708,889749,889804,889837,889950,890103,890107,890135,890732,890875,890943,890961,890978,891035,891092,891149,891206,891276,891346,891416,891486,891504,891522,891540,891558,891663,891768,891786,891804,891905,891917,891921,891996,892133,892183,892240,892297,892315,892381,892469,892473,892589,892603,892697,892798,892813,893186,893221,893256,893291,893326,893361,893396,893431,893466,893501,893590,893679,893768,893989,894022,894135,894288,894292,894406,894469,894487,894505,894795,894828,894941,895094,895098,895205,895241,895469,895510,895565,895641,895801,895864,895882,895900,895918,896002,896340,896447,896483,896711,896752,896807,896840,896953,897106,897110,897189,897349,897487,897623,897686,897734,897762,897777,897868,897918,898019,898074,898090,898105,898196,898246,898373,898388,898609,898642,898755,898908,898912,899026,899102,899120,899138,899428,899461,899574,899727,899731,899838,899874,900102,900143,900198,900306,900696,900759,900854,900949,901044,901139,901157,901175,901193,901211,901229,901247,901265,901283,901301,901385,901675,901708,901821,901974,901978,902085,902121,902349,902390,902445,902518,902609,902664,902748,903038,903071,903184,903337,903341,903448,903484,903712,903753,903808,903884,903975,904030,904114,904335,904368,904481,904634,904638,904867,904943,904961,904979,904997,905015,905033,905051,905069,905290,905323,905436,905589,905593,905707,905770,905788,905806,906057,906090,906203,906356,906360,906365,906456,906511,906595,907545,907661,907682,907789,907825,908053,908094,908149,908182,908295,908448,908452,908466,908557,908670,909226,909281,909347,909413,909536,909627,909736,909855,910133,910224,910334,910454,910609,910736,910835,911125,911139,911153,911167,911181,911676,911792,911813,911920,911956,912184,912225,912280,912333,913020,913136,913157,913264,913300,913528,913569,913624,913657,913770,913923,913927,914225,914454,914528,914865,914924,915092,915139,915245,915292,915442,915538,915554,915649,915876,915892,915942,916008,916485,916900,917016,917037,917334,917441,917477,917705,917746,917801,917834,917947,918100,918104,918195,918439,918505,918634,918778,918962,919374,919490,919511,919808,919915,919951,920179,920220,920275,920308,920421,920574,920578,920692,920807,920931,921004,921071,921177,921318,921461,922279,922395,922416,922523,922559,922787,922828,922883,923086,923396,923550,924409,924525,924546,924653,924689,924917,924958,925013,925046,925159,925312,925316,925430,925777,926449,926506,926564,926833,927274,927619,927665,927769,927804,927861,927947,928121,928831,928875,928919,929814,929930,929951,930058,930094,930322,930363,930418,930451,930564,930717,930721,930835,931243,931842,931954,932000,932055,932299,932392,932609,932882,933348,933533,933638,933731,933986,934783,934846,934954,935257,936245,936260,936275,936290,936305,936320,936335,936350,936365,936380,936395,936410,936425,936440,936455,936470,936485,936500,936515,936530,936545,936560,936575,936731,936751,936907,936927,937378,937409,937441,937473,937505,937543,937581,937613,937645,937683,937721,937753,937785,937812,937839,937866,937898,937930,937962,937994,938026,938058,938090,938117,938149,938181,938213,938245,938277,938538,938645,938681,938909,938950,939005,939045,939066,939101,939122,939163,939184,939319,939407,939493,939563,939614,939665,939761,939854,939985,940195,940218,940285,940521,940548,940552,940723,940830,940866,941094,941135,941190,941415,941452,941510,941573,941577,941605,941609,941613,941642,941692,942108,942224,942245,942287,942390,942531,942629,942802,942863,942923,943004,943044,943255,943362,943398,943626,943667,943722,944369,944390,944419,944471,944514,944550,944627,944636,944652,944688,944740,944804,944856,944972,944982,945035,945087,945134,945206,945312,945340,945437,945456,946067,946183,946204,946237,946350,946503,946507,946559,946672,946732,946833,946975,947068,947116,947298,947361,947533,947766,948155,948271,948292,948846,948962,948983,949016,949129,949282,949286,949346,949483,950185,950619,950873,950899,951153,951179,951469,951496,951522,951812,951839,951865,951931,952110,952289,952370,952451,952629,952787,952791,953176,953292,953313,953451,953529,953850,953966,953987,954284,954391,954427,954655,954696,954751,954755,955273,955333,955499,955665,955929,955945,956021,956041,956106,956129,957777,957868,957894,957919,957999,958033,958054,958182,958310,958342,958375,958398,958504,958773,958793,958979,959086,959122,959350,959391,959446,959555,959578,959763,959871,960602,960624,960648,960716,960846,960953,960989,961217,961258,961313,961343,961638,961745,961781,962009,962050,962105,962135,962165,962195,962225,962255,962285,962406,962485,962690,962718,963002,963118,963139,963436,963543,963579,963807,963848,963903,963967,964042,964079,964090,964195,964410,964565,964840,964846,965436,965697,965734,965755,965781,966041,966621,966654,966706,966754,966806,966854,967018,967857,967891,967925,967939,967973,968079,968230,968267,968781,968899,968935,968976,969265,969352,969368,969672,969688,969950,969966,970158,970174,970406,970493,970614,970747,970958,970985,971035,971099,971158,971190,971308,971346,971362,971407,971450,971516,971684,972421,972510,972530,972811,972889,973046,973062,973256,973486,973601,973671,973696,973722,973742,973794,973842,973966,974120,974279,974543,974682,974702,974854,974874,974990,975539,975655,975676,975709,975822,975975,975979,976070,976120,976241,976791,976907,976928,976961,977074,977227,977231,977322,977372,977460,977543,977655,977686,978041,978157,978178,978475,978582,978618,978846,978887,978942,978991,979032,979036,979367,979856,979926,980004,980087,980119,980235,980279,980302,980344,980524,980590,980623,983643,983701,983727,983748,983916,983937,983958,983991,984014,984116,984137,984189,984345,984452,984488,984716,984757,984812,984919,984977,985022,985080,985178,985793,985909,985930,985963,986076,986229,986233,986293,986499,986681,986713,986729,986777,986793,986835,986891,986941,986975,987008,987012,987605,987721,987742,987775,987888,988041,988045,988097,988210,988273,988409,988500,988550,988615,988747,989340,989456,989477,989510,989623,989776,989780,989832,989945,990005,990126,990263,990449,990529,990557,990585,990626,990640,990722,991023,991054,991086,991118,991150,991182,991214,991247,991280,991313,991345,991377,991409,991441,991473,991505,991537,991569,991601,992352,992468,992489,992522,992635,992788,992792,992844,992957,993017,993030,993307,993320,993411,993722,994225,994341,994378,994387,994480,994509,994777,994811,994861,994919,994939,995084,995172,995207,995230,995504,995539,995576,995605,995614,996080,996112,996171,996195,996232,996261,996270,996478,996558,996711,997023,997038,997059,997120,997342,997369,997373,997425,997444,998017,998133,998154,998187,998300,998453,998457,998509,998622,998682,998762,998853,999152,999319,999415,999471,999633,999728,1000316,1000432,1000453,1000486,1000599,1000752,1000756,1000808,1000921,1000981,1001161,1001321,1001371,1001419,1001551,1001584,1001662,1001725,1001745,1001836,1002290,1002348,1002394,1002440,1002486,1002532,1002578,1002624,1002670,1002716,1002778,1003387,1003503,1003524,1003557,1003670,1003823,1003827,1003879,1003992,1004055,1004105,1004242,1004373,1004422,1004463,1004504,1004558,1004577,1005275,1005391,1005412,1005445,1005558,1005711,1005715,1005767,1005880,1005940,1006059,1006181,1006219,1006484,1006523,1007747,1007863,1007884,1007991,1008027,1008255,1008296,1008351,1008384,1008497,1008650,1008654,1008796,1008815,1008900,1009055,1009121,1009281,1009516,1009576,1009782,1009988,1010583,1010778,1011073,1011111,1011160,1011181,1011195,1011211,1011361,1011379,1011393,1011407,1011449,1011499,1011590,1011640,1011734,1011893,1012104,1012729,1012845,1012866,1012973,1013009,1013237,1013278,1013333,1013366,1013479,1013632,1013636,1013686,1013823,1013931,1013980,1014048,1014116,1014175,1014194,1014834,1014950,1014971,1015078,1015114,1015342,1015383,1015438,1015490,1015603,1015799,1015868,1015906,1015975,1016013,1016709,1016825,1016846,1016879,1016992,1017145,1017149,1017201,1017314,1017377,1017468,1017518,1017627,1017718,1017768,1017907,1017998,1018048,1018159,1018211,1018245,1018601,1018657,1018691,1018716,1018741,1018766,1018791,1018816,1018841,1018866,1018891,1018916,1018941,1018966,1018991,1019016,1019041,1019066,1019091,1019116,1019141,1019166,1019191,1019216,1019394,1019408,1019564,1019584,1020458,1020574,1020595,1020892,1020906,1020920,1020934,1020948,1020962,1020976,1020990,1021004,1021018,1021032,1021046,1021258,1021596,1021725,1022306,1022521,1022928,1023227,1023231,1023345,1023618,1023644,1023733,1023759,1023856,1023938,1024080,1024836,1025083,1025389,1025695,1025958,1025962,1026350,1026998,1027869,1027985,1028006,1028039,1028152,1028305,1028309,1028361,1028474,1028534,1028583,1028606,1028725,1029321,1029420,1029524,1029603,1029629,1029774,1029806,1029916,1030112,1030133,1030154,1030180,1030303,1030339,1030360,1030381,1030536,1030562,1030647,1030673,1030694,1030715,1030831,1030947,1030951,1030955,1030959,1031283,1031347,1031399,1031661,1033298,1033308,1033318,1033377,1033394,1033421,1033480,1033506,1033527,1033548,1033574,1033595,1033616,1033637,1033663,1033684,1033705,1033768,1033827,1034065,1034177,1034197,1034309,1034329,1034441,1034461,1034573,1034593,1035313,1035429,1035450,1035557,1035593,1035821,1035862,1035917,1036439,1036645,1036669,1036693,1036757,1036821,1036855,1036914,1037032,1037047,1037163,1037177,1037276,1037787,1037903,1037924,1038031,1038067,1038295,1038336,1038391,1038499,1038606,1038785,1039173,1039289,1039310,1039314,1039860,1039976,1039997,1040049,1040162,1040269,1040284,1040298,1040313,1040698,1040814,1040835,1041697,1041813,1041834,1041867,1041980,1042133,1042137,1042244,1042280,1042508,1042549,1042604,1042656,1042769,1042829,1042890,1043093,1043209,1043386,1043505,1043799,1043872,1043982,1044031,1044134,1044167,1044246,1044277,1045311,1045370,1046671,1046863,1047063,1047593,1047622,1048364,1048480,1048501,1048534,1048647,1048800,1048804,1048856,1048969,1049060,1049110,1049235,1049394,1049634,1050700,1050733,1050846,1050999,1051003,1051110,1051146,1051374,1051415,1051470,1051571,1051686,1051695,1051858,1051878,1052027,1052183,1052349,1052493,1052530,1052567,1052639,1052676,1052713,1052750,1052787,1052824,1052938,1053234,1053295,1053326,1054090,1054219,1054327,1054407,1054487,1054567,1054647,1054738,1054788,1054844,1054859,1054874,1054889,1054904,1054919,1054980,1055382,1055498,1055519,1055690,1055710,1055812,1056197,1056313,1056334,1056744,1056860,1056881,1056950,1057063,1057090,1057718,1057834,1057855,1059723,1059777,1059837,1059923,1060024,1060056,1060173,1061101,1061217,1061238,1061345,1061381,1061609,1061650,1061705,1062885,1062967,1063050,1063081,1063571,1063687,1063708,1063778,1064171,1064287,1064308,1064364,1064480,1064558,1064636,1065269,1065385,1065406,1065513,1065549,1065777,1065818,1065873,1065925,1066038,1066194,1066581,1066697,1066718,1066770,1066786,1066972,1067612,1067728,1067749,1068871,1068940,1069009,1069086,1069163,1069214,1069388,1069470,1069516,1069588,1070640,1070756,1070777,1070884,1070920,1071148,1071189,1071244,1071277,1071390,1071543,1071547,1071599,1071712,1071772,1071818,1072001,1072898,1073259,1073369,1073418,1073487,1073541,1073606,1074199,1074231,1074384,1074527,1074570,1074786,1074810,1075092,1076247,1076331,1077253,1078296,1078330,1078346,1078373,1078467,1078518,1078629,1078645,1078695,1078735,1078777,1078847,1078861,1078880,1079019,1079133,1079188,1079293,1079385,1079485,1079594,1079707,1079730,1079805,1079894,1079970,1080188,1080266,1080330,1080421,1080439,1080490,1080541,1080592,1080643,1080694,1080745,1080796,1080904,1080943,1080982,1081045,1081375,1081468,1081691,1081787,1082168,1082215,1082284,1082432,1083181,1083392,1083603,1083735,1084007,1084236,1084413,1084553,1084585,1086523,1086621,1086722,1086738,1086770,1086790,1086945,1087054,1087095,1087171,1087212,1087341,1087501,1087570,1089185,1089298,1089559,1089839,1089884,1090055,1090217,1090352,1090368,1090830,1091167,1091439,1091596,1091877,1092006,1092282,1092457,1093023,1093337,1093614,1093745,1093860,1094066,1094118,1094329,1094517,1094674,1094830,1095010,1095019,1095259,1095377,1095459,1095765,1095847,1095975,1096055,1096141,1096215,1096289,1096354,1096377,1096400,1096423,1096450,1096563,1096625,1098563,1098640,1098705,1098884,1098907,1098935,1099103,1099194,1099735,1099851,1099872,1099924,1100037,1100263,1100382,1100767,1100883,1100904,1100994,1101075,1101148,1101260,1101645,1101761,1101782,1102167,1102283,1102304,1102874,1102990,1103011,1103044,1103157,1103310,1103314,1103374,1103488,1103837,1103891,1104061,1104187,1104363,1104416,1104432,1104486,1105001,1105117,1105138,1105347,1106062,1106118,1106392,1106508,1106529,1106826,1106878,1106991,1107391,1107520,1107552,1107638,1108193,1108309,1108330,1108382,1108495,1108649,1108701,1108724,1108839,1108850,1109357,1109473,1109494,1109601,1109637,1109865,1109906,1109961,1110013,1110077,1110487,1110603,1110624,1110693,1111103,1111219,1111240,1111309,1111719,1111835,1111856,1111925,1112365,1112481,1112502,1112580,1112612,1113145,1113261,1113282,1113389,1113425,1113653,1113694,1113749,1113801,1113914,1114060,1114157,1114565,1114672,1114708,1114936,1114977,1115032,1115146,1115193,1115244,1115266,1115470,1115487,1115550,1115567,1115632,1115669,1115718,1115733,1115790,1115839,1115854,1115931,1115975,1116042,1116062,1116289,1116396,1116432,1116660,1116701,1116756,1116818,1116890,1116974,1117021,1117074,1117144,1117164,1117901,1117934,1118047,1118200,1118204,1118341,1118560,1118564,1118689,1118714,1118739,1118824,1118933,1119020,1119110,1119150,1120547,1120575,1120609,1120637,1120648,1120721,1120845,1120934,1121058,1121094,1121130,1121166,1121184,1121329,1121344,1121684,1121895,1121989,1122008,1122064,1122115,1122188,1122314,1122372,1122462,1122546,1122597,1122670,1122754,1122812,1122902,1122986,1123030,1123078,1123144,1123188,1123236,1123304,1123378,1123505,1123557,1123585,1123752,1123785,1123818,1123878,1123929,1124000,1124051,1124117,1124168,1124239,1124258,1124324,1124375,1124431,1124497,1124595,1124685,1124738,1124860,1124982,1125104,1125226,1126094,1126210,1126231,1126338,1126374,1126602,1126643,1126698,1126731,1126844,1126997,1127001,1127086,1127152,1127175,1127190,1127205,1127220,1127235,1127372,1127643,1127703,1127850,1128082,1128687,1128881,1129176,1129363,1129412,1129433,1129447,1129586,1129638,1129834,1130212,1131911,1132039,1132557,1132635,1132900,1132976,1134672,1134788,1134809,1134824,1134839,1134854,1134869,1134884,1134899,1134914,1134929,1134944,1134959,1134974,1134989,1135004,1135019,1135034,1135049,1135064,1135079,1135094,1135108,1135123,1135138,1135153,1135168,1135324,1135344,1135399,1135751,1135784,1135897,1136050,1136054,1136191,1136354,1136418,1136482,1136546,1136610,1136630,1136741,1136761,1136770,1137040,1137055,1137070,1137085,1137241,1137261,1137430,1137559,1137637,1137647,1137662,1137756,1137809,1138045,1138108,1138138,1138330,1138401,1138515,1138807,1138872,1138950,1139162,1139211,1139468,1139501,1139614,1139767,1139771,1139888,1140084,1140182,1140268,1140546,1140579,1140692,1140845,1140849,1140986,1141044,1141245,1141409,1141504,1141661,1141771,1142605,1142721,1142742,1142933,1142962,1143072,1143127,1143159,1143207,1143277,1143311,1143341,1143356,1143512,1143532,1143688,1143708,1143864,1143884,1144040,1144060,1144196,1144403,1144687,1144950,1144991,1145024,1145108,1145183,1145187,1145191,1145220,1145290,1145357,1145402,1145736,1145869,1145880,1145948,1146016,1146037,1146053,1146069,1146093,1146117,1146133,1146156,1146172,1146195,1146218,1146287,1146291,1146411,1146504,1146967,1147057,1147220,1147274,1147331,1147393,1147429,1147445,1147472,1147573,1147627,1147686,1147807,1147867,1148021,1148082,1148171,1148675,1148768,1148871,1149094,1149181,1149274,1149455,1149562,1149598,1149826,1149867,1149922,1150025,1150262,1150369,1150405,1150633,1150674,1150729,1150792,1150865,1151134,1151631,1151650,1151669,1151688,1151725,1151754,1151763,1151826,1151863,1151892,1151901,1152424,1152698,1152768,1152785,1152816,1152908,1153164,1153234,1153251,1153282,1153374,1153457,1154325,1154329,1154548,1154730,1154932,1155002,1155019,1155050,1155142,1155244,1155262,1155340,1155356,1155431,1155606,1155626,1155657,1155699,1155801,1155819,1155897,1155913,1155988,1156163,1156183,1156214,1156256,1156358,1156376,1156454,1156470,1156545,1156720,1156740,1156771,1156813,1156915,1156933,1157011,1157027,1157102,1157277,1157297,1157328,1157433,1157516,1157891,1157895,1158277,1158347,1158364,1158395,1158487,1158606,1158624,1158702,1158718,1158793,1158968,1158988,1159131,1159183,1159197,1159319,1159499,1159570,1159634,1159698,1159997,1160086,1160236,1160320,1160361,1160365,1160438,1160479,1161060,1161122,1161257,1161261,1161289,1161319,1161339,1161401,1161680,1161684,1161723,1161762,1161921,1161939,1162017,1162033,1162108,1162283,1162303,1162500,1162556,1162717,1162828,1162839,1162855,1162993,1163036,1163151,1163354,1163372,1163450,1163466,1163541,1163716,1163736,1163886,1163970,1164302,1164390,1164413,1164690,1164832,1165248,1165402,1165435,1165459,1165506,1165576,1165647,1165684,1165730,1165772,1165888,1165964,1166018,1166101,1166112,1166165,1166233,1166296,1166317,1166332,1166427,1166466,1166571,1166654,1166847,1166851,1167014,1167032,1167110,1167126,1167201,1167376,1167396,1167536,1167552,1168579,1168618,1168623,1168938,1169032,1169059,1169251,1169272,1169283,1169307,1169505,1169528,1169548,1169597,1169665,1169763,1169793,1169852,1170137,1170159,1170179,1170220,1170272,1170288,1170308,1170600,1170670,1170687,1170718,1170810,1170849,1170888,1170927,1170966,1171005,1171044,1171083,1171122,1171161,1171200,1171379,1171460,1171464,1171761,1171987,1172260,1172574,1172599,1172891,1172961,1172978,1173009,1173101,1173163,1173194,1173198,1173229,1173242,1173341,1173372,1173376,1173443,1173568,1173651,1173682,1173686,1173862,1173937,1174128,1174896,1175011,1175042,1175046,1175116,1175274,1175373,1175404,1175408,1175650,1175849,1175996,1176027,1176031,1176135,1176405,1176723,1177492,1177671,1177713,1177717,1178032,1178294,1178966,1179040,1179206,1179304,1179488,1179558,1179575,1179606,1179698,1179777,1180447,1180526,1180856,1180895,1180994,1181042,1181046,1181355,1181360,1181517,1181552,1181939,1182166,1182184,1182262,1182278,1182353,1182528,1182548,1182622,1182720,1182776,1182833,1182952,1182971,1183111,1183127,1184154,1184193,1184198,1184870,1185319,1185330,1185465,1185625,1185734,1185857,1185893,1185920,1186171,1186324,1186360,1186387,1187010,1187021,1187045,1187407,1187721,1187842,1187894,1187946,1187998,1188006,1188215,1188275,1188329,1188389,1188449,1188503,1188557,1188758,1188814,1188843,1188872,1188901,1188930,1188954,1188983,1188994,1189015,1189026,1189101,1189137,1189199,1189241,1189245,1189310,1189566,1189782,1189830,1189878,1189953,1190022,1190071,1190250,1190268,1190346,1190362,1190437,1190612,1190632,1191733,1192313,1192324,1192415,1192426,1192524,1192535,1192636,1192647,1192748,1192759,1192775,1192786,1192882,1192916,1192997,1193031,1193118,1193129,1193162,1193173,1193189,1193200,1193216,1193227,1193243,1193254,1193270,1193305,1193328,1193363,1193386,1193421,1193444,1193479,1193502,1193537,1193560,1193595,1193618,1193653,1193676,1193733,1193790,1193886,1193924,1194011,1194133,1194264,1194295,1194299,1194459,1194548,1194771,1195046,1195079,1195192,1195345,1195349,1195491,1195541,1195559,1195581,1195810,1195916,1197052,1197157,1197413,1197520,1197556,1197784,1197825,1197880,1198170,1198531,1198590,1198829,1198863,1198882,1199014,1199045,1199351,1199391,1199414,1199428,1199477,1199568,1199803,1199848,1199897,1199907,1199917,1199990,1200170,1200445,1200478,1200591,1200744,1200748,1200890,1200940,1200958,1200980,1201209,1201500,1201533,1201646,1201799,1201803,1201945,1201995,1202013,1202092,1202321,1202612,1202645,1202758,1202911,1202915,1203057,1203107,1203125,1203204,1203433,1203623,1203730,1203766,1203994,1204035,1204090,1204174,1204782,1204898,1204919,1205303,1205584,1205632,1205713,1205770,1205871,1206491,1206607,1206628,1206735,1206771,1206999,1207040,1207095,1207128,1207241,1207394,1207398,1207512,1207662,1207718,1207778,1208020,1208053,1208166,1208319,1208323,1208465,1208515,1208533,1208555,1208623,1208782,1208929,1208952,1208999,1209124,1209239,1209344,1209364,1209490,1209504,1209541,1209578,1209633,1209704,1210817,1211020,1211127,1211163,1211391,1211432,1211487,1211705,1211736,1211782,1211814,1211881,1212241,1212256,1212415,1212562,1212585,1212632,1212791,1212938,1212961,1213008,1213167,1213314,1213337,1213384,1213951,1214063,1214083,1214195,1214215,1214327,1214347,1214459,1214479,1214591,1214611,1214723,1214743,1214855,1214875,1214987,1215007,1215119,1215139,1215251,1215271,1215383,1215403,1215489,1215528,1215567,1215606,1215610,1215649,1215688,1215727,1215731,1215735,1215739,1216129,1216177,1216299,1216406,1216419,1216527,1216543,1226198,1227533,1230468,1231803,1234418,1235753,1243488,1244183,1249294,1249646,1249709,1249776,1249884,1249900,1249978,1250188,1250793,1250826,1250939,1251092,1251096,1251233,1251418,1251453,1251573,1251608,1251643,1251678,1251747,1251787,1253089,1253102,1253249,1253262,1253275,1253422,1253435,1253448,1253595,1253608,1253621,1253768,1253781,1253794,1253941,1253954,1253967,1254114,1254127,1254140,1254287,1254300,1254313,1254460,1254473,1254486,1254633,1254646,1254910,1255020,1255030,1255362,1255658,1255662,1255740,1256421,1256454,1256567,1256720,1256724,1256838,1257364,1257374,1257378,1257413,1257468,1257700,1257750,1257769,1258242,1258269,1258306,1258412,1258459,1258491,1258576,1258611,1258646,1259508,1259540,1259672,1259715,1259742,1259834,1260008,1260022,1260036,1260772,1260888,1260909,1261016,1261052,1261280,1261321,1261376,1261409,1261523,1261676,1261680,1261771,1261822,1261826,1261917,1262112,1262150,1262188,1262582,1263005,1263121,1263142,1263218,1263308,1263880,1263996,1264017,1264050,1264163,1264316,1264320,1264411,1264461,1264494,1265343,1265376,1265489,1265642,1265646,1265783,1266278,1266288,1266292,1266408,1266475,1266580,1266596,1266658,1266847,1266878,1266897,1267155,1267182,1267260,1267300,1267340,1268384,1268416,1268470,1268524,1269317,1269350,1269463,1269616,1269620,1269757,1270219,1270229,1270285,1270391,1270498,1270511,1270619,1270635,1270805,1270860,1271092,1271222,1271241,1271491,1271518,1271559,1271599,1271623,1272476,1272508,1272536,1272595,1272616,1272748,1272791,1273856,1273889,1274002,1274155,1274159,1274296,1274480,1274536,1274662,1274769,1274782,1274890,1274906,1274991,1275173,1275189,1275229,1276635,1276682,1276702,1276722,1277766,1277799,1277912,1278065,1278069,1278206,1278381,1278497,1278564,1278669,1278685,1278725,1278765,1279881,1279928,1279948,1279968,1280915,1280948,1281061,1281214,1281218,1281355,1281531,1281587,1281713,1281820,1281833,1281941,1281957,1282042,1282077,1282112,1282152,1282642,1282844,1282947,1282967,1283914,1283947,1284060,1284213,1284217,1284354,1284509,1284625,1284692,1284797,1284813,1284894,1284898,1284938,1285428,1285630,1285761,1285781,1286635,1286668,1286781,1286934,1286938,1286997,1287134,1287316,1287365,1287393,1287428,1287468,1287508,1288396,1288585,1288759,1288797,1289897,1289930,1290043,1290196,1290200,1290337,1290526,1290582,1290688,1290795,1290808,1290916,1290932,1291055,1291071,1291156,1291272,1291288,1291328,1292050,1292074,1292098,1292118,1292987,1293020,1293133,1293286,1293290,1293349,1293486,1293702,1293737,1293931,1293940,1293980,1294020,1294866,1294890,1294914,1294938,1295111,1298432,1298565,1298581,1298630,1298634,1298658,1298706,1299095,1299211,1299232,1299324,1299390,1299410,1299415,1300214,1300321,1300357,1300585,1300626,1300681,1300739,1300873,1301204,1301311,1301347,1301575,1301616,1301671,1301704,1301817,1301970,1301974,1302034,1302053,1302190,1302269,1302439,1302490,1302520,1302550,1302939,1303055,1303076,1303150,1303154,1303216,1303355,1303424,1303466,1303536,1303568,1303621,1304009,1304125,1304146,1304315,1304422,1304458,1304686,1304727,1304782,1304927,1305034,1305938,1306054,1306075,1306182,1306218,1306446,1306487,1306542,1306561,1306650,1306680,1306717,1306810,1306840,1306877,1306900,1306950,1306980,1307009,1307061,1307070,1307122,1308119,1308231,1308381,1308770,1308886,1308907,1309525,1309641,1309662,1309695,1309809,1309962,1309966,1310057,1310108,1310228,1310796,1310912,1310933,1311230,1311337,1311373,1311601,1311642,1311697,1311730,1311843,1311996,1312000,1312303,1312546,1312635,1312679,1312723,1312793,1313462,1313516,1313570,1313614,1313658,1313706,1313754,1313810,1313858,1313892,1314343,1314459,1314480,1315097,1315213,1315234,1315267,1315381,1315534,1315538,1315629,1315680,1315799,1315854,1315880,1315906,1315936,1315962,1316116,1316150,1316188,1316232,1316621,1316737,1316758,1316816,1316850,1317361,1317477,1317498,1317605,1317641,1317869,1317910,1317965,1318020,1318119,1318865,1318981,1319002,1319109,1319145,1319373,1319414,1319469,1319502,1319615,1319768,1319772,1319886,1319936,1320056,1320166,1320186,1320206,1320241,1320268,1320365,1320477,1320497,1320613,1320627,1321081,1321197,1321218,1321270,1321383,1321688,1322256,1322372,1322393,1322500,1322536,1322764,1322805,1322860,1323272,1323363,1323457,1323551,1323628,1323866,1324051,1324062,1324145,1324228,1324655,1324771,1324792]}}
|